使用php重定向登录页面

Posted

技术标签:

【中文标题】使用php重定向登录页面【英文标题】:Login page redirect using php 【发布时间】:2015-09-30 15:04:55 【问题描述】:

我最近开始在我的 WAMP 服务器上进行 Web 开发,并尝试使用 phpmysql 构建一个简单的登录页面。我所做的只是在成功验证后使用: 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重定向登录页面的主要内容,如果未能解决你的问题,请参考以下文章

有一个 PHP 重定向到登录页面,而不是强制登录

客户登录后,Amazon Pay 使用 php SDK 在同一页面上重定向

登录成功后重定向到新页面

php 重定向到其他登录页面

如何在 PHP 中登录页面后将用户重定向回所需的 URL?

php 在登录时将WooCommerce客户重定向到商店页面