2014-05-21 1 views
-2

jquery를 사용하여 백엔드 웹 페이지에 로그인했습니다.Firefox에서 로그인 기능이 작동하지 않지만 크롬, IE, 사파리 및 오페라에서 작동합니다.

여기
<form method="post" action="#" autocomplete='off'> 

    <h1 class="white-text">ADMIN Log in</h1> 
    <div class="row"><div id="errMsg"></div></div> 
    <div class="row"> 
     <div class="large-12"><input type="text" placeholder="User ID" name="txtUsername" id="txtUsername"></div> 
    </div> 
    <div class="row"> 
     <div class="large-12"><input type="password" placeholder="Password" name="txtPassword" id="txtPassword"></div> 
    </div> 
    <div class="row"> 
     <div class="large-12 columns"> 
      <p><a href="#" data-reveal-id="myModal">Need Help Signing in?</a></p> 
     </div> 
    </div> 
    <div class="large-12 columns "> 
     <input type="submit" value="Sign In" class="button right" onclick="validLogin()"> 
    </div>     
</form> 

가 로그인 처리하는 jQuery를 다음과 같습니다 :

function validLogin(){ 

     var username=$('#txtUsername').val(); 
     var password=$('#txtPassword').val(); 

     var dataString = 'username='+ username + '&password='+ password; 

     $("#errMsg").hide(); 
     $.ajax({ 
     type: "POST", 
     url: "processed.php", 
     data: dataString, 
     cache: false, 
     success: function(result){ 
       var result=trim(result); 
       if(result=='admin'){ 
        window.location='admin.php'; 
       }else if(result=='Invalid ID or password!') { 
        $("#errMsg").show(100);       
        $("#errMsg").html("LOGIN FAILED!: " + result);       
       }else{ 
         $("#errMsg").fadeIn(100);        
         $("#errMsg").html(result);        
       } 
     } 
     }); 
} 

을 여기 JQuery와의 URL에서 PHP 파일입니다

<?php 
session_start(); 
include('include/connection.php'); 

$message=array(); 
if(isset($_POST['username']) && !empty($_POST['username'])){ 
    $username=$_POST['username']; 
}else{ 
    $message[]='<i class="foundicon-error"></i> username'; 

} 

if(isset($_POST['password']) && !empty($_POST['password'])){ 
    $password=stripslashes($_POST['password']); 
}else{ 
    $message[]='<i class="foundicon-error"></i> password'; 

} 

$countError=count($message); 

if($countError > 0){ 
    echo "Please enter your "; 
    for($i=0;$i<$countError;$i++){ 
       if ($i > 0){ 
        $con=" and "; 
       }else { 
        $con=""; 
       } 
       echo $con.$message[$i]; 
    } 

}else{ 
    $query="select * from admin_users where username='$username' and password='$password'"; 
    $res = mysqli_query($connect,$query); 
    while($row = mysqli_fetch_assoc($res)) 
     { 
      $userlvl = $row['user_level']; 
     } 
    $checkUser=mysqli_num_rows($res); 
    if($checkUser > 0){ 
     $_SESSION['LOGIN_STATUS']=true; 

     $_SESSION['uname']=$username; 
     if ($userlvl == 1) { 
      echo 'admin'; 
     } 
     else { 
      echo 'techadmin'; 
     } 

    }else{ 
     echo "Invalid ID or password!"; 
    } 

} 
?> 
여기

양식입니다

나는이 코드가 파이어 폭스에서 작동하지 않는 이유를 모르지만 Chrome, IE, 오페라 및 사파리에서 완벽하게 작동합니다.

이가 ... 그냥 로그인 페이지에 남아 이동하고자하는 페이지로 이동하지 않습니다 ... 전혀 ... 또한, 콘솔에 오류 로그가 없거나 오류 반환

+1

그리고에게'이 work'하지 않는 것을 의미합니다 (그 작업을 볼 수 jsbin 콘솔을 열고) 파이어 폭스와 크롬에서 작동, here 테스트 ??? 콘솔에 오류가 있습니까 ??? ??? –

+0

@ A.Wolff 의도 한 페이지로 이동하지 않습니다 ... 로그인 페이지에만 머물러 있습니다 ... 오류가 반환되지 않거나 무엇이든지 ...또한 콘솔에 에러 로그가 없다. –

+0

이벤트에 관한 에러 로그가 있어야한다. –

답변

5
function validLogin(){ 
    event.preventDefault(); 
^

이벤트가 정의되지 않았기 때문에 자바 스크립트가 중단됩니다.

또한 개발자 콘솔, F12 키를 확인하거나 파이어 폭스 플러그인 방화 광을 설치하고 말씀 콘솔을 참조하십시오.

편집

당신은 jQuery를가 활성화되어 있는지 확인 있습니까? 전체 시나리오에서이 사례에 대해 jsfiddle을 게시 할 수 있습니까?

확인 콘솔 자바 스크립트 오류를 ​​확인하기 위해, 어쩌면 당신이 어딘가에 오류를 분석 한 개발자 콘솔 도움이됩니다.

EDIT2

변경 양식

<form method="post" onsubmit="return validLogin();" action="#" autocomplete='off'> 
    ..... 
    <div class="large-12 columns "> 
     <input type="submit" value="Sign In" class="button right"> 
    </div> 
</form> 

및 JS에 :

function validLogin(){ 

     var username=$('#tx.... 
     ..... 
     ..... 

     return false; // at the end 
} 

jsfiddle : http://jsfiddle.net/9kcx9/

+0

나는 그것을 밖으로 주석을 시도하고 아무 일도 없었어요 –

+0

@ChristianBurgos, 편집 확인하십시오. jsfiddle를 게시하고 개발자 콘솔로 디버그하십시오. –

+0

네, 그 모든 포함, 코드는 파이어 폭스를 제외한 모든 브라우저에서 작동합니다. firebug의 콘솔에는 오류가 없습니다. –

1

이이 문제를 해결해야한다 .

<form method="post" action="#" autocomplete="off" id="myform"> 

    <h1 class="white-text">ADMIN Log in</h1> 
    <div class="row"><div id="errMsg"></div></div> 
    <div class="row"> 
     <div class="large-12"><input type="text" placeholder="User ID" name="txtUsername" id="txtUsername"></div> 
    </div> 
    <div class="row"> 
     <div class="large-12"><input type="password" placeholder="Password" name="txtPassword" id="txtPassword"></div> 
    </div> 
    <div class="row"> 
     <div class="large-12 columns"> 
      <p><a href="#" data-reveal-id="myModal">Need Help Signing in?</a></p> 
     </div> 
    </div> 
    <div class="large-12 columns "> 
     <input type="submit" value="Sign In" class="button right"> 
    </div>     
</form> 

validLogin가하는 이벤트를 통과해야 함은 기본 작업을 제출 방지하기 위해 (끝) evt.preventDefault()return false;를 사용하여 매개 변수로 evt를 사용 잡을 것 : 우선 form에게 ID를 제공합니다. 양식 요소를 가져오고 onsubmit=validLogin을 설정하십시오.

function validLogin(evt){ 
     evt.preventDefault(); 
     var username=$('#txtUsername').val(); 
     var password=$('#txtPassword').val(); 

     var dataString = 'username='+ username + '&password='+ password; 

     $("#errMsg").hide(); 
     $.ajax({ 
     type: "POST", 
     url: "processed.php", 
     data: dataString, 
     cache: false, 
     success: function(result){ 
       var result=trim(result); 
       if(result=='admin'){ 
        window.location='admin.php'; 
       }else if(result=='Invalid ID or password!') { 
        $("#errMsg").show(100);       
        $("#errMsg").html("LOGIN FAILED!: " + result);       
       }else{ 
         $("#errMsg").fadeIn(100);        
         $("#errMsg").html(result);        
       } 
     } 
     }); 
     return false; 
} 
document.getElementById("myform").onsubmit = validLogin; 

+0

여전히 작동하지 않습니다. 이 코드는 모든 브라우저에서 작동하지 않습니다. –

+0

@ChristianBurgos가 내 대답을 편집하고 jsbin을 추가했습니다. – bbuecherl

+0

PHP 파일을 포함하지 않았기 때문에 작동하지 않습니다 ... PHP 파일이 결과를 반환합니다 .. –

관련 문제