我有一个输入$ _GET并将其弹出到MySQL查询的表单。但是,它的工作原理大致符合我的预期:
搜索包含空格的项目时,$ _ GET将这些空格替换为“ +”。
这是很难解释的地方。
初始查询工作正常,并且具有空格的那些项目也从数据库返回,没有问题。
然而:
然后,我有一个弹出的计算窗口,该窗口引用另一个将页面$ _GET连接到新url的$ _GET上的php函数。
在此阶段,“ +”会触发url的末尾,并且不显示任何内容。
例如:
这是$ _GET ?dialstring=&groupSelect=uk+vodafone
但是,弹出窗口将$ _GET作为?dialstring=&groupSelect=uk
我认为可能是JS弹出代码破坏了$ _GET,如下所示:
function modalcalc(){
$('<div>').dialog({
title: 'Calculator',
height: '350',
width: '400',
open: function ()
{
$(this).load('<?=base_url();?>ratesheet/calculator/<?=$this->uri->segment(3);?>/?dialstring=<?=$_GET['dialstring']?>&groupSelect=<?=$_GET['groupSelect']?>');
},
modal: true
});
return false;
}`
对于其余大量功能,我需要/希望将其保留为$ _GET,因为$ _POST似乎无法满足我的需要。
最佳答案
将<?=$_GET['dialstring']?>
替换为<?=rawurlencode($_GET['dialstring']);?>
,将<?=$_GET['groupSelect']?>
替换为<?=rawurlencode($_GET['groupSelect']);?>
。这应该够了吧。
关于php - $ _GET“+”号导致mysql搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17106115/