-2

我尝试做的是$_SESSION['user_id']检查是否'user_id'=“数字”,例如56,如果是这样加载页面,如果不是将用户重定向到"billing/".$_SESSION['user_id'].".php";

到目前为止我有这个

<?php
    if ($_SESSION['user_id']) === 56) {
        //do nothing
    } else {
          header("Location: billing/".$_SESSION['user_id'].".php");
          exit();   
    }
?>

我知道这段代码是错误的,但希望它传达了我想要完成的事情。提前感谢您的帮助和代码片段。

4

4 回答 4

1
  1. 不要根据答案编辑问题中的代码。你让人无法理解你在说什么。
    如果您想添加一些东西 - 在原始文本下方添加它。

  2. 问清楚,确定的问题。描述您面临的问题以及您需要什么样的解决方案。

  3. 分开事项。事实上,会话与重定向无关。如果您想知道如何使用会话 - 询问如何使用会话。如果您已经拥有有效且经过验证的会话变量,但不知道重定向 - 请询问重定向。如果您不知道如何比较值 - 问它。如果你什么都知道,但不确定代码样式的一些花里胡哨 - 问这个特定的问题。

现在,你的问题是什么?

于 2011-10-03T15:52:22.513 回答
0

你非常接近,但你可以使用 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);
    }
?>
于 2011-10-03T15:30:52.390 回答
0

为什么不检查相反的?为了可读性,使用 {} 而不是“。”是明智的。(只要你的编辑强调这一点)

<?php 
if($_SESSION["user_id"] != 56) {
    header("location: billing/{$_SESSION['user_id']}.php");
    die();
}
?>
于 2011-10-03T15:35:25.143 回答
0

header()的PHP 文档提供了很多关于如何使用 header 函数的信息。最重要的是:

  • 确保在调用之前没有 html 或文本被回显或发送到浏览器header()
  • 你需要一个exit();afterheader()因为你已经完成了页面的渲染并且一些浏览器更喜欢它。
  • HTTP/1.1 需要一个绝对 URI作为 » Location: 的参数,包括方案、主机名和绝对路径,因此您需要将完整的 URL 放在“Location:”之后。例如,请参阅 php 文档。
于 2011-10-03T15:36:16.960 回答