【发布时间】:2016-03-20 19:59:55
【问题描述】:
我正在学习如何使用 Codeigniter 创建登录系统的教程。
我在视图中创建了以下表单:
<!DOCTYPE html>
<html lang="en">
<body>
<div class="container">
<h1>Login</h1>
<?php
echo form_open('welcome/login_validation');
echo validation_errors();
echo form_label('Email: ');
echo form_input('email'); //form_input(name,value)
echo '<br />';
echo form_label('Password: ');
echo form_password('password');
echo '<br />';
echo form_submit('login_submit', 'Login'); //form_submit(name,value)
echo form_close();
?>
</div>
</body>
</html>
但是当我在谷歌浏览器上点击提交按钮时,它会在地址栏中打开一个空白页面,其中包含“about:blank”。
在 FireFox 中,它具有正确的地址“...welcome/form_validation”,但出现以下消息:
"此地址被限制 此地址使用通常用于 Web 浏览以外的目的的网络端口。 Firefox 已取消保护您的请求。”
在 Microsoft Edge 上,它只停留在带有表单的页面上。
这是我的控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->login();
}
public function login()
{
$this->load->view('login');
}
public function login_validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if($this->form_validation->run()){
redirect('main/members');
} else{
$this->load->view('login');
}
}
public function members()
{
$this->load->view('users');
}
}
感谢任何帮助。如果您需要更多信息,请告诉我,我会发布。
谢谢
编辑:我使用的是 codeigniter 3.0.3
【问题讨论】:
-
将
echo form_open('welcome/form_validation');更改为echo form_open('welcome/login_validation');在您的控制器中不存在这样的form_validation方法。 -
@Saty 我改变了,但我仍然遇到同样的问题。
-
@Ddrossi93 如果你没有通过 htaacess 关闭它,你的 form_open 可能会添加一个 index.php 尝试使用这个 form_open(base_url().'welcome/login_validation');
标签: php forms codeigniter model-view-controller