|
登录类型网页一个控制器一个html,放在本地验证码能正常使用,传送到服务器上后,验证码总是输入错误,验证后发现验证码的session显示为空,找了半天没找出原因,求老司机指导一下,万分感谢。
附上代码:Html页面(login.html):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>用户登录</title>
<link rel="stylesheet" href="<?php echo base_url('styles/login-register.css');?>" />
<script type="text/javascript">
function checkcode(){
var incode = document.getElementById('captcha').value;
if (incode.length == 0) {
document.getElementById('captcha_re').innerHTML= "验证码不能为空";
return false;
}
var incode = incode.toLowerCase();//转化大写为小写
if(incode){
var xhr=new XMLHttpRequest();
//创建AJAX对象
xhr.open('get','<?php echo site_url('login/checkCD');?>'+'/'+incode);
//发送请求
//send(get-null/post-给服务器传递的参数)
xhr.send(null);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.responseText=="1"){
document.getElementById('captcha_re').innerHTML="验证码正确";
}else if(xhr.responseText=="2"){
document.getElementById('captcha_re').innerHTML="无SESSION";
return false;
}else{
document.getElementById('captcha_re').innerHTML="验证码错误";
return false;
}
}
}
}
}
</script>
</head>
<body>
<div class="shop_hd_header">
<div class="shop_hd_header_logo">
<a href="<?php echo site_url('home/index');?>"><img src="<?php echo base_url('qimages/logo.jpg');?>" alt="" /></a>
</div>
</div>
<div class="main">
<div class="login-form-left">
<img src="<?php echo base_url('qimages/left.jpg');?>"/>
</div>
<div class="login-form" style='width:400px;'>
<div class="form-hd">
<h3>用户登录</h3>
</div>
<div class="form-bd">
<form action="<?php echo site_url('login/signin');?>" method="post">
<table style='width:400px;'>
<tr>
<td style='width:70px'>用户名:</td>
<td style='width:180px'><input type="text" name="user_name"/></td>
<td style='width:150px'></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>验证码</td>
<td><input type="text" id="captcha" name="captcha" class="capital"/></td>
<td id="captcha_re"> </td>
</tr>
<tr>
<td><span></span></td>
<td>
<img src="<?php echo site_url('login/code')?>" alt="" onclick= this.src="<?php echo site_url('login/code').'/' ?>"+Math.random() style="cursor: pointer;" title="看不清?点击更换另一个验证码。"></img>
</td>
</tr>
<tr><td><span></span></td><td><span>点击图片更换验证码</span></td></tr>
<tr><td></td><td><input type="submit" value="登录" style="width:80px;height:40px;background:#F08300;color:white;"/> <a href="<?php echo site_url('notice/index')."/2";?>"><span>忘记密码</span></a></td></tr>
<tr>
<td></td><td><span>还不是本站会员?</span><a href="<?php echo site_url('login/register');?>">立即注册</a></td>
</tr>
</table>
</form>
</div>
</div>
</div>
</body>
</html>
php页面(login.php):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//前台首页控制器
class Login extends Home_Controller{
public function __construct(){
parent::__construct();
$this->load->helper('my_aptcha_helper');
$this->load->library('form_validation');
$this->load->model('login_model');
}
public function index(){
$this->load->view('login.html');
$this->load->view('bottom2.html');
}
#生成验证码
public function code(){
#调用函数生成验证码
$code = create_captcha();
#将验证码字符串保存到session中
$this->session->set_userdata('code',"1234");
}
public function checkCD($code){
if($code==strtolower($this->session->userdata('code'))){
echo "1";
}else if($this->session->userdata('code')==""){
echo "2";
}else{echo "0";}
#停止执行后续动作
exit;
}
}
|
|