「ログインフォーム」の編集履歴(バックアップ)一覧に戻る

ログインフォーム - (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");
	} 
}
?>
目安箱バナー