使用php重定向登录页面
Posted
技术标签:
【中文标题】使用php重定向登录页面【英文标题】:Login page redirect using php 【发布时间】:2015-09-30 15:04:55 【问题描述】:我最近开始在我的 WAMP 服务器上进行 Web 开发,并尝试使用 php 和 mysql 构建一个简单的登录页面。我所做的只是在成功验证后使用: header("Location: locahost/redirect.php"); 将用户重定向到一个新页面。在我的 php 脚本中。
redirect.php 是一个简单的页面,显示您已成功登录。
我想问的是,我可以通过在地址栏中输入 localhost/redirect.php 来简单地转到 redirect.php。有没有什么方法只有经过身份验证的用户才能访问该页面...就像它在 facebook 和其他网站上工作一样,我们无法通过在地址栏中输入 URL 来进入某人的个人资料。
【问题讨论】:
设置会话数据并确保已设置。 【参考方案1】:你必须将此函数添加到redirect.php
function logged_in()
return (isset($_SESSION['user_id'])) ? true :false;
然后添加这个
if (logged_in()===false)
header('Location: whateverpageyouwant.php');
exit();
【讨论】:
【参考方案2】:好吧,如果用户成功登录,您可以添加创建 Cookie。 (例如,可能将值设置为日期、用户名和密码的 md5 哈希值,并将其写入您的数据库,以便您稍后检查是否有人“欺骗”了该 Cookie)
然后在您的 redict.php 上,您只需查看该 Cookie 是否存在(并且可能使用您的数据库检查该值?)。
此外,如果您设置 cookie 过期值,您可以控制用户是否应该仅在该会话中登录,或者例如一整月。
很抱歉我以前没有这样做过,但也许我可以帮助你解决这个想法
【讨论】:
谢谢。但是如果用户的浏览器不允许使用cookies,那是否意味着他/她不能在成功认证后被重定向到redirect.php? 不客气。是的,我想是的,但也许你可以添加一条“请允许此站点启用 cookie”消息,如果你可以检查 cookie 是否被禁用或没有有效的 cookie 您可以检查 cookie 是否启用:***.com/questions/6663859/… 或者您可以添加到“请登录以查看此内容”-消息“请确保您已启用 cookie” 谢谢...这会有所帮助。【参考方案3】:称为 URL 操作。
验证个人资料页面中的会话等信息。
+ 不要在没有退出的情况下使用 header('Location: ...');在它之后。重定向后总是退出。
header("Location: locahost/redirect.php");
exit;
否则它将加载页面内容并重定向。如果有人避免重定向,他可以在那里看到页面内容。
【讨论】:
在我的登录页面脚本中使用 $_SESSION["authenticated"]==true 进行身份验证是否正确,然后在我的重定向中检查: if ( isset($_SESSION["authenticated"]) ) .php 页面脚本? @ShivanshRai 是的,确实如此,但不要使用 == 进行分配。插入 $_SESSION["authenticated"]=true;如果用户也在登录页面中得到验证。 是的……这是我的错误。谢谢。 @ShivanshRai 但是我建议检查个人资料页面中的会话而不是重定向。 + 仅供参考:如果对您有帮助,您可以单击问题左侧的 tik 指定为最佳答案。 如果我在我的登录页面中检查会话并不意味着由于我的 redirect.php 页面中没有检查会话,我仍然可以通过键入 localhost/redirect.php 访问该页面在我的地址栏中?【参考方案4】:您可以在成功验证后创建会话并在 redirect.php 页面上检查。
如果您在此页面上没有找到会话,则将用户重定向回登录页面。
这样可以限制对redirect.php页面的直接访问
谢谢
【讨论】:
【参考方案5】:你可以在redirect.php页面内做一段PHP代码,并做一个条件语句:
-
如果用户已登录,请将其保留在页面中。
如果用户没有登录,将他重定向到登录页面。
【讨论】:
以上是关于使用php重定向登录页面的主要内容,如果未能解决你的问题,请参考以下文章