我正面临一个内部服务器错误:500,当我尝试将值从我的视图传递给代码点火器控制器。我试图通过ajax脚本传递它。我不知道如何调试并通过浏览器查看控制器中发生的情况。请帮助我!我有点卡住..如果你让我小提琴,我会很棒的。
这是我的观看代码:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>login</title>
<link rel="stylesheet" href="<?php echo base_url()?>assets/login/style.css" />
<link href='http://fonts.googleapis.com/css?family=Oleo+Script' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="<?php echo base_url()?>assets/login/jquery-1.7.min.js"></script>
<script type="text/javascript">
javascript:window.history.forward(1);
$(document).ready(function(){
$("#logincheck").click(function(){
var action = $("#lg-form").attr('action');
var username = $("#username").val();
var password = $("#password").val();
//alert($("#username").val());
$.ajax({
type: "POST",
url: action,
data: {u_name : username,pwd : password},
success: function(response)
{ //$('#message').html(response).fadeIn('slow');
if(response == "success")
location.href = "<?php echo site_url();?>/Dashboard/index";
else
$("#message").html('<p class="error">ERROR: Invalid username and/or password.</p>');
}
});
return false;
});
});
</script>
</head>
<body>
<div class="lg-container">
<h1>Admin Area</h1>
<form action="<?php echo site_url('login/login_check');?>" id="lg-form" name="lg-form" method="post">
<div>
<label for="username">Username:</label>
<input type="text" name="username" id="username" placeholder="username"/>
</div>
<div>
<label for="password">Password:</label>
<input type="password" name="password" id="password" placeholder="password" />
</div>
<div style="text-align:center;">
<button type="submit" id="logincheck">Login</button>
</div>
</form>
<div id="message"></div>
</div>
</body>
</html>
我的控制器代码是:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
public function index()
{
$this->load->view('login_page/login');
}
public function login_check()
{ print_r($this->input->post());exit;
$res['username'] = $this->input->get('u_name');
$res['password'] = md5($this->input->get('pwd'));
$this->load->model('Login_m');
$i=$this->Login_m->login_data($res);
if($i ==1 )
{
echo "success";
}
}
}
我的模型代码是:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Login_m extends CI_Model
{
function login_data($data)
{ //print_r($data);exit;
$query =$this->db->query('select e.* from ins_entity e where e.entity_uname =? and e.entity_pwd =?',array($data['username'],$data['password']))->row_array();
if(count($query) > 0)
{
$newdata = array(
'id' => $query['entity_id'],
'name' => $query['entity_name'],
'uname' => $query['entity_uname']);
$this->session->set_userdata($newdata);
return 1;
}
else
{
//echo "Invalid Credentials at present";
return 0;
}
}
}
?>
答案 0 :(得分:0)
试试这个,而不是使用
var action = $("#lg-form").attr('action'); // YOU dont need this
var username = $("#username").val();
var password = $("#password").val();
改为使用
var data = $("#lg-form").serialize() //should be logincheck
你有一个奇怪的命名约定。表单的ID应该更能描述表单。
这不符合你的表格
$("#logincheck").click(function(){
在表单上,它表示ID为lg-form。该ID也应该在表单上登录检查
答案 1 :(得分:0)
我刚刚找到了问题的解决方案。我在编程中犯了两个错误
在我的ci里面的autoload.php中,我忘了添加'数据库','会话'助手。
在我纠正了这两件事之后,我没有得到内部服务器错误:500,当我尝试将值从我的视图传递给代码点火器控制器。感谢所有帮助过我的人!