1

我尝试用 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>';
} 
4

5 回答 5

0

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

请参阅相关线程:PHP 中是否存在 $_SERVER['HTTP_X_REQUESTED_WITH'] ?

于 2012-06-26T13:24:24.837 回答
0

你应该使用

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

代替

if(isset($is_ajax) && $is_ajax)
于 2012-06-26T13:02:58.933 回答
0

更改此行:

$is_ajax = $_REQUEST['is_ajax'];

进入:

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

你可以删除isset($is_ajax)

注意:为此javascript,执行 AJAX 请求的 必须将is_ajax=1(或其他一些非空值)添加到请求中!开箱即用不会发生这种情况。

于 2012-06-26T13:03:08.570 回答
0

线

$is_ajax = $_REQUEST['is_ajax'];

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

而是使用类似的东西

if(isset($_REQUEST['is_ajax']))
于 2012-06-26T13:03:55.870 回答
0

未定义索引:XYZ 表示,您有一个数组,并且您按索引请求它的项,但该索引不存在。

例子:

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

您可以检查是否存在:

if(!isset($array["b"]))die("Missing XYZ!");
于 2012-06-26T13:09:50.803 回答