【问题标题】:CodeIgniter form validation not working on submissionCodeIgniter 表单验证在提交时不起作用
【发布时间】:2016-06-27 11:54:47
【问题描述】:

我正在学习 CodeIgniter,但遇到了一些问题。 我的登录页面(非常基本)出现了。但是,当我单击提交按钮运行 form_validation 时,页面刷新,然后给出 ERR_CONNECTION_REFUSED 错误。

主登录的 URL 类似于 localhost/xxxx/xxxx/index.php/main 。 当我提交表单时,它会更改为 localhost/xxxx/xxxx/main/login_validation

我已将“数据库”和“会话”加载到我的自动加载库中,并将“表单”和“网址”加载到自动加载帮助程序中。

我也进入 .htaccess 并使用 rewrite mod 将 RewriteBase 更改为 /xxxx/xxxx/

我不确定是否需要更改配置或路由文件中的其他内容...任何帮助将不胜感激!

ma​​in.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

    public function index()
    {
        $this->login();
    }

    public function Login(){

        $this->load->view('login');
    }

    public function Members(){
        $this->load->view('members');
    }

    public function Login_validation(){

        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'required|md5|trim');

        if($this->form_validation->run()){
            redirect('main/members');

        } else{
            $this->load->view('login');
        }

    }
}

login.php

    <h1>Login</h1>

    <?php

    echo form_open('main/login_validation');

    echo validation_errors();

    echo "<p>Email ";
    echo form_input('email');
    echo "</p>";

    echo "<p>Password ";
    echo form_password('password');
    echo "</p>";

    echo "<p>";
    echo form_submit('login_submit', 'Login');
    echo "</p>";

    echo form_close();

    ?>

【问题讨论】:

  • 将文件名设为Main.php 而不是main.php
  • @wolfgang1983 感谢您的建议。我更新了文件名并重新加载了 MAMP 服务器,但它仍然给我同样的错误。
  • 你有没有加载 url 助手?如果是这样,请使用echo form_open(base_url('main/login_validation');

标签: php codeigniter validation


【解决方案1】:

尝试将 main.php 更改为 Main.php 以避免在 unix 服务器上找不到控制器,但不确定其导致 ERR_CONNECTION_REFUSED 的原因。这可能是压缩问题。如果启用,请先尝试禁用压缩

 $config['compress_output'] = FALSE ;

如果在启用压缩的情况下在最终输出之前回显某些内容,则可能会得到 ERR_CONNECTION_REFUSED。 此外,如果您在 Login_validation() 中重定向, 注释掉重定向并检查提交表单时是否发生任何错误。 如果我可能会问为什么将您的方法命名为

Login_validation()

相反

login_validation()

【讨论】:

  • 感谢您的建议。 compress_output 已设置为 FALSE。 Login_validation() 对我来说是一个错误,因为我试图在询问之前尝试修复它时是否会产生任何影响。我只是忘记换回来了。我将文件名更新为 Main.php 并重新启动了 MAMP 服务器,但没有运气
【解决方案2】:

好的改变

echo form_open('main/login_validation');

到

echo form_open( site_url('main/login_validation'));

【讨论】:

  • 仍然给我同样的问题...我清除了缓存并重新启动了服务器,但仍然没有。我使用 Firefox 打开它只是为了确保它不是特定于 Chrome 的,但它给了我一个类似的错误,说它无法建立与服务器的连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多