使用PHP在HREF标记上附加GET参数

时间:2014-07-23 00:09:59

标签: php href

我正在处理这样的代码:

<?php
$id=$_POST['id'];
$url_tag = $_POST['url_tag'];
$url_back = 'https://www.page.example.com/page.php?';
$query='id='.$id.'&url_tag='.$url_tag;
$url = $url_back.$query;
echo 'Look how this url shows up: '.$url;
echo '<a href='.$url.'>Click here</a>';
?>

这是,页面接收两个POST参数。然后准备一个指向https://www.page.example.com/page.php?的链接,我将这两个参数作为GET参数附加,分别包含ids idurl_tag

然后我显示整个链接的样子。它显示正确,在本例中为https://www.page.example.com/page.php?id=ID&url_tag=URL_TAG,其中ID和URL_TAG是作为POST参数接收的实际值。

但是,当我点击&#39; 点击此处&#39;链接,它将我重定向到https://www.page.example.com/page.php?,这是没有任何GET参数的网址。

为什么会发生这种情况,我将如何解决?我试图用urlencode($ url)来反馈HREF,但它会将我重定向到充斥着不受欢迎的字符的地址......

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:4)

尝试用此替换代码的最后一行:

echo '<a href="'.$url.'">Click here</a>';

它应该有用。

答案 1 :(得分:1)

尝试使用http_build_query(),它会为您处理任何网址字符兼容性问题......

// assuming you've already checked and validated your $_POST parameters
$query = http_build_query(array(
    'id'      => $_POST['id'],
    'url_tag' => $_POST['url_tag']
));
$url = 'https://www.page.example.com/page.php?' . $query;
?>

<a href="<?= $url ?>">Click here</a>