2011年2月20日日曜日

2/19~20河津桜

【注意!!】
【かなり残念なネタにあふれています。】
【気分を害されても責任は負えません。ご了承ください。】


今回の宿は全てに対し言葉に出来ない。
いや、何もかも最悪だった、と表現でもしたいが、
後味の悪さと自らの選択に自責がつのり、音にしたくない。

事の顛末は宿が圏外ゆえまとめて投下
繋がってたら全世界に詳細にツイートしたかった。

友人+友人母(料理研究家。本当に腕が良い)+友人娘で河津桜を愛でに女4人旅。
親子旅で、友人母をもてなすのがコンセプトだった。

!------------------引用ここから---------------------------
【予約内容】
プラン名:【1泊2食】四季折々の伊豆の幸を味わう贅沢プラン。
チェックイン可能時間:14:30~18:00
チェックアウト時間:11:00
プラン内容:山間の一軒宿で伊豆の幸を味わう贅沢プラン。
【夕食】伊豆料理~フレンチテイスト~前菜9種のサラダ、サザエのエスカ
ルゴ風、伊豆牛の陶板焼き、焼きたてパン、日替わりスープ、伊豆牛のロー
ストビーフ等。
【朝食】贅沢健康和食、地物朝採れ野菜や敷地内の山で採れる山菜等をふん
だんに使った創作和食膳、他伊勢海老や金目鯛のお味噌汁等。
食事:朝あり
夕あり
------------------引用ここまで---------------------------!

残念ながら河津桜は三分咲きでトラブルで写真も撮れず、
喫茶店も無く、風も冷たくなり早めのチェックイン。
予定した時刻より大分早まるため宿へ連絡するも出ず……。
発信履歴は13時-14時のあいだに8回。これってCB/発信業務じゃない。

洋風で、フレンチディナーに近ければ尚良く、友人母希望の洋室(4人)で、
条件に合い、評判が高めででも批判もしっかりしてて・・・の宿を探し、決めた。

ペンションファンファーレクラブ

http://www.jalan.net/uw/uwp3000/uww3001.do?yadNo=378789

だが。
玄関鍵かかってる。インターフォン応答なし。

14時過ぎで他宿泊客は見えず、玄関先に経営者のご友人だか
スタッフだか業者だか良く分からんが、女性一人困惑気味に待ちぼうけ。

この時点で地雷の存在を察知はした。そんな事は無いと信じたかったが。

数分でスタッフ到着。
部屋に案内されるなか、食堂経営がメインで、
河津桜祭りで客の入りも多くて忙しくてすみませんね。

だそうだ。(ここで女三人軽く切れる)

転送ぐらい苦でもなかろう。
この祭りで賑わう期間のみ転送設定の手間が惜しいか。
電話会社への高くて千円~数千いくらが惜しいか。いずれでもないだろう。

部屋はトリプル+エキストラベッド有りで予約するもお忙しいようで用意&説明なし。
部屋数は10室。当日の組は3組。
たかが三組の客情報の把握も困難か。
施設内の自販機が故障していた旨を伝えるとこちらも忙しい。そうですか。

ぜひリンクを見て欲しい。
温水洗浄トイレあり→部屋付ではなく共用部分男女1つずつのみ
まあこの程度は施設設備の範疇でも良いだろう。

大理石貸切風呂2(各サウナ付)24h可→予約表には入浴時間23:00迄と矛盾。

とりあえずは散策で冷えた身体をとにかく温めたいと先にお風呂へ。
お風呂は家族風呂の一回り大きなもの。
大理石いいえタイルですが何か?
設備にサウナ、表記あり、実際に洗い場に入口ありましたが、
サウナ入口前に桶山積み。

暗い。冷たい。スイッチ無い。

…………楽しみにしていた友人母落胆。私のテンションも激落。

サウナは最後まで説明無くスイッチもわからず利用不可。
夏期限定の張り紙も見当たらず。

さらに、アメニティ表記のバスローブ。
有料ジャグジー利用者のみと質問して初めて回答。
表記はどこだ…………。
指摘すればあからさまに不快感の接客業従事者。
浴衣ですら言わなきゃ出さないなら表記するな。

入浴を済ませ夕食まで待つ。食事はすべて1階の食堂だ。

そして、地雷しかないモノが来た。

■伊豆料理~フレンチテイスト~前菜9種のサラダ
前菜はALL市販の和もの。皿『だけ』洋風。
function menu($menu){ 
if(! "フレンチ" || "イタリアン"){ 
return "( ゚Д゚)<br >\n"."(゚Д゚)<br >\n"."(゚Д゚)...<br >\n"; 
} 
ゴマ豆腐がフレンチテイストですかそうですか。
空腹ゆえ食べる。この時点ではまだ許せる味だった。

■伊豆牛の陶板焼き……フレンチは?
しかも伊豆牛とは名ばかりの外国産の適当な肉。
今更産地偽装ですか。私にはSAN値偽装です。
『生で食べれます』と仰せだが、見本を見せて欲しいものだ。
おまけに固形燃料を下げる時までも消さないスタイルは、
私の人生の中で初めてだった。
他に経験した方は居るのだろうか。
脂だけが灼かれ広がる煙と匂い。安値焼き肉の臭みが服に身体に全部染みた。
友人母だけでも浴衣でよかったと心底思う。
なにせロビーはもとより、利用した三階の廊下にまで臭いが流れ、
寝る直前まで窓を開ける程だったのだ。

■サザエのエスカルゴ風
つぼ焼きにせずガーリックと料理酒とオリーブオイルをかけて焼いただけ。
塩味はにんにく臭くて感知不可。
磯臭さとオイルの風味が反比例してすごいくさい。
ガチガチに固くなった身に切れ込みも無い。
何故添えられたシルバーがスプーンなんだ。
おつゆをひと舐めで断念。無理に食べた友人胸焼け。

■日替わりスープ
ボタン肉inミネストローネ。その神経を疑う。
『このイノシシは猟で仕留めるより臭みがない』
鼻をつく豚臭さ。匙ですくえる香辛料で誤魔化しつつ仕上げた逸品に
御高説の女将っぽいそれの存在を疑う。
謝れ! 猟友会の皆さんに謝れ! マジで!!
売って貰えないだけだろと邪推せざるを得ない。
スーパーの刺身に市販のドレッシングかけてもマリネにはならんよ。
ここでようやくフランスパン登場。
馴染みのある味すぎてバゲットとは言わん。

■伊豆牛のローストビーフ
オージーのローストビーフ三切れ。きゅうり薄切りふた切れ。
一見で驚きのあまり吹き出したが、ソースは前菜の流用。

謝れ! 伊豆牛とフレンチに謝れ!!

きゅうりでソースをどけて醤油で食す。
きゅうりの使い方位説明が欲しい。

最大限譲歩でマシだったのはパンとデザートのいちご(1/2)だけ。
チョコケーキ、コンビニのほうがマシ。

お子様ランチ。幼児の加算は2500円。
焦げたコロッケ、焦げすぎてハンバーグに見えるコロッケ、
わずかなサラダにプロセスチーズ、俵型を輪切りにしたおにぎりのワンプレート。
プラス別皿(頼んでもいないのでおそらくセット)の刺身はスーパー以下略。

その場でクレームをいう必要?
わざわざ場の空気を濁し、精神的ダメージを負ってやるほど優しくはない。

機械的に給仕するスタッフに、エキストラベッドの未対処を伝えたときも、
忙しいと言い訳する始末。もういいから。

げんなりな食事を終えてすぐに臭い落としに再度入浴。
その後、一階の喫煙所兼歓談室にに行くと先客が居て、相席でテレビ見てるとスタッフ登場。
ボリューム絞れと上の客からクレーム…………。
いやいやいやいや壁薄すぎ。
ならばアップライトピアノにアンプに46インチのBRAVIA置くな。


翌朝。戦々恐々しつつ準備中の食堂を偵察。

【朝食】贅沢健康和食、地物朝採れ野菜や敷地内の山で採れる山菜等をふん
だんに使った創作和食膳、他伊勢海老や金目鯛のお味噌汁等。

冷凍のアジ開き陶板焼きが創作和食と呼ばれるようになったのはいつからだ?
昨夜の匂いを生臭さに変えて再び浴びろと。

朝食は取らずにチェックアウト決定。
三賢者全て承認。
フロントから朝食のコールが来て、急遽出立のため(嘘)で断ると、
謝罪の言葉をこちらが伝えている途中で電話を切る暴挙。
嗚呼、元々マナーが無いのだと判断した。

予想通り、荷物をまとめ出る際には焼き魚の匂いが充満していた。

最後の清算時も素晴らしい対応だった。
エキストラベッド利用時は別料金だが、夕食の給仕の不手際もあり、
幼児利用分と合せて+5000円で良いと紋切。
不手際は全てだろうと言いたくなったが、馬に念仏を実践する余裕は無く、
友人とともに支払う。
明細は出さない。素晴らしい処理だ。
清算時に入湯税の記載が無かったことも付け加えよう。

更に信じがたい続きがある。
朝食抜きは辛かろう、と子供用に海苔巻きを出される。
スーパーで前日購入としか見えない海苔巻き。
ラップも巻かず、チャック付ビニールに直入れで変形している。
出された瞬間に$menu展開。条件を追加し、
}をここに持ってくるべきだった。

気遣いのみ感謝しつつ心の底から辞退し迅速に離脱。
セブンイレブンで購入したいつものサンドイッチが虚しいうまさだった。
函南町のまともなフレンチで口直しして帰路につく。

これで値段相応と満足できるはずもなく。
じゃらんで平日6000円ならば納得だ。心構えが違う。
しかし、シーズン料金14000円だ。
差額8000円はどこに使われているのだろう。

袖すりあうも他生の縁とは言うが、対価に対する提供が無い場合、
相応の処方がある。

ここで衝撃的な事実に気づく。
まとめゆえの弊害だが、いや、じゃらんにリンクが無かったのだが、
http://www.fclub.jp/index.html
これが宿のサイト。まとめ中に初めて出てきた。

じゃらん側にある峰温泉のかけらも無い。
単純泉の記載。当然浴室での掲示などあるわけない。
記述に差異があっても良いのか。温泉法は適用されないのか。
軽く調べてみるが、温泉である以上、開示しなくても良いという説明が見つからない。

そもそも、じゃらんおよび宿の情報を信用してはいけなかったのか……。

永遠に同じ程度の提供が不可能なのは理解する。
同名検索でヒットした別サイトがあり、どうも色々苦労があった様子。

だが。
マナー以上に経営者側のことを思いやる必要が必要なのか?

消費者様にはなりたくない、が、無理だった。
整理して整理して状況を書き留めてはいるが、思い出す度に虚しくなる。
今迄私は運が良かったのだ。
このような対応に一度も遭わず、旅の楽しさを享受してきた。
最低を知ることで今までの旅に感謝できる、貴重な体験をしたと思う。思いたい。

この場を借りて改めて同行者にお詫びする。

ペットと泊まれるだけの宿で売り込めばそもそも候補にならなかった。
この文章をさらにまとめ、宿の評価に投稿する。

旅ができる余裕が当分先になったため、次回以降は教訓を生かそう。

料理研究家の友人母がいつ席を立ったか。
――――知らないほうが良いこともある。

2011年2月18日金曜日

2/18覚書

1時間目は都道府県FizzBuzz。
時間外だけどやぎーにヒントもらって何とかクリア。
今日の問題は自力で解けなかった;
やり直すか・・・。

2時間目
cookieのこと。タイムアウト処理は省略。
sessionにも時間制限設定やりたかった(・・・と思ったら住所録拡張につながったよ↓)

cookieは値を直接ブラウザに入れる。
sessionはサーバー上に鍵(cookie)付の一時キャッシュで保管され、
ブラウザに鍵(cookie)が渡される。
アクセスのたびに鍵(cookie)を使い、サーバーにアクセスする。
そのままだと防御の手立てがないため、セットで覚える。
session_start()させたら、
攻撃を防ぐ関数:session_regenerate_id()を使う。

◆セッション開始とログイン処理の例。
//セッション機能を開始する=ロッカーを使用できるようにする=鍵を発行する
//セッションID(SESSID)=セッションの鍵は32ケタの英数字
session_start();

//セッションハイジャック対策
session_regenerate_id(true);

if ($_POST["id"] =="yamazaki" && $_POST["pass"] =="pass") {
 $_SESSION["loginname"]= $_POST["id"];
 print 'ログインしました<a href="./session2.php">マイページ</a>へ進む<br />';
 exit;
}
?>
<!DOCTYPE br PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
ログインしてください<br />
<form action = "session1.php" method = "POST" >
 ID:<br>
 <input type = "text" name = "id" value = "" /><br />
 Password:<br>
 <input type = "password" name = "pass" value = "" /><br />
 <input type = "submit" name = "login" value = "ログイン" />
</form>
</body>
</html>

◆セッション処理してマイページ表示
/*****************************************************************

■プログラム概要
【セッションIDが確認できる場合】
マイページを表示
【セッションIDが確認できない場合】
ログインページ(session1.php)に強制的に戻す
header("location: http://*****)
session2.php

*****************************************************************/

//既にセッションが開始=鍵が発行されているので、その鍵をブラウザから受け取って
//ロッカーの中身を確認しに行く
session_start();

//セッションハイジャック対策
session_regenerate_id(true);

if($_SESSION["loginname"]!="yamazaki"){
 //header("location: http://*****)で、*****へ強制ジャンプ。ローカルは省略可能。
 header("location: session1.php");
}
?>
<!DOCTYPE br PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
マイページです。
<a href = "session3.php" >ここをクリック</a>するとログアウトします。
</body>
</html>

3時間目

◆セッション削除

/*****************************************************************

■プログラム概要
ログアウトページ(セッションIDの破棄)

session3.php

セッションの破棄
・$_SESSION = array() ; //ロッカー自体を撤去
※array()は配列変数を初期化する記述
・session_destroy //ロッカーの中身だけを消去

*****************************************************************/
//セッション機能を開始する=ロッカーを使用できるようにする=鍵を発行する
//セッションID(SESSID)=セッションの鍵は32ケタの英数字
session_start();

//セッションハイジャック対策
session_regenerate_id(true);

//ロッカー自体を撤去
$_SESSION = array() ;

?>
<!DOCTYPE br PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
ログアウト(セッション変数を消去)しました。<br />
現在未ログイン状態です。<br />
このまま<a href = "session2.php" >マイページ</a>に遷移することはできません
</body>
</html>

MVCモデル Model View Controllerから、
controllerの概念と機能を勉強するよ!

WEBアプリ必須のログイン画面をcontrollerでつけていくよ。

◆address_bookにuserテーブル追加~
CREATE TABLE `address_book`.`user` (
`user_id` VARCHAR( 20 ) NOT NULL ,
`user_name` VARCHAR( 20 ) NOT NULL ,
`user_nickname` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 10 ) NOT NULL ,
`authority` TINYINT( 1 ) NOT NULL ,
`create_at` DATETIME NOT NULL ,
`update_at` DATETIME NULL ,
`del_flg` TINYINT( 1 ) NOT NULL ,
PRIMARY KEY ( `user_id` ) ;

すいません取り合えずinsertからやりました。
でもあり? 権限はどこで処理するんだ?
管理者パスワードとユーザーパスワードとほんとは判定別だよね;
細けぇ(ryでAdminでとりま変更。

sessionのincludeは、HTMLの宣言前に置かないとエラーになる、そうです。
これで40分ぐらい悩みました・・・。

自分用メモ。
びびえすみなおせ~

2011年2月16日水曜日

2/16覚書

1時間目
掃除と都道府県リスト。あとちょっとだったのにいいいい。

2時間目
実習となり、偶数のヒントが宿題九九2問目と判明。やたーできたー!
くわっちょこぼれ話のお勧めセキュリティはESET Smart Securityだよん。

ネタバレだけど自分用に。
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head><title>都道府県リスト</title>
</head>
<body>
<?php
$pref =array("▼都道府県を選択してください","北海道","青森県","岩手県",
"宮城県","秋田県","山形県","福島県", "茨城県","栃木県","群馬県","埼玉県",
"千葉県","東京都","神奈川県", "新潟県","富山県","石川県","福井県","山梨県",
"長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府",
"兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県",
"徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県",
"大分県","宮崎県","鹿児島県","沖縄県");
?>
<table border=1>
<caption>都道府県リスト</caption>
<tr>
 <?php foreach ($pref as $key => $value) {?>
  <?php if (($key%2) ==0){?>
<td>
   <?php echo $key?>
</td>
<td>
   <?php if (($key%2) ==0){?>
    <?php echo $pref[$key]?>
   <?php }?>
  <?php }?>
</td>
</tr>
<?php }?>
</table>
</body>

3時間目
クロスサイトスクリプティングテスト つづりはCross Site Scriptingだそうな。
ながーい解説はクロスサイトスクリプティング対策の基本(前編)を参考にどぞ。
一応リンク先にもあるけど補足。
※クロスサイトスクリプティング脆弱性のことを「XSS」と表記するのは、
「Cross Site Scripting」の略であるから「CSS」と表記したいけど、
「Cascading Style Sheets」の略も「CSS」となり紛らわしいため、
「XSS」と表記する場合が多くなってます。

フォームにはHTMLタグが入れられてしまう。
ウィルスを仕込まれたり、cookieをそのまま盗まれる危険性があるので、
XSS対策を行う必要性がある。

で、対策としては
■関数 htmlspecialchars()を使います。
フォームの中のPOST&GETで入るHTMLタグを変換してただの文字列に変えちゃうのだ。
参考サイト
実例
$xss_text = htmlspecialchars($_GET["user"], ENT_QUOTES,"UTF-8");
$xss_text = $_GET["user"];
echo $xss_text;

これを住所録に関数化してincludeさせよう!

で、こんな感じ。includeはこう。
function hg($str) {
 return htmlspecialchars($str,ENT_QUOTES,"UTF-8");
}
insertで例。
$sei=$_SESSION["sei"] = hg($_SESSION["sei"]);//セッションを受け取る
入力した文字列の判定だけできればいいので、使うのはindex、insert、updateだよ~。
ただし、配列ごとの処理が必要なので["mei"]等々もおんなじよーにつけます。
他にも入力フォームつけてるヒトは適宜ヨロシコ。

4時間目

SQLインジェクション
【' OR ''='】をフォームに入れると、入っているデータが全部出てしまう。
【''='】はどんな条件でも架空のカラムが存在しないなら、すべて引き出せてしまう。
mixiアプリの実例も記憶に新しいところですが、マジ怖い。
//エスケープ処理前
//$sql="SELECT * FROM sql_esc WHERE pass='".$request."'";
//エスケープ処理後
$sql = sprintf("SELECT * FROM sql_esc WHERE pass = '%s'",
 mysql_real_escape_string($request));

未対処は
SELECT * FROM sql_esc WHERE pass='' OR ''=''
のあとにデータがだ~~~と出てきます。

実際に対策すると
SELECT * FROM sql_esc WHERE pass = '\'\' OR \'\'=\'\'
って意味のない文字になる

実践的で100%じゃないけどいい感じのところ
MySQL mysql_real_escape_stringでSQLインジェクションを防ぐ


おまけ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/tr/html4/loose.dtd">
これって何?
DOCTYPE宣言と言うそうな。
HTMLには複数のバージョンがあり、文法や用法がバージョンごとに違いが出ています。
そのため、どのバージョンで作成されたか宣言が必要なのです。
まあHTML5を使うときはこのDOCTYPE宣言も代わるけど、いまは深く考えなくていいと思います~。

2011年2月15日火曜日

2/15覚書

あったらいいな機能
・検索条件保持
・ワイルドカード検索(*を%に変換)
・announce_twitteでツイート連動
・escapeでPOST期待値以外は捨てることでセキュリティ向上。
・ページング機能

苦労した点
・sessionでデータの受け渡しの処理の理解に時間がかかりました。
・全角カナのエラーチェックに最後まで苦しみました。
・フォームの"登録する"や"戻る"で前後に半角スペースを入れたために受け渡しができずに悩みました。
その分、&nbsp;(出ないので全角)の重要性を理解することができました。
わかるようになってきたこと
・構文エラーなどに対して自力で解決できることが増えた。
修正が必要な箇所
最初から項目を変数化しておくことで手順が並列化し、作業効率が上がる。
・登録完了しないとセッションがクリアできない。時間設定がセキュリティ的にも必要。
・変数は項目に併せた名称にすることでケアレスミスを防ぐ。
・ifの判定は関数化しないときは個別に行わないと動作しない?
 動かなかった;
 }else{入れてifで条件つけたほうが見た目もすっきりするなあ。

いい感じのツール
Inkscapeドローツールなのかな?
astah* community無償のUMLモデリングツール。せっきー紹介。
ソフトウェア開発支援ツール。
目からウロコのすごいやつ
疑似個人情報データ生成サービス

これはすごい。

今後予定
・セキュリティ対策
・管理者設定
・来週からSmarty

うーむ。今日は夜歯医者さんなのでとりあえず帰ります。
またあした~

2011年2月14日月曜日

2/14覚書

insertで成功したエラーチェックで全角カナが動かない><
午後全部使って判明。

//カタカナseiチェック
if (preg_match("/^(?:\xE3\x82[\xA1-\xBF]|\xE3\x83[\x80-\xB6])+$/",$sei_kana)) {
 $em_sei_kana_error_yn = "n";
 }else{
 $error_msg["em_sei_kana"] = "全角カタカナで入力してください";
 $em_sei_kana_error_yn = 'y';
 $error_yn = "y";
}

どこから入力された情報なのか、って大原則の変数指定が違ってた;
preg_machで見るのは入力された$sei_kanaなのに、ここをいじってしまっていた;
そら無理だよねー;

あとはエラーのときだけ戻るボタンに注釈。
 <?php if ($error_yn == "y") {?>
 <?php $error_msg["input"]="戻るボタンを押して訂正してください"?>
 <span style="color : red; font-size : 9pt"><?php echo $error_msg["input"] ?></span>
 <?php $input_error_yn = 'y'?>
 <?php $error_yn = "y"?>
 <?php }else {?>
 <?php }?>

ただ、エラーした後訂正して戻るとセッションにエラーMSGが残ってしまって、
判定とは別に文言が残る・・・・・・どうしようかなあ。

2011年2月10日木曜日

2/10覚書

1時間目九九+FizzBuzz
色づけしたいと思いつつ撃沈。
宿題みなおそ~

2時間目
update側だけだった注釈のspanタグ埋め込み+修正

3時間目
テスト報告書テンプレ探す・・・が見つからず。
いっちーがテンプレくれるそうなので微調整。

テンプレキタ――(゚∀゚)――!!
ですが、エラーメッセージの処理に欲を出してしまい、最終日に持ち越し;ごめんよいっちー;

4~5時間目
エラーフラグの処理で
 <?php }if ($input == $error_yn = "y") {?>
  <?php $error_msg["input"]="戻るボタンを押して訂正してください"?>
  <?php $input_error_yn = 'y'?>
  <?php $error_yn = "y"?>

 <?php }?>
を戻るボタンの前に出したい! でもでない、ていうかフラグが【y】になってる><
でもエラーメッセージは出てない。なんでやああああ。
$error_yn = "y"をとにかく//で消してみるデバッグをくわまんから伝授され、
やってみたら、includeさせてたがゆえの問題。
各ページの戻るボタンの上において成功;┐(´д`)┌ヤレヤレ

あとはupdate更新不可ってかIDが渡せてない・・・なんでや~
ええ、hiddenでID渡し忘れてました。ほんとにもう。冷静になれわたし。

2011年2月8日火曜日

2/8覚書

1時間目
・九九FizzBuzz
2時間目
・住所録~
sessionの開放。1個じゃ消えなかったので2個に。
//sessionの削除
$_sesstion = array();

// 最終的に、セッションを破壊する
session_destroy();

エラー表示改
$error_msg = array();で配列
$error_msg["sei"]="255字以内で姓を入力してください";
で格納
実際の表示は
<span style="color : red; font-size : 9pt"><?php echo $error_msg["sei"]; ?></span>

変に難しく考えてしまい、迷路に迷い込みました。
また休み明け~。