会員用ページをつくる(さらにクッキーを利用) クッキーを利用してログインページ(login.php)をつくる 前回、一応完成したスクリプトは次のようなものでした。 login.php session_start(); if ($_SERVER["REQUEST_METHOD"]=="POST"){ //POSTされた場合 if (ユーザーIDが登録されているか){ if (パスワードは正しいか){ $_SESSION["myid"] = $id; $_SESSION["flg_login"] = 1; header("Location: http://hogehoge/mypage.php"); exit; } } }  (ログインページを表示) mypage.php session_start(); if($_SESSION[$flg_login] == 1){ //ログインチェックOKならば $id = $_SESSION["myid"];  (HTMLヘッダーを出力)  print 'あなたのIDは'.$id.'です。';  (HTMLフッターを出力) }else{ //ログインチェックNG(直接ページに飛んできた)ならばログインページへジャンプ header("Location: http://hogehoge/login.php"); exit; } これはこれでいいのですが、ユーザーがサイトを再利用してくれるときに、ユーザーIDとパスワードがログインページにあらかじめ設定されていると便利なことがあります。この仕組みをクッキーを使って実現しましょう。 クッキーの読み込み ログインページでクッキーを読み込んでみましょう。 login.php session_start(); if ($_SERVER["REQUEST_METHOD"]=="POST"){ //POSTされた場合 if (ユーザーIDが登録されているか){ if (パスワードは正しいか){ $_SESSION["myid"] = $id; $_SESSION["flg_login"] = 1; header("Location: http://hogehoge/mypage.php"); exit; } } }else{ if(isset($_COOKIE["phpstyle"])){ $cookie_phpstyle = $_COOKIE["phpstyle"]; }  (ログインページ表示開始) print 'value='.$cookie_phpstyle["cid"]; print 'value='.$cookie_phpstyle["cpw"];  (ログインページ表示終了) } クッキーが設定されていれば、ユーザーIDとパスワードの入力フィールドにクッキーから読み込んだ値があらかじめセットされます。 クッキーの設定 クッキーを設定するのはどのタイミングでしょうか。それは、ログインが成功した時点です。クッキーを設定するのは下記の太字のところになります。 login.php session_start(); if ($_SERVER["REQUEST_METHOD"]=="POST"){ //POSTされた場合 if (ユーザーIDが登録されているか){ if (パスワードは正しいか){ $_SESSION["myid"] = $id; $_SESSION["flg_login"] = 1; setcookie( "phpstyle[cid]", $id ); //ユーザーIDをクッキーに保存 setcookie( "phpstyle[pid]", $pw ); //パスワードをクッキーに保存 header("Location: http://hogehoge/mypage.php"); exit; } } }else{ if(isset($_COOKIE["phpstyle"])){ $cookie_phpstyle = $_COOKIE["phpstyle"]; //クッキーがあれば読み込む }  (ログインページ表示開始) print 'value='.$cookie_phpstyle["cid"]; print 'value='.$cookie_phpstyle["cpw"];  (ログインページ表示終了) } セッションIDの登場 これで一応のスクリプトはできました。しかし、セキュリティの観点からはこれらのスクリプトは穴だらけです。1つにはHTML特殊文字がエスケープされていないなど、ユーザーが入力した値をそのまま利用している点が問題です。これについては、別の章で扱う予定です。 ここでは、もう一つの問題点である「クッキーにユーザーIDとパスワードをそのまま設定して」しまっている点を修正したいと思います。 クッキーにセッションIDを設定することにより、セキュリティを少し高めます。 http://www.heijitsu.net/phpstyle/membersession.html トップ

クッキーで会員ページ


クッキーで会員ページ