2012-06-30 4 views
0

나는 ajax와 php로 로그인 시스템을 만들려고한다. 그런 다음 로그보기를 사용하여 aJax의 데이터를 저장하여 doLogin.php (php 파일)에 저장합니다. 내 문제는 PHP 파일 내가 클래스와 함수로를 빌드 할 때에 대한 아약스 데이터 결코해야한다는 것입니다ajax 데이터를 PHP 파일로 가져 오기

보기 :

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'); 
     } 
    } 
} 

을 } ?>

답변

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'); 
      } 
     } 
    } 
} 
?> 

두 번째 파일 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> 
+0

메시지 박스 : 잘못된 사용자 이름 및/또는 암호 ... – Max

+0

@MaxTorstensson : 내가 코드를 테스트, 그것은 오류가되지 않습니다, 당신의 PHP를 확인 클래스를 만들고 PHP 코드가 HTML 코드의 최상위인지 확인하십시오. – Hamidreza

+0

@MaxTorstensson, 당신이 어떤 문제가 있다면, 나는 하나의 파일에 모든 코드를 넣고 여기 복사 할 수있다 – Hamidreza