PHP users cannot access the page without logging in
No matter which page link address is entered before logging in, you will be prompted to please Log in first. After successful login, every page can be accessed. How to implement such a function? We can use session and cookie to achieve it.
1. session
a) login.php
<?php header("content-type:text/html;charset=utf-8"); if(!isset($_POST['submit'])){ exit("非法登录"); } $name=trim($_POST['username']); //echo $name; $pwd=md5(trim($_POST['pwd'])); $pdo=new PDO("mysql:dbname=shixun1;host=127.0.0.1","root","123456"); if(preg_match('/^1[3,5,8]\d{9}$/',$name)) { $sql=$pdo->query("select phone,pwd from user where phone='$name'"); }elseif(preg_match('/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/',$name)){ $sql=$pdo->query("select email,pwd from user where email='$name'"); }else{ $sql=$pdo->query("select name,pwd from user where name='$name'"); } //$sql=$pdo->query("select * from user where name='$name'"); $res=$sql->fetch(PDO::FETCH_ASSOC); if($res){ if($res['pwd']==$pwd){ ini_set("session.save_handler", "memcache"); ini_set("session.save_path", "tcp://127.0.0.1:11211"); session_start(); $_SESSION['username'] = $name; $_SESSION['password'] = $pwd; echo "<script>alert('登录成功');location.href='success.php'</script>"; }else{ echo "<script>alert('密码错误');location.href='login.html'</script>"; } }else{ echo "<script>alert('用户名错误');location.href='login.html'</script>"; } ?>
b) checklogin.php
<?php if(!empty($_SESSION['username'])){ // 不存在session用户id,退出 echo "用户未登录,前往登录页面登录"; header("Location: login.php"); exit; } ?>
Each This file must be loaded at the beginning of the page, so that you must log in to access
2. Cookie
is made with cookies. The idea is to check the cookie if the cookie record is If you log in, you will not be redirected, otherwise you will be redirected to the login interface:
[This is the information to be included on each page]
<?php namespace PenguinStudio/PenguinCode/STDCode; if($_COOKIE['login_session'] !== "islogin"){ header("Location: login.php"); }
[This is the information for the login interface]
<?php namespace PenguinStudio/PenguinCode/STDCode; if(.../* 判断登陆正确 */){ setcookie("login_session","islogin", time()+3600*24);//一天过期的cookie } else{ echo "<script>alert('wrong');</script>"; }
For more PHP related knowledge, please visit PHP Chinese website!
The above is the detailed content of PHP users cannot access the page without logging in. For more information, please follow other related articles on the PHP Chinese website!