PHP 사용자는 로그인하지 않으면 페이지에 접근할 수 없습니다
로그인하기 전에 어떤 페이지 링크 주소를 입력하든 먼저 로그인하라는 메시지가 표시되며, 모든 페이지에 접근할 수 있습니다. 이러한 기능을 구현하는 방법은 무엇입니까? 세션과 쿠키를 사용하여 이를 달성할 수 있습니다.
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; } ?>
이 파일은 각 페이지 시작 부분에 로드되어야 하므로 반드시 로그인해야 접속할 수 있습니다
2 . Cookie
는 쿠키로 만들어졌습니다. 쿠키 기록이 로그인되어 있으면 점프하지 않고 로그인 인터페이스로 이동합니다.
[이 정보는 다음과 같습니다. 모든 페이지에 포함]
<?php namespace PenguinStudio/PenguinCode/STDCode; if($_COOKIE['login_session'] !== "islogin"){ header("Location: login.php"); }
[로그인 인터페이스 정보입니다]
<?php namespace PenguinStudio/PenguinCode/STDCode; if(.../* 判断登陆正确 */){ setcookie("login_session","islogin", time()+3600*24);//一天过期的cookie } else{ echo "<script>alert('wrong');</script>"; }
PHP 관련 지식을 더 알고 싶으시다면 PHP 중국어 홈페이지를 방문해주세요!
위 내용은 PHP 사용자는 로그인하지 않으면 페이지에 액세스할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!