2012-06-26 3 views
1

Я пытаюсь построить небольшой журнал с ajax. Я следовал за гидом, но он строит без классов и функций в php. Когда я пытаюсь восстановить все приложения, поместив его в классах и функциях, я получаю эту ошибку: Undefined index: is_ajaxНеопределенный индекс: is_ajax

и мой код:

<?php 
    class Login{ 
    public function LoggedIn(){ 
     $is_ajax = $_REQUEST['is_ajax']; 
     if(isset($is_ajax) && $is_ajax) 
     { 
     $username = $_REQUEST['username']; 
     $password = $_REQUEST['password']; 

     if($username == 'demo' && $password == 'demo') 
     { 
      echo "success"; 
     } 
     } 
    } 
    } 
?> 

вид:

public function DoLoginBox() { 
    $Login = new Login(); 
    //inloggning form-tagg... 
    return '<p>&nbsp;</p> 
     <div id="content"> 
      <h1>Login Form</h1> 
      <form id="form1" name="form1" action="'. $Login ->LoggedIn(). '" method="post"> 
      <p> 
       <label for="username">Username: </label> 
       <input type="text" name="username" id="username" /> 
      </p> 
      <p> 
       <label for="password">Password: </label> 
       <input type="password" name="password" id="password" /> 
      </p> 
      <p> 
       <input type="submit" id="login" name="login" /> 
      </p> 
      </form> 
      <div id="message"></div> 
     </div>'; 
} 
+0

паста HTML код также – Dgo

ответ

0

Вы должны использовать

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { 

вместо

if(isset($is_ajax) && $is_ajax) 
0

Изменить эту строку:

$is_ajax = $_REQUEST['is_ajax']; 

в:

$is_ajax = !empty($_REQUEST['is_ajax']); 

И вы можете удалить isset($is_ajax)

NB: Для этого на работу, javascript, который выполняет запрос AJAX ДОЛЖЕН добавить is_ajax=1 (или другое непустое значение) в запрос! Это не происходит из коробки.

+0

забрал эту проблему, но он не будет «эхо» сценарий, так что можно сказать, что это регистрируется в систему – Max

+0

у вас есть мой javacript i top of topic – Max

+0

@MaxTorstensson вы пробовали смотреть, что такое реальный контент '$ _REQUEST', когда запрос попадает на сервер? – poncha

0

Линия

$is_ajax = $_REQUEST['is_ajax']; 

Это получает выполняется каждый раз, когда функция LoggedIn() вызывается, если это AJAX или нет (я предполагаю, что вы добавляете is_ajax параметр из браузера).

Вместо использовать что-то вроде

if(isset($_REQUEST['is_ajax'])) 
0

Undefined индекс: XYZ средства, у вас есть массив, и вы запрашиваете его элемент по индексу, но этот показатель не существует.

пример:

$array = array("a"=>1,"c"=>3); 
echo($array["b"]); 

вы можете проверить наличие:

if(!isset($array["b"]))die("Missing XYZ!"); 
+0

все работает отлично, если я удаляю класс и функции и вызывает dologin.php напрямую (пение моего набора для входа) – Max

+0

Не правда. '$ array = Array (" a "=> null); var_dump (isset ($ array ["a"])); ' – poncha

+0

- это ответ, который не может быть эхом, который говорит об« успехе ». это все о ... – Max

0

Заголовок HTTP_X_REQUESTED_WITH не поддерживается всеми браузерами и серверами. Вы должны использовать специальный получить или запрос пост, как ?is_ajax=1

Смотрите связанную тему: Does $_SERVER['HTTP_X_REQUESTED_WITH'] exist in PHP or not?

Смежные вопросы