2012-11-19 68 views
0

所以我試圖做一些Ajax登錄,我在腳本中有這個代碼。這是一個javascript,當一個表單被點擊提交時,它會向login_p.php提交變量 電子郵件,密碼和is_ajax。Ajax和PHP,未定義索引:is_ajax

<script> 
    $(document).ready(function() { 
     $('.login-button').click(function() { 
      var action = $('#login-form').attr('action'); 
      var form_data = { 
       email: $("#email").val(), 
       password: $("#password").val(), 
       is_ajax: 1 
      }; 

      $.ajax({ 
       type: "POST", 
       url: action, 
       data: form_data, 
       success: function(response) 
       { 
        if(response == 'success'){ 
         document.location="index.php?authi"; 
        } 
       } 
      }); 

      return false; 
     }); 
    }); 
</script> 

,這是login_p.php

<?php  
    session_start(); 
    $is_ajax = $_REQUEST['is_ajax']; 
    if(isset($is_ajax) && $is_ajax) 
    { 
     $email = $_REQUEST['email']; 
     $password = $_REQUEST['password']; 

     include('db.class.php'); 
     $db = new db(); 
     $query = $db->query("SELECT * FROM user WHERE email ='" . $email . "'"); 
     $rows = $db->countRows($query); 
     if($rows == 1) { 
      $results = $db->getRows($query); 
      foreach($results as $result) { 
       extract($result); 
       $_SESSION['email'] = $email; 
      } 
     } 
    } 
?> 

的信息,但我得到的錯誤是:

Undefined index: is_ajax 

,我不知道爲什麼。一切似乎都工作正常。如果有人能告訴我我錯在哪裏,我將不勝感激。

回答

1

Undefined index是一個PHP 通知,不是一個錯誤。您正在獲取它,因爲您正試圖訪問$_REQUEST['is_ajax'],但索引'is_ajax'未在$_REQUEST陣列中設置。

你可以改變你的error_reporting設置php.ini中排除E_NOTICE或者你可以改變你的代碼到更多的東西一樣:

if (isset($_REQUEST['is_ajax'])) { 
    $is_ajax = $_REQUEST['is_ajax']; 
    // ... 
} 


如果你認爲你是通過在 is_ajax參數,嘗試做 var_dump($_REQUEST)看看你真的得到了什麼。