用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3054|回复: 8
收起左侧

[讨论/交流] CI难学啊,各种奇怪的问题。哎

[复制链接]
发表于 2011-8-20 18:21:33 | 显示全部楼层 |阅读模式
我有一个登陆的判断,登陆成功之后做页面跳转,怎么样都没办法实现。


PHP复制代码
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class Login extends CI_Controller{
    /*构造函数
     *
     *
     */

   
    /*
     * 登陆界面
     */

    function index(){
        $data = array();
        $this->load->view('_login',$data);
    }
   
    function check(){
       
        if ($_POST)  
        {
           
            if (is_ajax() === TRUE)
            {
                //echo print_r($_POST);
                $username = $this->input->post('username');
                $password = $this->input->post('password');
               
                // 把数据提交给模型
                $this->load->model('admin_user_model');
                $this->admin_user_model->username = $username;
                $this->admin_user_model->password = $password;    
   
                $users = $this->admin_user_model->check();
           
                if($users)
                {
                    $this->session->set_userdata('logged', true);
                    $this->session->set_userdata('username', $this->input->post('username'));
                   
                    $this->session->set_userdata($users);
                    echo "登陆OK";
                    //redirect('welcome');
                    redirect('blog');
                }
                else {
                    echo "is faild";
                }
 
            }
            else {
                echo 'Ajax失败';
            }
        }  
         else  
        {  
             
        }  
       
         $this->db->last_query();
    }
}
 
 
复制代码

PHP复制代码
 
$(document).ready(function() {          
    var $body = $('body'),
        $content = $('#content'),
        $form = $content.find('#loginform');
   
    var username = $("#username").val();
    var password = $("#password").val();
   
        //IE doen't like that fadein
        if(!$.browser.msie) $body.fadeTo(0,0.0).delay(500).fadeTo(1000, 1);
       
       
        $("input").uniform();
       
        function beforeSubmit()
        {
          $(':input.x-form-required').trigger('blur');
          var numWarnings = $('.x-form-invalid').length;
          if (numWarnings) {
            return false;
          }
          return true;
        };
   
         $('#loginform').submit(function(){
            var username = $("#username").val();
            var password = $("#password").val();
     
            $.ajax({
                type: 'post',
                dataType: 'json',
                cache: false,
                url: "http://localhost/shakeponadmin/index.php/login/check",
                data: 'username=' + username + '&password=' + password,
                success:function(result){
                  console.log(result);
               },  
                failure:function (result) {  
                   alert('Failed');  
               }  
 
            });
            return false;
        });
       
});
 
复制代码


最后在firefox的firebug下面能显示出来

<html><head><title>欢迎进入 http://codeigniter.org.cn</title><head><body>你好,欢迎进入http://codeigniter.org.cn</body></html>

可是页面还是停留在原处,没有执行跳转。



               
发表于 2011-8-20 19:16:17 | 显示全部楼层
你用 JS 做跳转吗?
 楼主| 发表于 2011-8-20 19:21:47 | 显示全部楼层
用JS做跳转,我试过
JS复制代码
 
 $('#loginform').submit(function(){
                        var username = $("#username").val();
                        var password = $("#password").val();
         
                        $.ajax({
                                type: 'post',
                                dataType: 'json',
                                cache: false,
                                url: "http://localhost/shakeponadmin/index.php/login/check",
                                data: 'username=' + username + '&password=' + password,
                                success:function(result){
                      console.log(result);
                      location.href = "<?php echo site_url('blog')?>";
                   },  
                    failure:function (result) {  
                       alert('Failed');  
                   }  
 
                        });
                        return false;
                });
 
复制代码


可是FIREBUG里显示

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  Invalid argument supplied for foreach()</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 464</p>
 楼主| 发表于 2011-8-20 19:38:22 | 显示全部楼层
用JS做的话,老是出这个错误!

<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">

<h4>A PHP Error was encountered</h4>

<p>Severity: Warning</p>
<p>Message:  Invalid argument supplied for foreach()</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 464</p>


 楼主| 发表于 2011-8-20 20:12:28 | 显示全部楼层
没人能解答一下吗?
发表于 2011-8-21 00:22:52 | 显示全部楼层
admin_user_model的代码是啥?
发表于 2011-8-21 21:06:30 | 显示全部楼层
不会用IDE Debug 一下么?
发表于 2011-8-22 12:48:01 | 显示全部楼层
分步echo一下
发表于 2011-8-22 15:08:15 | 显示全部楼层
..............用var_dump();去调试一下

本版积分规则