php中利用session驗證登入表單

來源:互聯網
上載者:User

登入頁面是:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陸</title>
</head>
<body>
<form name="login" action="login.php" method="post">
姓名:<input type=text name="name"><br/>
密碼:<input type=password name="password"><br/>
<!-- <input type="radio" name="limits" value="1">管理員 -->
<!-- <input type="radio" name="limits" value="0">普通使用者 -->
<input type="submit" name="submit" value="登入">
</form>
</body>
</html>

儲存session的頁面:

<?php
header("Content-Type: text/html; charset=utf8");
if( !isset($_POST["submit"]) ){
die("錯誤執行");
}//檢測是否有submit操作
 
require_once('connect.php');//連結資料庫
 
if ( isset($_POST['name']) && isset($_POST['password']) ){//如果使用者名稱和密碼都不為空白
 
$name = $_POST['name'];
 
$password = $_POST['password'];
 
$sql = " SELECT id, limits, message FROM user WHERE username = '$name' AND password = '$password' LIMIT 1";
 
$result = mysqli_query( $con , $sql );//執行sql 使用者名稱和密碼
 
$rows = mysqli_num_rows( $result );//返回使用者名稱密碼是否存在
 
if( $rows != 0 ){
 
session_start();
 
while( $rows_other = mysqli_fetch_assoc($result) ){
 
$_SESSION['id'] = $rows_other['id'];
$_SESSION['name'] = $name;
$_SESSION['limits'] = $rows_other['limits'];
$_SESSION['message'] = $rows_other['message'];
 
}
 
header("refresh:0;url=welcome.php");//跳轉至welcome.html頁面
 
exit;
 
}else{
 
echo "使用者名稱或密碼錯誤";
 
echo "<script>
alert('使用者名稱或密碼錯誤');
setTimeout(function(){window.location.href='login.html';},1000);
</script>";
 
}
 
}else{
 
echo "表單填寫不完整";
 
echo "<script>
alert('表單填寫不完整');
setTimeout(function(){window.location.href='login.html';},1000);
</script>";
 
}
?>

登陸後跳轉的頁面,根據不同的使用者顯示不同的許可權和使用者名稱:

<?php
 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
 
<?php
 
session_start();
 
if( isset($_SESSION['id']) ){
 
require_once('connect.php');
 
$id = $_SESSION['id'];
$name = $_SESSION['name'];
$limits = $_SESSION['limits'];
$message = $_SESSION['message'];
 
if( $limits == 1 ){
 
echo 'hello, 管理員' . '<br/>';
 
}else{
 
echo 'helo, 普通使用者' . '<br/>';
}
 
echo 'hello you name is:' . $name;
 
}else{
 
echo '未登入!';
 
header("refresh:3;url=login.html");
 
}
?>
 
&nbsp;
</body>
</html>
?>

使用session注意事項

1.在當前頁面要使用session時我們在檔案最前面沒有輸入內容時加上session_start();

2.session有一個時間限制的這個我們可以進行修改的,具體如下

 其實PHP5 Session還提供了一個函數 session_set_cookie_params(); 來設定PHP5 Session的生存期的,該函數必須在 session_start() 函數調用之前調用:

<?php
    // 儲存一天
    $lifeTime = 24 * 3600;
    session_set_cookie_params($lifeTime);
    session_start();
?>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.