Maison > développement back-end > Problème PHP > Les utilisateurs PHP ne peuvent pas accéder à la page sans se connecter

Les utilisateurs PHP ne peuvent pas accéder à la page sans se connecter

angryTom
Libérer: 2023-02-28 07:26:01
original
3649 Les gens l'ont consulté

Les utilisateurs PHP ne peuvent pas accéder à la page sans se connecter

Les utilisateurs PHP ne peuvent pas accéder à la page sans se connecter

Peu importe l'adresse du lien de page que vous saisissez avant de vous connecter , vous serez invité à vous connecter d'abord. Après une connexion réussie, chaque page est accessible. Comment implémenter une telle fonction ? Nous pouvons utiliser une session et un cookie pour y parvenir.

1. 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>";
}
?>
Copier après la connexion

b) checklogin.php

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

Chacun Le fichier doit être chargé au début de la page, vous devez donc vous connecter pour accéder à

2. Les cookies

sont faits avec des cookies L'idée est de vérifier. le cookie si l'enregistrement du cookie est Après la connexion, il ne sautera pas, sinon il passera à l'interface de connexion :

[Voici les informations à inclure sur chaque page]

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

[Ce sont les informations sur l'interface de connexion]

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

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal