首頁  >  文章  >  後端開發  >  PHP使用者不登入不能造訪頁面

PHP使用者不登入不能造訪頁面

angryTom
angryTom原創
2019-10-31 09:25:323568瀏覽

PHP使用者不登入不能造訪頁面

PHP使用者不登入無法存取頁面    

沒登入前不管輸入哪個頁面的連結位址都提示請先登錄,登入成功後就每個頁面都可以訪問,怎麼實現這樣一個功能呢,我們可以使用session和cookie來實現。

一、session

a)login.php

<?php
header("content-type:text/html;charset=utf-8");
if(!isset($_POST[&#39;submit&#39;])){
exit("非法登录");
}
$name=trim($_POST[&#39;username&#39;]);
//echo $name;
$pwd=md5(trim($_POST[&#39;pwd&#39;]));
$pdo=new PDO("mysql:dbname=shixun1;host=127.0.0.1","root","123456");
 
if(preg_match(&#39;/^1[3,5,8]\d{9}$/&#39;,$name)) {
$sql=$pdo->query("select phone,pwd from user where phone=&#39;$name&#39;");
}elseif(preg_match(&#39;/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/&#39;,$name)){
$sql=$pdo->query("select email,pwd from user where email=&#39;$name&#39;");
}else{
$sql=$pdo->query("select name,pwd from user where name=&#39;$name&#39;");
}
//$sql=$pdo->query("select * from user where name=&#39;$name&#39;");
$res=$sql->fetch(PDO::FETCH_ASSOC);
if($res){
if($res[&#39;pwd&#39;]==$pwd){
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211"); 
session_start();
$_SESSION[&#39;username&#39;] = $name;
$_SESSION[&#39;password&#39;] = $pwd;
echo "<script>alert(&#39;登录成功&#39;);location.href=&#39;success.php&#39;</script>";
}else{
echo "<script>alert(&#39;密码错误&#39;);location.href=&#39;login.html&#39;</script>";
}
}else{
echo "<script>alert(&#39;用户名错误&#39;);location.href=&#39;login.html&#39;</script>";
}
?>

b)checklogin.php

<?php
if(!empty($_SESSION[&#39;username&#39;])){
// 不存在session用户id,退出
echo "用户未登录,前往登录页面登录";
header("Location: login.php");
exit;
}
?>

每個頁面最開始部分都要載入這個文件,就實現了必須登入才能存取

二、cookie

用cookie製作,思路是檢查cookie如果cookie記錄是登入了就不跳轉不然則跳到登入介面:

【這個是每個頁面要include的資訊】

<?php
namespace PenguinStudio/PenguinCode/STDCode;
if($_COOKIE[&#39;login_session&#39;] !== "islogin"){
    header("Location: login.php");
}

【這個是登入介面的資訊】

<?php
namespace PenguinStudio/PenguinCode/STDCode;
if(.../* 判断登陆正确 */){
    setcookie("login_session","islogin", time()+3600*24);//一天过期的cookie
}
else{
    echo "<script>alert(&#39;wrong&#39;);</script>";
}

更多PHP相關知識,請造訪PHP中文網

以上是PHP使用者不登入不能造訪頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn