繁体   English   中英

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

[英]Appending GET parameters on HREF tag with PHP

我正在像这样的代码:

<?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?的链接https://www.page.example.com/page.php? 然后将这两个参数分别作为id为idurl_tag GET参数附加。

然后,我显示整个链接的外观。 它可以正确显示,在这种情况下为https://www.page.example.com/page.php?id=ID&url_tag=URL_TAG ,其中ID和URL_TAG是作为POST参数接收的实际值。

但是,当我单击“ 单击此处 ”链接时,它会将我重定向到https://www.page.example.com/page.php? ,即没有任何GET参数的网址。

为什么会发生这种情况,我将如何解决? 我试图用urlencode($ url)来给HREF喂,但是它会将我重定向到一个充满了不想要的字符的地址...

任何想法? 谢谢!

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

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

它应该工作。

尝试使用http_build_query() ,它可以为您解决所有URL字符兼容性问题...

// 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM