我要做的是使用$_SESSION['user_id']
来检查'user_id'
是否=" number",例如56,如果是,加载页面,如果不是将用户重定向到"billing/".$_SESSION['user_id'].".php";
到目前为止我有这个
<?php
if ($_SESSION['user_id']) === 56) {
//do nothing
} else {
header("Location: billing/".$_SESSION['user_id'].".php");
exit();
}
?>
我知道这段代码是错误的,但希望它传达了我想要完成的。提前感谢您的帮助和代码片段。
-
不要根据答案编辑问题中的代码。你在让别人无法理解你在说什么。
-
问清楚、确定的问题。描述你面临的问题以及你需要什么样的解决方案。
-
独立很重要。事实上,会话与重定向无关。如果你想知道如何使用会话-询问如何使用会话。如果你已经有有效的和验证的会话变量,但不知道重定向-询问重定向。如果你不知道如何比较值-问它。如果您知道所有的东西,但是不确定代码样式的一些细节,那么请问这个问题。
您非常接近,但您可以使用php函数http_redirect
代替重定向,更简洁(需要PECL库):
<?php
if ($_SESSION['user_id'] == 56) {
//do nothing
} else {
http_redirect("billing/".$_SESSION['user_id'].".php", array(), true, HTTP_REDIRECT_PERM);
}
?>
PHP Doc for header()给出了很多关于如何使用header函数的信息。最重要的是:
- 在调用
header()
之前,确保没有html或文本被回显或发送到浏览器。 - 在
header()
之后你需要一个exit();
,因为你完成了渲染页面,一些浏览器更喜欢它。 - HTTP/1.1需要一个绝对URI作为»Location:的参数,包括方案,主机名和绝对路径,所以你会想把完整的URL放在'Location:'后面。
为什么不选择相反的呢?为了可读性,明智的做法是使用{}而不是"。"(只要你的编辑强调这一点)
<?php
if($_SESSION["user_id"] != 56) {
header("location: billing/{$_SESSION['user_id']}.php");
die();
}
?>