2012-03-14 3 views
0

안녕하세요, 로그인 시스템 용 코드 작성을 시도하고 있습니다. 이번이 처음이자 온라인 튜토리얼을 사용했습니다. 초기 Javascript는 정상적으로 작동하며 입력을 비워두면 오류가 표시됩니다. 그러나 입력에 텍스트를 입력하고 로그인 할 때 아무런 반응이 없습니다. 그것이 PHP 파일을 호출하지 않는 것 같아요하지만 난 그것이 올바르게 참조로 wouldnt 왜 어떤 이유를 볼 수 없습니까? 어떤 도움이라도 대단히 감사하겠습니다!로그인 jquery가 php 파일을 올바르게 호출하지 않습니다.

<?php 
    include ("Includes/dbConnect.php"); 
    $u=$_POST['u']; 
    $p=$_POST['p']; 

    //Strip slashes 
    $u = stripslashes($u); 
    $p = stripslashes($p); 

    //Strip tags 
    $u = strip_tags($u); 
    $p = strip_tags($p); 


    $check = mysqli_query("SELECT * FROM Login WHERE login_user ='$u' AND login_pass='$p'")  or die(mysqli_error()); 
    $check = mysqli_num_rows($check); 
    if($check !=="0"){ 
    $results = mysqli_query("SELECT * FROM Login WHERE login_user = '$u'") or die(mysqli_error()); 
     while ($row = mysqli_fetch_assoc($results)) { 
      $login_user=$row['login_user']; 
      session_register('login_user'); 
      $_SESSION['login_user'] = $Login_user; 
      echo "1"; 
    } 
    } 
?> 

여기가

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".sign_b_btn").live("click", function() { 
      var u = $("#u").val(); 
      var p = $("#p").val(); 

      if (u == "") { 
       $("#u").css("border-color", "red"); 
       $("#un").css("color", "red"); 
       $(".error").show().html("Please enter your username!"); 
       $("#p").css("border-color", "#606060"); 
       $("#up").css("color", "#333333"); 
      } else if (p == "") { 
       $("#u").css("border-color", "#606060"); 
       $("#un").css("color", "#606060"); 
       $(".error").show().html("Please enter your Password!"); 
       $("#p").css("border-color", "red"); 
       $("#up").css("color", "red"); 
      } else { 

       dataString = 'u=' + u + '&p=' + p; 
       $.ajax({ 
        type: "POST", 
        url: "Ajax/login_php.php", 
        data: dataString, 
        cache: false, 
        success: function (html) { 
         if (html == "") { 
          $(".error").show().html("The username or password you entered is incorrect!"); 
          $("#p,#u").css("border-color", "red"); 
          $("#up,#un").css("color", "red"); 
         } else if (html == "1") { 
          $(".error").fadeOut(1000); 
          $("#u").css("border-color", "#606060"); 
          $("#un").css("color", "#333333"); 
          $("#p").css("border-color", "#606060"); 
          $("#up").css("color", "#333333"); 
          $(".center").animate({ 
           opacity: 0.25, 
           left: '+=900', 
           height: 'toggle' 
          }, 5000, function() { 
           $(".done").slideDown(200).html("Welcome " + u); 
           setTimeout(function() { 
            var u = $("#u").val(""); 
            var p = $("#p").val(""); 
            window.location = "index.php"; 
           }, 5000); 
          }); 
         } 
        } 
       }); 
      } 
     }); 
    }); 
</script> 
+0

오류가 있는지 콘솔을 보았습니까? 또는 브라우저 도구에서 네트워크 활동을 점검하여 HTTP 요청이 작성되고 있는지, 리턴되는 내용을 확인하십시오. 오류 콜백이 없으므로 오류가 있으면 아무 일도 일어나지 않습니다. –

+0

여기서 명백한 문제는 볼 수 없지만 사이트에서 어떤 일이 일어나고 있는지 알면 유용 할 것입니다. Ajax 호출이 발생할 때 서버로부터 404 또는 500 응답을 얻습니까? 모든 JS 오류? (Chrome의 네트워크 및 콘솔 탭을 통해이를 볼 수 있어야합니다.) 작동한다면 서버가 무엇을 반환합니까? ** 편집 ** : 죄송합니다, 제이슨 - 너무 천천히 쓰기 ... – meloncholy

+0

http://www.php-login-script.com으로 이동하여 스크립트 (무료)를 다운로드하십시오. 또한 js를 사용하여 유효성을 검사합니다. ** 체크 ** 할 수 있습니다. –

답변

0

응답 세션 문제에 대한 자바 스크립트입니다 :

편집 PHP 코드가 있도록 스크립트으로 session_start에 대한 호출로 시작합니다에게();

예 :

<?php session_start(); 
//rest of your php code 

대체 라인 :

session_register('login_user'); 
$_SESSION['login_user'] = $Login_user; 

과 :

$_SESSION['login_user'] = $Login_user; 

당신은)는 함수가 session_register 때문에 언급 한 오류가 (지고 있었다; PHP 버전 5.3.0에서 더 이상 사용되지 않으며 PHP 버전 5.4.0에서 제거되었습니다. $ _SESSION은 session_start() 이후에 사용할 수있는 전역 배열입니다. 요구.

행복한 프로그래밍 : 도움말들에 대한

0

덕분에, 정말 내가 그것을 알아낼 수있었습니다. 아무도 관심이 있다면 완성 된 코드 :

<?php 

include ("../Includes/dbConnect.php"); 
$u=$_POST['u']; 
$p=$_POST['p']; 

//Strip slashes 
$u = stripslashes($u); 
$p = stripslashes($p); 

//Strip tags 
$u = strip_tags($u); 
$p = strip_tags($p); 



$query = "SELECT * FROM Login WHERE login_user ='$u' AND login_pass='$p'"; 
$check = mysqli_query($cxn,$query) or die("Couldn't execute query!"); 
$check = mysqli_num_rows($check); 
if($check !=="0"){ 
$results = mysqli_query($cxn,"SELECT * FROM Login WHERE login_user = '$u' AND login_pass='$p'") or die("Couldn't execute query2!"); 
    while ($row = mysqli_fetch_assoc($results)) { 
     $username= $u; 
     session_register('Login'); 
     $_SESSION['user'] = $username; 
     echo "1"; 
} 
} 


?> 
+0

'$ u'와'$ p' 변수를 쿼리에 삽입하기 전에 이스케이프시켜야합니다. 그 이유는 SQL 인젝션을 통해 누군가 다른 계정에 액세스 할 수 있기 때문입니다. 사용자'admin'과 패스워드''or ''= ''를 보내면 SQL 쿼리는 SELECT * FROM Login WHERE login_user ='admin 'AND login_pass =' ​​'또는' '=' ''이 될 것입니다. 당신은'admin'이라는 이름의 사용자가 있다고 가정하고, 암호를 모른 채이 계정에 접근 할 수 있습니다. – Maxime

관련 문제