【问题标题】:Codeigniter base_url() in whack?Codeigniter base_url() 坏了?
【发布时间】:2012-07-26 16:49:17
【问题描述】:

我正在尝试使用以下代码设置基本登录表单:

<?=form_open(base_url() . 'main/login'); ?>

但是在提交表单后,url 显示如下:

example.com/main/http//example.com/http//example.com/main/login

所以我想本质上出于某种原因,base-url 在控制器/方法声明之前打印了两次。如果我清除配置文件中的基本 url 值,则应用程序可以正常工作。然而,我很好奇可能导致这种情况的原因。有关其他信息,我正在使用虚拟主机处理 xampp,并且我使用位于文档根目录的 .htaccess 文件进行了 mod-rewrite。

【问题讨论】:

    标签: codeigniter base-url


    【解决方案1】:

    你可以使用

    <?php echo form_open(base_url(main/login)); ?>
    

    你必须使用“echo”而不是因为它在某些浏览器中不起作用......

    【讨论】:

      【解决方案2】:

      application/config下的文件config.php有设置:

      $config['base_url'] = '';
      

      给它文件夹/目录路径。例如:

      $config['base_url'] = 'http://localhost/ci_test/';
      

      不要忘记提及协议 (http://)。或者尝试使用site_url() 方法而不是base_url() 来打开表单。如果使用form_open()函数,请跳过它:

      <form action="<?php echo site_url('main/login'); ?>"> ... </form>
      

      或者

      <?php form_open('main/login'); ?>
      

      更多帮助:http://codeigniter.com/user_guide/helpers/url_helper.html

      不确定您使用的.htaccess 文件。但这可能是答案codeigniter: why is that when i echo base_url() in an href attribute of an anchor tag, it echoes twice

      【讨论】:

        【解决方案3】:

        CodeIgniter 在你使用表单助手时会自动将 base_url 添加到表单的操作中。

        例如,您可以使用:

        <?=form_open('main/login'); ?>
        

        这将产生: http//example.com/main/login

        还有一个正确的网址!很简单! :D 更多信息请访问: http://codeigniter.com/user_guide/helpers/form_helper.html

        【讨论】:

          【解决方案4】:

          按参数试试:

          <?=form_open(base_url('main/login')); ?>
          

          <?=form_open site_url('main/login')); ?>
          

          为了也附加前缀

          【讨论】:

            猜你喜欢
            • 2018-07-26
            • 2016-02-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-10-01
            • 2014-06-01
            • 2018-11-08
            • 1970-01-01
            相关资源
            最近更新 更多