未定义的索引:is_ajax

时间:2012-06-26 12:58:42

标签: php javascript jquery ajax

我尝试使用ajax构建一个小日志。我按照指南,但他在PHP中没有类和函数构建。当我尝试通过将它放在类和函数中来重建整个应用程序时,我收到此错误:Undefined index: 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>';
} 

5 个答案:

答案 0 :(得分:0)

你应该使用

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

而不是

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

答案 1 :(得分:0)

更改此行:

$is_ajax = $_REQUEST['is_ajax'];

成:

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

您可以删除isset($is_ajax)

NB :为此,执行AJAX请求的javascript必须在请求中添加is_ajax=1(或其他一些非空值)!这不是开箱即用的。

答案 2 :(得分:0)

该行

$is_ajax = $_REQUEST['is_ajax'];

每次调用LoggedIn()函数时都会执行此操作,如果它是AJAX(我猜你是从浏览器添加参数is_ajax)。

而是使用像

这样的东西
if(isset($_REQUEST['is_ajax']))

答案 3 :(得分:0)

未定义索引:XYZ表示, 你有一个数组,你通过索引请求它的项目,但该索引不存在。

示例:

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

你可以检查存在:

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

答案 4 :(得分:0)

所有浏览器和服务器都不支持HTTP_X_REQUESTED_WITH标头。您应该使用专门的get或post请求,例如?is_ajax=1

参见相关主题:Does $_SERVER['HTTP_X_REQUESTED_WITH'] exist in PHP or not?