「ログインフォーム」の編集履歴(バックアップ)一覧に戻る
ログインフォーム - (2006/01/18 (水) 14:03:32) のソース
<?php //================================================================================== //メイン //================================================================================== //ファイル読み込み require_once("./init.php"); //セッションスタート session_start(); /*session_register("session_id");*/ //class生成 $in = new Login(); $out = new Logout(); $sql = new sql_init(); $h = new html(); $cookie_name = login_c;//クッキーの名前 if($_SERVER['REQUEST_METHOD'] == "GET"){ $_POST['mode'] = &$_GET['mode']; } switch($_POST['mode']): case 'write': // チェック処理へ; $userid = $_POST['userid']; $passwd = $_POST['passwd']; $check = $_POST['check']; //クッキーを取るかどうか判定 if($in->login_check($userid,$passwd) == true && $check == "ok"){ $in->set_cookie(); } $h->header_html("login"); $in->login_form_check(); break; case 'out': //ログアウト処理へ setcookie ("$cookie_name", "",time()-1);//クッキーの破棄 $h->header_html("logout"); $out->logout_syori(); break; default: $h->header_html("login"); $in->user_login_form();//ログインフォーム break; endswitch; $h->footer_html(); exit(); class Login{ //================================================================================== //ログイン画面 //================================================================================== function user_login_form($error ="",$userid =""){ echo <<<HTML <form action ="nologin.php" method="post"> <input type=hidden name="mode" value="write"> ログイン<br><br><br> <p>$error</p> ノブログID <input type="text" name="userid" maxlength="20" size="25" style="ime-mode: disabled;" value="$userid"><br><br> パスワード<input type="password" name="passwd" value="$passwd"><br><br> <input type="checkbox" name="check" value ="ok" Checked>ログイン状態を保存する<br><br> <input type="submit" value="ログイン"> </form> HTML; } //================================================================================== //ログイン処理 //================================================================================== function login_form_check(){ //入力された値を入れる $userid = $_POST['userid']; $passwd = $_POST['passwd']; if(!isset($userid) || $userid ==""){ //ユーザIDに値が入っているかチェック $this->user_login_form("ノブログIDを入力してください"); exit; }elseif(!isset($passwd) || $passwd ==""){ //パスワードのチェック $error = "パスワードを入力してください"; $this->user_login_form($error,$userid); exit; } //ユーザID,パスワードが正しいか照合 if($this->login_check($userid,$passwd)){ //正しければログイン $_SESSION["session_id"] = $userid; echo"ログインしました"; html::back_html("./noblog_main.php"); }else{ //入力された値が正しくなかった時の処理 $error = "ユーザIDまたはパスワードが間違っています"; $this->user_login_form($error,$userid); } } //================================================================================== //ログインチェック処理 //================================================================================== function login_check($userid,$passwd){ $login_flag = false; $con_id = sql_init::connect(); //ユーザID,パスワードの照合 $sql = "select userid passwd from user where userid = '$userid' AND passwd = '$passwd'"; $res = mysql_query($sql,$con_id); $rows = mysql_num_rows($res); if($rows != 0) { $login_flag = true; }else{ $login_flag = false; } return $login_flag; } //================================================================================= //クッキー //================================================================================= function set_cookie(){ $userid = $_POST['userid']; $passwd = $_POST['passwd']; global $cookie_name; //クッキーに書き込む内容 $cook_val = array($userid,$passwd); //配列を文字列に $cookie_val =implode("<>", $cook_val); //時間 $data =time()+30*24*3600;//30日間保存 //クッキーセット setcookie($cookie_name,$cookie_val,$date); } } class Logout{ function logout_syori(){ session_start(); session_unset(); session_destroy(); echo "ログアウトしました"; html::back_html("./nologin.php"); } } ?>