Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过URL传递多个变量,并在下一页读取所有变量_Php_Url_Parameters_Get - Fatal编程技术网

Php 通过URL传递多个变量,并在下一页读取所有变量

Php 通过URL传递多个变量,并在下一页读取所有变量,php,url,parameters,get,Php,Url,Parameters,Get,我有一个指向网页的链接,例如“land.php”。 链接如下所示: <a href="land.php?id=1&cd=a">link</a> 如果我使用$cd而不是$\u GET['cd']它无论如何都不会工作 EDIT2我没有收到任何语法错误,只是没有达到预期的效果。您的服务器可能被设置为接受分号而不是符号。尝试替换&with $\u GET['cd']是正确的语法。您是否真的在land.php页面上,即您的浏览器地址栏是否显示如下内容 example.co

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

<a href="land.php?id=1&cd=a">link</a>
如果我使用
$cd
而不是
$\u GET['cd']
它无论如何都不会工作


EDIT2我没有收到任何语法错误,只是没有达到预期的效果。

您的服务器可能被设置为接受分号而不是符号。尝试替换&with

$\u GET['cd']
是正确的语法。您是否真的在
land.php
页面上,即您的浏览器地址栏是否显示如下内容

example.com/land.php?id=1&cd=a
此外,如果您可以读取
$id
,则看起来您已启用了
注册\u globals
。这是一个非常糟糕的主意


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

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>";
}
ini_集('display_errors','On');
错误报告(E_全部);
如果(isset($\u GET['cd'])&&&$\u GET['cd']=='a'){
回音“嗨”;
}否则{
呼应“通过”;
}

该值存储在
$\u GET['cd']

使用
print\r($\u-GET)尝试打印
$\u-GET
数组

应该输出

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

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

输出做什么
var\u转储($\u get)给你什么?另外,当您到达
land.php
时,请检查URL上的参数是否仍然存在,您的代码中可能有其他内容将其搞乱。什么都没有。它打印一个空字符串。如果他们还在那是什么意思?当我把鼠标放在链接上时,我的浏览器会显示所有参数,所以它们都在那里。我的意思是当你到达
land.php
页面时。确保在
land.php
文件上运行
var\u dump()
函数(单击链接后)。是否可以显示
land.php
中的更多代码(请复制并粘贴)?我觉得问题在于there@Mawg完全不正确。
$\u GET
超级全局将填充URL查询字符串中的参数。您不需要通过机场到达form@Danny
print\r($\u GET)
不应显示
1
。如果在echo语句中使用,它至少应该是
Array()
Use
print\r($\u GET,true)
。有关用法,请参阅。如果我在echo中不使用它,它将不会打印任何内容。正如我所说,print\r($\u GET)不会打印任何内容请尝试将其放在文件开头:
。它将打印出整个
$\u GET
数组。一行一行地向下移动它,会给你一个错误的指示。不,如果我尝试“;”就好像我根本不分割参数。所有这些都包含在第一个参数中。这是个问题,这是不正确的$_GET应使用查询字符串中的参数填充,而不管其来源如何。因此,手动键入的URL、来自锚的URL和来自生成的URL都是有效的输入。为什么实际上使用“&”作为分隔符,但只有一个参数(第一个)传递到下一页?就像我所说的语句已被删除一样。我不知道为什么只有一个参数被传递,但我怀疑它要么是某个错误的配置,要么是您意外地在某个地方将其取消设置。您应该尝试搜索代码中的未设置项,或者尝试在其他服务器上运行脚本。那么我应该使用什么呢$光盘反正也不行。这就是为什么我不想发布代码,因为我尝试了很多不同的东西。不,我的浏览器最终显示为example.com/land.html。显然有一个重定向,但这并不能预先传递“id”。为什么“cd”没有出现同样的情况?
Array
(
    [id] => 1
    [cd] => a
)