$ _GET [ '$东西'];我究竟做错了什么?

时间:2012-06-27 18:14:44

标签: php sql

我正在尝试为GPT脚本构建一个通用的回发系统,而且我只是遇到了一些问题。

我不确定我在PHP中是否允许这样做,这可能是问题所在,但这就是我所得到的:

$ip = cleanQuery($_SERVER['REMOTE_ADDR']);
$getaffip = mysql_query("SELECT * FROM affiliates WHERE affip = '".$ip."' OR affip2 = '".$ip."' OR affip3 = '".$ip."' OR affip4 = '".$ip."'");
$affinfo = mysql_fetch_array($getaffip);

$affname = $affinfo['name'];
$campidi = $affinfo['campid'];
$subidi = $affinfo['subid'];
$ratei = $affinfo['rateid'];
$statusi = $affinfo['creditstatus'];
$credit = $affinfo['creditid'];
$reverse = $affinfo['reverseid'];

$subid = cleanQuery($_GET['$subidi']);
$rate = cleanQuery($_GET['$ratei']);
$status = cleanQuery($_GET['$statusi']);
$campid = cleanQuery($_GET['$campidi']);

这意味着它是在提取特定联盟会员在将信息发送到您的回发时使用的变量,例如他们会将此信息发送到回发网址:

http://yoursite.com/postback/postback.php?campaignid=11546&yti=me&credit=1

$affinfo次抓取会在$subidi上方的链接中提取特定联盟会员发送的已定义信息,因为发布该联盟会员的联盟会员将yti$campidicampaignid,但$_GET并没有提取这些信息。如果我将其更改为$_GET['yti'],它会起作用;在这种情况下,但这并不会使它具有普遍性,因为所有关联公司在向回发脚本发送信息时都不使用相同的变量。

我认为$_GET不支持$values,那么什么是我获取正确信息的最佳途径,或者我只是在这里遇到某种错字我忽略了?

3 个答案:

答案 0 :(得分:7)

如果密钥是变量,请不要引用密钥:

$subid = cleanQuery($_GET[$subidi]);
$rate = cleanQuery($_GET[$ratei]);
$status = cleanQuery($_GET[$statusi]);
$campid = cleanQuery($_GET[$campidi]);

如果您使用双引号而不是单引号,那将会起作用,但这对于不必要地引用变量来说是毫无意义和糟糕的做法。变量将在双引号内插值,最终得出你所追求的结果。

答案 1 :(得分:5)

引号太多:)应该是这样的:

$subid = cleanQuery($_GET[$subidi]);
$rate = cleanQuery($_GET[$ratei]);
$status = cleanQuery($_GET[$statusi]);
$campid = cleanQuery($_GET[$campidi]);

答案 2 :(得分:4)

不评估单引号中的变量。双引号是。

$foo = 'var';
echo 'my $foo'; // my $foo
echo "my $foo"; // my var

但在这种情况下你不应该使用任何引号