PHP 如果设置了 Cookie,则显示页面
PHP Show Page If Cookies Are Set
当前代码
<?php
$cookie_name = "testr";
if(!isset($_COOKIE[$cookie_name])) {
header("Location: http://admin.rafflebananza.com/authenticate.php");
exit;
} else { ?>
<!-- HTML PAGE GOES HERE -->
<?php } ?>
我当前的代码与上面类似,但我感觉这不是做事的方式,因为 Dreamweaver 说这样做会出错。
如果在加载页面之前未设置 cookie,最好的重定向方式是什么
最近我不熟悉 Dreamweaver 如何检查 PHP 代码,但经常在 Stack Overflow 上看到 Dreamweaver 错误地报告语法错误的误报。你现在的代码和逻辑是有效的,如果有点丑。
由于 if()
条件的作用是重定向并显式 exit
,您实际上不需要 else {}
块。您可以直接在 if () {}
后面加上 HTML 内容,并且 PHP 将输出它,因为它尚未重定向并终止执行。
<?php
$cookie_name = "testr";
if(!isset($_COOKIE[$cookie_name])) {
header("Location: http://example.com/authenticate.php");
exit;
}
// No else {} block
// Follow this directly with your HTML
?><!DOCTYPE html>
<html>
<body>everything else...</body>
</html>
正如评论线程中所指出的那样,单独使用 cookie 作为身份验证保护是不够的,也不安全,除非可以使用代码中的秘密验证 cookie 的值,例如一次性-使用令牌。在这种情况下,在 $_SESSION
中存储一个客户端浏览器无法修改的值可能更合适。
当前代码
<?php
$cookie_name = "testr";
if(!isset($_COOKIE[$cookie_name])) {
header("Location: http://admin.rafflebananza.com/authenticate.php");
exit;
} else { ?>
<!-- HTML PAGE GOES HERE -->
<?php } ?>
我当前的代码与上面类似,但我感觉这不是做事的方式,因为 Dreamweaver 说这样做会出错。
如果在加载页面之前未设置 cookie,最好的重定向方式是什么
最近我不熟悉 Dreamweaver 如何检查 PHP 代码,但经常在 Stack Overflow 上看到 Dreamweaver 错误地报告语法错误的误报。你现在的代码和逻辑是有效的,如果有点丑。
由于 if()
条件的作用是重定向并显式 exit
,您实际上不需要 else {}
块。您可以直接在 if () {}
后面加上 HTML 内容,并且 PHP 将输出它,因为它尚未重定向并终止执行。
<?php
$cookie_name = "testr";
if(!isset($_COOKIE[$cookie_name])) {
header("Location: http://example.com/authenticate.php");
exit;
}
// No else {} block
// Follow this directly with your HTML
?><!DOCTYPE html>
<html>
<body>everything else...</body>
</html>
正如评论线程中所指出的那样,单独使用 cookie 作为身份验证保护是不够的,也不安全,除非可以使用代码中的秘密验证 cookie 的值,例如一次性-使用令牌。在这种情况下,在 $_SESSION
中存储一个客户端浏览器无法修改的值可能更合适。