来自URL的ID变量

时间:2013-01-29 02:07:39

标签: php url

好的,当有人在网址mywebsite.com/?s1=affiliateid

中输入此内容时

我想从网址中取出affiliateid部分。每个会员都会在地址中添加不同的用户名。

然后我想根据输入地址栏的用户名创建指向differentwebsite.com/?id=affiliateid的链接。

现在到目前为止,我知道我必须拥有这样的会员才能获得会员身份

$aff_id = $_GET['s1'];

然后我可以使用该变量创建链接或只是将其重定向到下一页

differentwebsite.com/?id=$aff_id

我的问题是,我在哪里放置此代码? $aff_id = $_GET['s1'];

我是否必须制作一个名为?s1.php的网页?

3 个答案:

答案 0 :(得分:1)

假设s1在其他地方没有使用,只是为了创建一个链接:

<?php
  $s1 = isset($_GET['s1']) && !empty($_GET['s1'])
      ? $_GET['s1'] // it's populated, use the passed value
      : '';         // default value in case it's not present

  //
  // Maybe check $s1 is indeed valid
  //

  $newurl = sprintf('http://differentwebsite.com/?id=%s', urlencode($_GET['s1']));
?>

然后您可以在页面的某个位置输出该链接,例如:

<a href="<?= $newurl; ?>">New Url Here</a>

urlencode会确保s1包含&=?/(或其他)等字符不要破坏网址的完整性。

如果你想要简洁的方法:

<a href="http://differentwebsite.com/?id=<?= urlencode($_GET['s1']); ?>">
  New Url Here
</a>

答案 1 :(得分:0)

将mywebsite.com获得的$ aff_id附加到新网站的网址。据推测,$ newurl =“differentwebsite.com/?id =”。$ aff_id。

编辑:

  

我是否必须创建一个名为?s1.php的页面?

您需要创建一个页面,用户在访问网址时将会登陆该网页:www.mywebsite.com /

我假设您正在运行可以处理PHP代码的Web服务器。代码可以进入服务器文档根目录中名为index.php的文件中。如果您不知道这是什么,我建议使用Google搜索特定服务器的“操作方法”指南。

从网址获取“s1”的值并将其存储在$ aff_id:

$aff_id = $_GET['s1'];

如果您想将此变量传递到另一个接受“id”参数的网站,那么您只需将$ aff_id附加到新的网址并将用户重定向到该网址即可。

将用户重定向到differentwebsite.com,并将$ aff_id从mywebsite.com发送到其他网址:

header('Location: http://www.differentwebsite.com/?id='.$aff_id); 

答案 2 :(得分:0)

在您想要使用$aff_id = $_GET['s1']之前,您可以将$aff_id放在任何位置。我倾向于把这样的东西放在页面顶部。

或者,简单地说。 "differentwebsite.com/?id=$_GET['id']"

我建议您在尝试使用之前检查URL中是否存在id参数。甚至可以确保它是您期望的数据类型,整数,字符串等。因此,当您重定向用户时,您不会以其他方式将它们发送到其他地方。

如果你没有将它用于SQL,那么@BlackHatShadow就不会发生SQL注入。