Login網站登錄
vote2.php
<?php
session_start();
if(!isset($_SESSION["authenticated"])|| (time() - $_SESSION['authenticated']) > 600 )
{
$redir = "login.php";
header("Location: $redir");
exit;
}
?>
db_func5.php
<?php
/**
* @file
* db_funtions.php: demo PDO usage
* Hsueh-Ting Chu 2017/10/13
*/
//require_once 'testlog.php';
$GLOBALS['dbconfig'] = array (
'database' => 'web2017',
'username' => 'student2017',
'password' => 'mALL7Fs2E7hcuXsD',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
);
//從資料庫讀出使用者資料
function CheckUserTest($sID, $sCode)
{
return "Hello";
}
function CheckUser($sID, $sCode) {
$dbconfig = $GLOBALS['dbconfig'];
$dsn = $dbconfig['driver'].":host=".$dbconfig['host'].";dbname=".$dbconfig['database'];
$pdo = new PDO($dsn, $dbconfig['username'],$dbconfig['password']);
$pdo->query("set names utf8");
$sql = "SELECT SName FROM tour_user WHERE SID = :SID AND SCode =:SCode";
$pdoStatement = $pdo->prepare($sql);
$pdoStatement->bindValue(':SID', $sID, PDO::PARAM_STR);
$pdoStatement->bindValue(':SCode', $sCode, PDO::PARAM_STR);
$ret = $pdoStatement->execute();
$row = $pdoStatement->fetch();
if ($row)
{
return $row['SName'];
}
return NULL;
}
login.php
<?php
//2017/11/08
$msgError = "預設密碼是0000";
if(isset($_POST["Enter"])){
session_start();
require_once 'db_func5.php';
// $GLOBALS['dbconfig'] = $dbconfig;
$SID = $_POST["SID"];
$SCode = $_POST["SCode"];
$UserData = CheckUserTest($SID, $SCode);
if($UserData != NULL)
{
$_SESSION['authenticated'] = time();
$redir = 'vote2.php';
header("Location: $redir");
exit;
}
else
$msgError = "帳號或密碼錯誤";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh-Hant-TW">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登入系統</title>
</head>
<style type="text/css">
<!--
body {
margin:0;
padding:0;
font: bold 14px/1.5em Verdana;
}
h2 {
font: bold 18px Verdana, Arial, Helvetica, sans-serif;
color: #000;
margin: 0px;
padding: 0px 0px 0px 15px;
}
</style>
<body bgcolor="#F0F0F0">
<div style="text-align:center;">
<img src="clinic.jpg"/>
<h2> 畢業旅行投票</h2>
</div>
<div style="text-align:center;">
<br/>
<div style="margin:0 auto;border: 2px solid blue; width:300px;">
<form method="POST" action="login.php">
學號<input type="text" name="SID" id="SID" /><br/>
<?php echo $msgError; ?>
<br/>
密碼<input type="password" name="SCode" id="SCode" /><br/>
<input type="submit" name="Enter" id="Enter" value="登入" />
</form></div>
</div>
</body>
</html>
logout.php
<?php
//admin
session_start();
unset($_SESSION['authenticated']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh-Hant-TW">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登入系統</title>
</head>
<style type="text/css">
<!--
body {
margin:0;
padding:0;
font: bold 14px/1.5em Verdana;
}
h2 {
font: bold 18px Verdana, Arial, Helvetica, sans-serif;
color: #000;
margin: 0px;
padding: 0px 0px 0px 15px;
}
</style>
<body bgcolor="#F0F0F0">
<div style="text-align:center;">
<img src="clinic.jpg"/>
<h2> 畢業旅行投票</h2>
</div>
<div style="text-align:center;">
<br/>
<div style="margin:0 auto;border: 2px solid blue; width:300px;">
謝謝您參與投票!!!
<br/>
<a href="vote2.php">重新進入投票</a>
</div>
</div>
</body>
</html>
PHP語法說明
登出連結
||<a href="logout.php">登出</a>
PHP session
當一個HTTP應用程序運行時,是不會記住先前的狀態。任何一次對伺服器的連線請求都不知道你是誰以及你做什麼。 PHP session 解決了這個問題(比如用戶名稱、購買商品等)。不過,會話信息是臨時的,在用戶離開網站後將被刪除。如果您需要永久儲存信息,可以把數據存儲在數據庫中。 Session 的工作機制是:為每個訪問者創建一個唯一的 id (UID),並基於這個 UID 來存儲變量。 UID 存儲在 cookie 中,亦或通過 URL 進行傳導。
開始 PHP Session
<?php session_start(); ?>
存儲 Session 變量
<?php
// store session data
$_SESSION['views']=1;
?>
取回 session 變量
<?php
$Var=$_SESSION['views'];
?>
終結 Session
<?php
unset($_SESSION['views']);
?>
PHP 時間函數
time() 函數返回自 Unix 紀元(January 1 1970 00:00:00 GMT)起的當前時間的秒數。
time();
PHP Cookie
Cookie,中文名稱為「小型文字檔案」或「小甜餅」,指某些網站為了辨別用戶身分而儲存在用戶端(Client Side)上的資料(通常經過加密)。定義於RFC2109。Cookie的大小限制在4KB左右。Cookie典型的應用是當登入一個網站時,網站往往會請求用戶輸入使用者名稱和密碼,並且用戶可以勾選「記得我」。
http://phppot.com/php/php-login-script-with-remember-me/ PHP Login Form
<form action="" method="post" id="frmLogin">
<div class="error-message"><?php if(isset($message)) { echo $message; } ?></div>
<div class="field-group">
<div><label for="login">Username</label></div>
<div><input name="member_name" type="text" value="<?php if(isset($_COOKIE["member_login"])) { echo $_COOKIE["member_login"]; } ?>" class="input-field">
</div>
<div class="field-group">
<div><label for="password">Password</label></div>
<div><input name="member_password" type="password" value="<?php if(isset($_COOKIE["member_password"])) { echo $_COOKIE["member_password"]; } ?>" class="input-field">
</div>
<div class="field-group">
<div><input type="checkbox" name="remember" id="remember" <?php if(isset($_COOKIE["member_login"])) { ?> checked <?php } ?> />
<label for="remember-me">Remember me</label>
</div>
<div class="field-group">
<div><input type="submit" name="login" value="Login" class="form-submit-button"></span></div>
</div>
</form>
PHP Cookie to Remember Login
<?php
session_start();
$_SESSION["member_id"] = $user["member_id"];
if(!empty($_POST["remember"])) {
setcookie("member_login",$_POST["member_name"],time()+ (10 * 365 * 24 * 60 * 60));
}
?>
PHP setcookie() 函数
setcookie(name,value,expire,path,domain,secure)
//一個 24 小時過期的 cookie
setcookie("TestCookie",$value, time()+3600*24);
// 把失效日期设置为一小时前-刪除
setcookie ("TestCookie", "", time() - 3600);
// 取得cookie值
$_COOKIE["TestCookie"];