【问题标题】:PHP $GET variable works with one value but not with another. why?PHP $GET 变量适用于一个值,但不适用于另一个值。为什么?
【发布时间】:2015-09-21 12:50:04
【问题描述】:

我正在尝试使用 URL 从上一页检索用户输入。我在上一页有以下代码,它通过 URL 发送用户名和帐户状态。

header("location: pagename.php?user=$username&status=$status");

'pagename.php' 我有以下代码,它将值存储在局部变量中并为我的利益回显它们。

if(isset($_GET['user'], $_GET['status'])){ 
$user = mysqli_real_escape_string($con, $_GET['user']);
$status = mysqli_real_escape_string($con, $_GET['status']);
echo $user.' - '. $status;
}

虽然,在其他地方,这种方法非常适合从 URL 中检索 5 个值,但在这种情况下,我无法检索状态,它会回显以下 '用户名 - ' 你可以看到一张图片输出以便更好地理解。非常感谢您帮助我使用 PHP 从 URL 中检索状态。

http://www.awesomescreenshot.com/image/378892/c50c452d8597f2ac29970a6a21bfcc62

尝试var_dump($_GET) 我得到以下结果:

【问题讨论】:

  • 我认为您的 isset() 语法不正确。我认为您需要分别检查这两个变量。
  • @rumesh:基本调试,var_dump($_GET) 看看 PHP 收到了什么。
  • 试试$user = $_GET['user']; echo $user; 看看它是否有效。 satus 变量也一样。
  • 你不应该回声 echo $_GET['user'].' - '。 $_GET['status'];
  • @DavidCorbin 你是对的,但如果注册全局设置打开,OP 的代码可能仍然有效。 php.net/manual/en/security.globals.php

标签: php variables url get echo


【解决方案1】:

我刚刚意识到问题出在变量$status 的命名上,它恰好与我的登录会话中使用的名称相同,并且因为我没有登录它没有获得帐户状态。我通过简单地重命名变量来解决这个问题。

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2020-10-21
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多