gpt4 book ai didi

php - 在链接内传递变量仅适用于多词变量中的第一个词,为什么?

转载 作者:行者123 更新时间:2023-11-28 00:29:50 25 4
gpt4 key购买 nike

我在下面有这段代码。如您所见,我将两个变量与链接一起传递。第二个 variabye (category) 只要由一个词组成就可以工作,但有些类别是两个词或更多,然后在我获取变量的接收 php 页面上只获取第一个词。

示例:我传递这个:轮辋和轮胎只有这个通过:Rims

$display_table .= "<a href='../ad.php?ad_id=$row[ad_id]&category=$row[category]' target='_parent'>";

这是我如何在接收 php 文件(链接指向)中获取它的方法:

$cat = $_GET['category'];
echo $cat; //displays only first word of multiple word categories.

最佳答案

您需要使用正确的编码。对于查询数据使用 urlencode :

"<a href='../ad.php?ad_id=".urlencode($row['ad_id'])."&category=".urlencode($row['category'])."' target='_parent'>"

并且由于属性值中的 & 也需要正确编码(使用 htmlspecialchars ):

"<a href='".htmlspecialchars("../ad.php?ad_id=".urlencode($row['ad_id'])."&category=".urlencode($row['category']))."' target='_parent'>"

生成正确的代码会使事情变得更加困难,并且在使用上面的变体时也可能更加难以阅读。但是您可以像这样拆分步骤:

$row['ad_id'] = urlencode($row['ad_id']);
$row['category'] = urlencode($row['category']);
$href = htmlspecialchars("../ad.php?ad_id=$row[ad_id]&category=$row[category]");
$display_table .= "<a href='$href' target='_parent'>";

如果 ad_id 始终是一个数值,您甚至不需要对其应用 urlencode

关于php - 在链接内传递变量仅适用于多词变量中的第一个词,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2662168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com