通过URL传递多个变量并在下一页上阅读所有这些变量

时间:2012-03-23 00:23:07

标签: php url parameters get

我有一个指向网页的链接,例如“land.php”。 链接如下所示:

<a href="land.php?id=1&cd=a">link</a>

这将我带到页面land.php,在那里我可以用$id读取第一个参数(并且它正确地等于1),但我无法读取第二个参数。我试过了$cd$_GET['cd']。它们都不起作用。

如果我尝试isset($cd),则说falseisset($_GET['cd'])也是如此。

我怎样才能传递第二个参数(并阅读它!)?

编辑:

一些代码(所以人们很高兴。我认为在这种情况下这是毫无意义的......)。

land.php

<?php
if($_GET['cd']==a)
    echo "<h2>HI</h2>";
else
    echo "<h2>BY</h2>";
?>

如果我使用$cd代替$_GET['cd'],则无论如何都无效..

EDIT2我没有得到任何语法错误,它只是没有表现出预期的效果。

3 个答案:

答案 0 :(得分:1)

该值存储在$_GET['cd']

尝试使用$_GET

打印print_r($_GET);数组

print_r($_GET)应输出

Array
(
    [id] => 1
    [cd] => a
)

这应该在land.php页面中,因为get变量仅在请求的页面中可用。

答案 1 :(得分:0)

您的服务器可能已设置为接受分号而不是&符号。尝试更换&amp;与;

答案 2 :(得分:0)

$_GET['cd']是正确的语法。你实际上在land.php页面上,即你的浏览器的地址栏是否类似于

example.com/land.php?id=1&cd=a

此外,如果您可以阅读register_globals,则看起来已启用$id。这是一个非常糟糕的主意。


更新

您的代码段包含语法错误。我建议如下,包括为开发启用合适的错误报告

ini_set('display_errors', 'On');
error_reporting(E_ALL);

if(isset($_GET['cd']) && $_GET['cd'] == 'a') {
    echo "<h2>HI</h2>";
} else {
    echo "<h2>BY</h2>";
}