cocoj 发表于 2011-8-20 18:21:33

CI难学啊,各种奇怪的问题。哎

我有一个登陆的判断,登陆成功之后做页面跳转,怎么样都没办法实现。



<?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();
    }
}




$(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>

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



chrome://livemargins/skin/monitor-background-horizontal.png        chrome://livemargins/skin/monitor-background-vertical.png        chrome://livemargins/skin/monitor-play-button.png

Hex 发表于 2011-8-20 19:16:17

你用 JS 做跳转吗?

cocoj 发表于 2011-8-20 19:21:47

用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>

cocoj 发表于 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>


cocoj 发表于 2011-8-20 20:12:28

没人能解答一下吗?

visvoy 发表于 2011-8-21 00:22:52

admin_user_model的代码是啥?

liyuken 发表于 2011-8-21 21:06:30

不会用IDE Debug 一下么?

韶聪 发表于 2011-8-22 12:48:01

分步echo一下

yeseason 发表于 2011-8-22 15:08:15

..............用var_dump();去调试一下
页: [1]
查看完整版本: CI难学啊,各种奇怪的问题。哎