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();

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"];

results matching ""

    No results matching ""