【问题标题】:How to send multiple values in a href link in PHP?如何在 PHP 的 href 链接中发送多个值?
【发布时间】:2018-07-24 13:06:56
【问题描述】:

我想使用href 链接将多个值发送到不同的页面。但我检索到的只是前 2 个值,其余显示未定义索引的错误。

我的代码是:

<?php 

echo "<a href='index.php?choice=search&cat=".$cat."&subcat=".$subcat."&srch=".$srch."&page=".$next."'> Next </a>";

?>

我只得到“选择”和“猫”的值。 请告诉我上面的代码有什么问题。

【问题讨论】:

  • 尝试htmlspecialchars(http_build_query(array('choice' =&gt; 'search', 'cat' =&gt; $cat, 'subcat' =&gt; $subcat, 'srch' =&gt; $srch, 'page' =&gt; $next))) 生成格式良好的查询字符串。

标签: php


【解决方案1】:

尝试使用urlencode,如果字符串中有任何特殊字符,它可能会对整个查询字符串产生影响;

echo "<a href='index.php?choice=search&cat=".urlencode($cat)."&subcat=".urlencode($subcat)."&srch=".urlencode($srch)."&page=".urlencode($next)."'> Next </a>";

另外,您在 srch 和 page 之间有一个空格,这可能会导致问题。

【讨论】:

  • 与号也必须转义。
  • 是的,好点子! @Sahil,请参阅 knittl's answer for escaping &s
【解决方案2】:

您必须正确地对这些 & 符号进行 HTML 转义:

?coice=search&amp;cat=...&amp;subcat=...&amp;srch=...

&amp;sub&amp;subcat)被解释为&amp;sub;,这是子集运算符的特殊 HTML 实体:

&sub; or &#8834; = subset of ⊂

还要确保正确转义变量以防止 XSS。

【讨论】:

  • @Sahil:可以。浏览器会尽最大努力(或最差)尝试找出您的意思。他们经常弄错。
猜你喜欢
  • 2016-07-19
  • 2017-10-12
  • 2016-07-31
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多