Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Benutzer können ohne Anmeldung nicht auf die Seite zugreifen

PHP-Benutzer können ohne Anmeldung nicht auf die Seite zugreifen

angryTom
angryTomOriginal
2019-10-31 09:25:323607Durchsuche

PHP-Benutzer können ohne Anmeldung nicht auf die Seite zugreifen

PHP-Benutzer können ohne Anmeldung nicht auf die Seite zugreifen

Unabhängig davon, welche Seitenlinkadresse Sie vor der Anmeldung eingeben , Sie werden aufgefordert, sich zuerst anzumelden. Nach erfolgreicher Anmeldung kann auf jede Seite zugegriffen werden. Wir können eine solche Funktion verwenden.

1. Sitzung

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;
}
?>

Each This Die Datei muss am Anfang der Seite geladen werden, sodass Sie sich anmelden müssen, um darauf zuzugreifen

2. Cookies

werden mit Cookies erstellt. Die Idee ist, dies zu überprüfen Das Cookie, wenn der Cookie-Datensatz lautet: Nach der Anmeldung springt es nicht, andernfalls springt es zur Anmeldeschnittstelle:

[Dies sind die Informationen, die auf jeder Seite enthalten sein müssen]

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

[Dies sind die Informationen auf der Anmeldeschnittstelle]

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

Weitere PHP-bezogene Kenntnisse finden Sie auf der PHP-Chinese-Website!

Das obige ist der detaillierte Inhalt vonPHP-Benutzer können ohne Anmeldung nicht auf die Seite zugreifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Kann PHP Software schreiben?Nächster Artikel:Kann PHP Software schreiben?