如何防止用户在未登录时访问该页面?我希望他被重定向到登录页面.我知道它与会话有关.
它的工作原理如下:
启动会话:session_start()
如果Session ["user"] == null,则重定向到登录页面,否则继续.
在登录页面中,使用表单询问用户密码
将此表单发布到登录页面
如果用户已获得授权,请检查您的身份验证服务(例如,mysql中的表)
如果是,则Session ["user"] = $ userName,将用户重定向到该页面.如果不是,请再次提示输入密码
当然,这一切都非常非常简单.在您的会话中,您可以保留复杂的用户对象或任何内容.祝你好运编码.
正如Svetlozar Angelov指出的那样,以下代码可以正常工作:
if (!isset($_SESSION['nID'])) header("Location: login.php");
但是,这实际上并不能确保页面能够抵御真正想要访问的用户.你需要做一些调整:
if (!isset($_SESSION['nID'])) { header("Location: login.php"); die(); }
这可以防止知道如何忽略浏览器标头进入页面并导致问题的机器人和精明的用户.它还允许页面停止执行页面的其余部分并节省资源.
还值得注意的是,$ _SESSION ['nID']可以替换为用于存储用户名或id的任何其他变量.
当他记录时 - 存储一个会话变量.然后在每一页的开头
session_start(); if (!isset($_SESSION['nID'])) header("Location: login.php");
如果登录没问题
session_start(); $_SESSION['nID'] = 1; //example