我正在处理这样的代码:
<?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 id
和url_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,但它会将我重定向到充斥着不受欢迎的字符的地址......
有什么想法吗?谢谢!
答案 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>