我正在创建一个动态网站,其中用户在表单中指定一堆选项,然后点击提交,此时我有一个PHP脚本使用$_POST
变量来访问值用户已选择。我对数据库进行查询并拉出所有匹配项,并在新页面上显示项目列表。然后,用户可以浏览可用选项,如果他们单击一个,则会将他们带到该项目的动态创建页面。我通过URL传递项目的名称,然后使用它在数据库中查找具有该名称的特定项目。问题是标题或名称包含撇号(或单引号),+符号或&符号等字符的项目。符号不会正确地通过URL,并导致信息不从数据库中提取。例如,如果我有一个名为“Tap& Barrel”的项目,如果我像这样分配那个确切的字符串:
<a href="pub_temp.php?name=Tap & Barrel></a>
然后当Tap&amp;的新页面出现时Barrel加载,没有提取任何信息,pub_temp.php的URL是这样的:
/pub_temp.php/name=Tap & Barrel
对于其中一些,就像带有单引号的那些一样,就好像之后一切都被忽略了,它只传递了该字符前面的字符串中的所有内容。
我试图使用htmlspecialcharacters,与ENT_SUBSTITUTE和ENT_IGNORE一起使用,但是没有成功,有没有人知道解决这个问题?