我有一个输入$ _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/

10-11 17:47