我正在尝试在CodeIgniter中创建一个登录脚本,但我只有一个空白页面。
我希望它说“用户名或密码错误”,如果用户名和密码正确,则应将session设置为true。我希望有人可以帮助我。
这是我的代码:
<?php
class Login extends Controller {
function index()
{
if ($this->_submit_validate() === FALSE) {
$this->index();
return;
}
}
private function _submit_validate()
{
$this->form_validation->set_rules('username', 'Username',
'trim|required|');
$this->form_validation->set_rules('password', 'Password',
'trim|required');
return $this->form_validation->run();
}
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
echo 'Du har ikke adgang til denne side';
die();
//$this->load->view('login_form');
}
}
}
这是我的观点文件:
<h3>Medlem login</h3><br>
<?php
echo form_open('login/');
echo validation_errors('<p class="error">');
echo form_input('username', 'Username');
echo form_password('password', 'Password');
echo "<br />";
echo form_submit('submit', 'login');
echo anchor('signup', 'Opret Account');
echo form_close();
?>
答案 0 :(得分:0)
您的代码完全错误,并且不遵循RESTful模式。对于初学者,索引函数将导致脚本阻止:
function index()
{
if ($this->_submit_validate() === FALSE) {
$this->index();
return;
}
}
您应该加载表单视图,而不是在失败时再次调用索引函数。然后在验证成功的情况下添加else子句。像:
function index()
{
if ($this->_submit_validate() === FALSE) {
$this->load->view('view_form');
} else {
$this->function_to_set_session();
}
}
在function_to_set_session()中,你可以按照以下几点做点什么:
function login(){
// set session vars
$this->session->set_flash('flash_message_to_show_after_reload'); // this is the message on succes
redirect('path_to_redirect');
}
我认为你刚开始使用CodeIgniter?如果是这样,我建议遵循教程。