登入頁面 (login.php3)
<?php
if ($login) {
include("../include/config.inc.php3");
session_start();
$right_enter = 0;
$query = "SELECT * FROM user_define WHERE user_login='$user_login' AND user_pass=PASSWORD('$user_pass')";
$result = @mysql_query($query, $dbconnect);
if ($user_array = @mysql_fetch_array($result)) {
$user_id = $user_array['user_id'];
$user_name = $user_array['user_info'];
session_register("user_id");
session_register("user_name");
session_register("user_array");
if ($user_array['ticket_day'] && $user_array['ticket_num']) {
$right_enter = 1;
} else {
$error_message = "對不起,您沒有訂票的權限!";
}
} else {
$error_message = "錯誤!用戶名或口令錯誤,請重新輸入。";
}
$log_time = date("Y-m-d H:i:s");
$query = "INSERT INTO log_record (log_time, user_login, remote_addr, right_enter, enter_function)
VALUES ('$log_time', '$user_login', '$REMOTE_ADDR', $right_enter, 1)";
@mysql_query($query, $dbconnect);
if ($right_enter) {
Header("Location: welcome_reserve.php3");
exit;
}
}
if ($logout) {
session_start();
session_unregister("user_id");
session_unregister("user_name");
session_unregister("user_array");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>用戶登錄</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="../include/jz_common.css">
</head>
<body>
<?php if ($error_message) echo "<center><font color=#ff0000>$error_message</font></center>"; ?>
<form method="post" action="login.php3">
用戶名:<input type="text" name="user_login"><br>
密碼:<input type="password" name="user_pass"><br>
<input type="submit" name="login" value="登入">
<input type="submit" name="logout" value="登出">
</form>
<?php include("../footer.php3"); ?>
</body></html>
關鍵點說明
session_start() 必須在任何輸出前呼叫。
- 使用
session_register() 註冊全域變數(PHP 4.1 以前寫法),新版建議直接用 $_SESSION['var']。
- 登入成功記錄日誌(時間、IP、是否授權),失敗顯示錯誤訊息。
- 登出時清除 Session 變數。
- 密碼驗證使用 MySQL
PASSWORD() 函數比對。