【发布时间】:2016-04-03 12:13:02
【问题描述】:
我有一些 PHP 代码来检查用户登录状态,检查是否设置了会话变量或设置了 cookie。如果其中任何一个条件为真,那么它的大权限将重定向到登录页面。代码如下所示:
if(isset($_SESSION["userid"]) || isset($_COOKIE["userid"]) && isset($_SESSION["username"]) || isset($_COOKIE["username"]) && isset($_SESSION["password"]) || isset($_COOKIE["password"])){
} else {
header("location : register.php");
}
问题是,如果会话被破坏(通过关闭浏览器或任何其他原因),它会将用户重定向到登录页面。但它必须做的是读取 cookie 数据并授予用户访问权限,因为 cookie 仍然存在(我通过 echo cookie 数据检查了 cookie 仍然存在)。
【问题讨论】:
-
if((isset($_SESSION["userid"]) && isset($_SESSION["username"]) && isset($_SESSION["password"])) || (isset($_COOKIE["userid"]) && isset($_COOKIE["username"]) && isset($_COOKIE["password"]))){ } else { header("location : register.php"); } -
当您发布该代码时,您能提供一个链接给我吗?我会尝试一下。
-
我强烈建议您更多地了解 OOP 或使用 Slim 或 Silex 等框架。 phptherightway.com
-
不仅是面向对象编程,还有安全性。尤其是在哪里使用 cookie、信任 cookie 以及不存储在 cookie 中的内容。见:
|| (isset($_COOKIE["userid"]) && isset($_COOKIE["username"]) && isset($_COOKIE["password"]))
标签: php if-statement cookies