我正在尝试从查询字符串传入$ _GET变量,并将其传递到指向其上有应用程序的另一个页面的链接。
客户将被定向到我的页面,并且该网址将具有变量名称merchantid。我需要在主页上将其传递给应用程序页面。
我已将它显示在主页上作为测试,所以我知道如何获得它。我只需要知道如何将它传递给应用程序页面。
<?php
if (empty($_GET)) {
// no data passed by get
echo "<a href='{site_url}application'>Application</a>";
}
else
{
// The value of the variable name is found
echo "<a href='{site_url}application?merchantid=" .merchantid ."'><Application></a>";
}
?>
我的其他链接实际上已经爆炸了。
好的,这是我的第二次尝试,结果相同。当我将商品传入网址时,链接就会爆炸。防爆。 www.mysite.com /?= MERCHANTID = 12345
<?php
if (empty($_GET)) {
// no data passed by get
echo "<a href='{site_url}application'>Application</a>";
}
else
{
if(isset($_GET['merchantid'])){$merchantid = $_GET['merchantid'];}
else{$merchantid = "DefaultMerchant";}
echo "<a href='{$site_url}application?merchantid=" .$merchantid ."'><Application </a>";
}
?>
答案 0 :(得分:1)
你并没有告诉php“商品”是一个变量,你也没有定义它。
替换
echo "<a href='{site_url}application?merchantid=" .merchantid ."'><Application></a>";
使用
if(isset($_GET['merchantid'])){$merchantid = $_GET['merchantid'];}
else{$merchantid = "";}
echo "<a href='{$site_url}application?merchantid=" .$merchantid ."'><Application></a>";
}
<小时/>
<?php
$site_url = 'http://'.$_SERVER['HTTP_HOST'].'/';
if (empty($_GET)) {
// no data passed by get
echo "<a href='{$site_url}application'>Application</a>";
}
else
{
if(isset($_GET['merchantid'])){$merchantid = $_GET['merchantid'];}
else{$merchantid = "DefaultMerchant";}
echo "<a href='{$site_url}application?merchantid=".$merchantid."'>Application</a>";
}
?>
答案 1 :(得分:1)
$ _ GET是一个由查询字符串中的任何值索引的数组。例如:
http://sit.url.com?merchantId=12&foo=bar
会将以下内容放在$ _GET数组中:
$_GET['merchantId'] = "12"
$_GET['foo'] = "bar"
您需要在代码中使用块来根据$ _GET中这些值的存在来初始化$ merchantId变量:
//folks commonly use ternaries for this:
$merchantId = (isset($_GET['merchantId'])) ? $_GET['merchantId'] : false
这是一种说明的简写方式:
if (isset($_GET['merhantId']) {
$merchantId = $_GET['merchantId']
} else {
$merchantId = false;
}
正如Angelo和C.Coggins所提到的,不要忘记&#34; $&#34;在php中的变量前面。
答案 2 :(得分:0)
您需要先将$_GET['merchantid']
分配给$merchantid
,或将$merchantid
替换为$_GET['merchantid']
,除非您已启用register_globals,真的不应该使用。
所以要么加上这个:
$merchantid = $_GET['merchantid'];
或使用此:
echo "<a href='{$site_url}application?merchantid=" . $_GET['merchantid'] . "'><Application></a>";
除此之外,正如其他人指出的那样,您的原始代码在变量名称之前缺少$
。