<?php session_start(); //開始SESSION $user_name = 'kai'; //預設帳號 $user_password = sha1('123456'); //預設密碼 $message = ''; //訊息 if(isset($_POST['user_name']) && isset($_POST['user_password'])){ //判斷帳密是否正確 if($_POST['user_name'] == $user_name && sha1($_POST['user_password']) == $user_password ){ $_SESSION['user_name']=$user_name; $message = '登入成功!'; }else{ $message = '帳密有誤!'; }}elseif(isset($_GET['action'])){unset($_SESSION['user_name']); } ?>
<p><?php echo $message;?></p> <?php if( isset($_SESSION['user_name']) ){ ?> <p>你已經登入了!</p> <p><a href="?action=logout">我要登出</a></p> <?php }elseif( isset($_GET['action']) ){?> <p>登出成功</p> <p><a href="index.php">回到登入頁面</a></p><?php }else{?> <!--登入表單--><form action="index.php" method="post"> <label for="user_name">帳號</label> <input type="text" id="user_name" name="user_name" /> <label for="user_password">密碼</label> <input type="password" id="user_password" name="user_password" /> <input type="submit" value="登入" /> <input type="reset" /> </form><?php }?>

<form action="" method="post">
<label for="user_name">帳號</label>
<input type="text" id="user_name" name="user_name" />
<label for="user_password">密碼</label>
<input type="password" id="user_password" name="user_password" />
<input type="submit" value="登入" />
<input type="reset" />
</form><p>登出成功!</p>
<p><a href="?action=list">回留言版</a></p>
<p><a href="?action=list">重新登入</a></p>
<form action="" method="post">
<label for="user_name">帳號</label>
<input type="text" id="user_name" name="user_name" />
<label for="user_password">密碼</label>
<input type="password" id="user_password" name="user_password" />
<label for="user_password2">確認密碼</label>
<input type="password" id="user_password2" name="user_password2" />
<input type="submit" value="註冊" />
<input type="reset" />
</form><?php
class member{
function __construct( PDO $db){
$this->db = $db;
}
}
<?php
session_start();
<?php class member{ ... function login( $member ,$password){ $db = $this->db; $stmt = $db->prepare("SELECT * FROM `member` WHERE " . "`member` = :member " . "AND `password` = :password"); $stmt->execute(array( ':member' => $member, ':password' => sha1($password) ));if( $stmt->rowCount() == 1 ){//是否有符合的資料 $user = $stmt->fetchAll(PDO::FETCH_ASSOC); $_SESSION['user'] = $user[0];//把會員資料寫進SESSION裡 return true;//登入成功 }else{ return false;//登入失敗 } } }
<?php
class member{
...
function logout(){
session_destroy();
return true;
}
}
<?php class member{ ... function register( $member ,$password){ $db = $this->db; $stmt = $db->prepare("INSERT INTO `member`" . "(`member`,`password`,`create_date`)" . "VALUES ( :member , :password , NOW() )"); $stmt->execute(array( ':member' => $member, ':password' => sha1($password) ));if( $stmt->rowCount() == 1 ){//是否有符合的資料 return true;//註冊成功 }else{ return false;//註冊失敗 } } }
<?php
require 'config.php';
$model = array(
'message',
'member'
);
if( in_array( $_GET['model'] , $model) ){
require 'model/' . $_GET['model'] . '.php' ;
require 'controller/' . $_GET['model'] . '.php' ;
}
<?php
if( isset( $_GET['action'] ) ){
$member = new member($db);
switch($_GET['action']){
default :
require 'view/error.php';
}
}else{
require 'view/error.php';
} case 'login': require 'view/member_login.php'; break;case 'login_post': if( isset($_POST['user_name']) && isset($_POST['user_password']) ){if( $member->login($_POST['user_name'] , $_POST['user_password']) ){ header("Location: ?model=message&action=list"); }else{ header("Location: ?model=member&action=login&error=1"); } } else{ header("Location: ?model=member&action=login&error=2"); } break;
case 'logout' :
$member->logout();
require 'view/member_logout.php';
break; case 'register' : require 'view/member_register.php'; break; case 'register_post' : if( isset($_POST['user_name']) && isset($_POST['user_password']) && isset($_POST['user_password2']) ){ if( $_POST['user_password'] != $_POST['user_password2']){ header("Location: ?model=member&action=register&error=1");}elseif( $member->register($_POST['user_name'] , $_POST['user_password']) ){ header("Location: ?model=message&action=list"); }else{ header("Location: ?model=member&action=register&error=2"); } } else{ header("Location: ?model=member&action=register&error=3"); } break;
<!--加入註冊連結--> <p><a href="?model=member&action=register">註冊</a></p><!--指定POST到member的login_post位置--> <form action="?model=member&action=login_post" method="post">
<p>登出成功!</p>
<p><a href="?model=message&action=list">回留言版</a></p>
<p><a href="?model=member&action=login">回登入頁</a></p><form action="?model=member&action=register_post" method="post"><?php if(isset($_SESSION['user'])){?>
<p>歡迎<?php echo $_SESSION['user']['member'];?>登入!<a href="?model=member&action=login">[登出]</a></p>
<?php }else{?>
<p><a href="?model=member&action=login">[登入]</a></p>
<?php }?>