0

ajaxとphpでログインシステムを構築しようとしています。ログビューを使用して、データをajaxに保存し、doLogin.php(phpファイル)に取り込みます。私の問題は、phpファイルをクラスと関数にビルドするときのajaxデータであってはならないということです

見る:

public function DoLoginBox() {  
    //inloggning form-tagg...
    return '<p>&nbsp;</p>
        <div id="content">
          <h1>Login Form</h1>
          <form id="form1" name="form1" action="Handler/doLogin.php"  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>';
}

AJAX:

<script type="text/javascript">
 $(document).ready(function() {
$("#login").click(function() {
    var action = $("#form1").attr('action');
    var form_data = {
        username: $("#username").val(),
        password: $("#password").val(), 
        is_ajax: 1
    };
    $.ajax({
        type: "POST",
        url: action,
        data: form_data,
        success: function(response)
        {
            if(response == 'success')
                $("#form1").slideUp('slow', function() {
                    $("#message").html("<p class='success'>You have logged in successfully!</p>");
                });
            else
                $("#message").html("<p class='error'>Invalid username and/or password.</p>");   
        }
    });
    return false;
});
});
</script

PHP:

 <?php
 require_once ("UserHandler.php");
 class DoLogingHandler{

public function Login (){
    $is_ajax = !empty($_REQUEST['is_ajax']);

    if(isset($is_ajax) && $is_ajax)
    {
        $username = $_REQUEST['username'];
        $password = $_REQUEST['password'];
        $UserHandler = new UserHandler();
        $UserHandler -> controllDB($username,$password);

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

        }
    }
}

} `$ DoLogingHandler = new DoLogingHandler(); $ DoLogingHandler-> Login(); ?>


stack.phpにクラスと関数を追加すると、「サーバーへの接続エラー」が発生します(このコードをクラスと関数に追加して、他の関数を呼び出す必要があります。

<?php
class DologinHandler{  
public function Login(){ 
if(isset($_REQUEST['is_ajax']))
    {
        $username = $_REQUEST['username'];
        $password = $_REQUEST['password'];
        //$UserHandler = new UserHandler();
        //$UserHandler -> controllDB($username,$password);
        if($username == 'demo' && $password == 'demo')
        {
            exit('success');
        } else {
            exit('error');
        }
    }
}

}?>

4

1 に答える 1

0

これを使って

最初のファイルclasses.php

<?php
class loginHandler{
    public static function doLogin(){
        if(!isset($_POST['is_ajax']) || !isset($_POST['username'])  || !isset($_POST['password'])){
            return false;
        }
        if(isset($_REQUEST['is_ajax']))
        {
            $username = $_REQUEST['username'];
            $password = $_REQUEST['password'];
            //$UserHandler = new UserHandler();
            //$UserHandler -> controllDB($username,$password);
            if($username == 'demo' && $password == 'demo')
            {
                exit('success');
            } else {
                exit('error');
            }
        }
    }
}
?>

2番目のファイルindex.php

<?php
    require_once('classes.php');
    loginHandler::doLogin();//for static methods
    /*
        //or use this syntax for non static method
        $c = new loginHandler;
        $c->doLogin();
    */
?>
<html>
<head> <title>1</title>
<script type="text/javascript" src="jquery.js" ></script>  
</head>
<body>
<p>&nbsp;</p>
<div id="content">
  <h1>Login Form</h1>
  <form id="form1" name="form1" action="index.php"  method="post" onsubmit="return loginMe()">
    <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>
<script type="text/javascript">
    function loginMe(){
        var action = $("#form1").attr('action');
        var form_data = {
            username: $("#username").val(),
            password: $("#password").val(), 
            is_ajax: 1
        };
        $.ajax({
            type: 'POST',
            url: action,
            data: form_data,
            success: function(data){
                if(typeof(data) != 'undefined' && (data == 'success' || data == 'error')){
                    if($.trim(data) == 'success'){
                        $("#form1").slideUp('slow', function() {
                            $("#message").html("<p class='success'>You have logged in successfully!</p>");
                        });
                    } else if($.trim(data) == 'error'){
                        $("#form1").slideUp('slow', function() {
                            $("#message").html("<p class='error'>Invalid username and/or password.</p>");
                        });
                    }
                } else {
                    console.log(data);
                    $("#message").html("<p class='error'>Error to connect to server</p>");   
                }
            }
        });
        return false;
    }
</script>
</body>
</html>
于 2012-06-30T09:12:47.920 に答える