2011-09-06 2 views
0

그래서이 간단한 로그인 페이지가 있습니다 :양식 제출 버튼이 더블 클릭에서만 반응하는 이유는 무엇입니까?

다음 authenticate.php 파일은 다음과 같습니다 :

마지막으로 functions.php는이

처럼 보입니다
include("../connection.php"); 


$sql = "SELECT user, pass FROM users"; 
$back = "There is an error. <a href=\"login.php\">Back</a>"; 
$result = $conn->query($sql) or die($back); 

while($row = $result->fetch_object()){ 

//validates user input 

function valid_details($username, $password){ 
if(isset($username) && $username == $row->user){ 
    if(isset($password) && $password == $row->pass){ 
    return true;} 
    } 


    }; 
} 

데이터베이스에 제공된 올바른 사용자 이름과 암호를 입력하면 URL에 오류 = 1 변수가 생깁니다. 올바른 자격 증명을 기대하지 않습니다. 그러나 신속하게 제출 단추를 두 번 클릭하면 예상되는 페이지에서 메시지를 반환합니다 = url에 1, valid_credentials 작동하는 함수를 의미하는 있도록하지만, 왜 그 단추를 반응합니까? EDIT storage_update.php (방문 페이지)에서 fancybox jquery 플러그인을 구현했습니다.

+0

첫 번째 클릭이 정보를 제대로 보내지 않는 클라이언트 측 오류와 비슷합니다. 전체 양식을 게시 할 수 있습니까? 양식 태그가 누락되었습니다. 자바 스크립트 코드가 있다면 문제가 될 가능성이 있습니다. – Yamiko

+0

이 있으면이 글을 게시하십시오. 코드 조각을 추가하면됩니다. 예 js, jquery를 정확하게 사용하고 있지만 마지막 방문 페이지에서만 양식이 validate_details() 함수에 의한 입력 확인시 사용자를 최종 페이지로 리디렉션하는 입력을 다른 페이지로 보냅니다. – menislici

+0

위치 헤더에서 ../를 사용하여 이상 함을 얻을 수 있습니다. 올바른 위치 헤더는 정규화 된 URL (http 및 호스트 이름 포함)이어야합니다. 그게 문제의 원인인지는 모르지만 그것이 될 수도 있고 고칠 수도 있습니다. – Cfreak

답변

1

코드의 구조는 정말 이상합니다. 만약 내가 그 방법을 대부분 수정한다면, 어쨌든, 그것을 제쳐 놓으면됩니다. 현재 while 루프 내에 함수가 있습니다. 왜 처음에 루프를 돌리는 것이 이상합니다. 찾고있는 사용자에 대해 데이터베이스에서 직접 체크를 할 수 있습니다. 아래를 참조하십시오.

include("../connection.php"); 

function valid_details($username, $password){ 
    $sql = "SELECT user, pass FROM users"; 
    $sql .= "WHERE user='".$username."' AND pass='".$password."'"; 
    $back = "There is an error. <a href=\"login.php\">Back</a>"; 
    $result = $conn->query($sql) or die($back); 

    return count($result) > 0    
} 
+0

글쎄, 내가 전문인이 아니기 때문에 코딩 방법을 염두에 두겠다. 나는 학교에도 가지 않는다. 그냥 취미로 장난 꾸러기. 어쨌든 고마워. 나는 나중에 당신의 대답을 시도 할 것입니다. 추신 : 예, 내가 찾고있는 사용자를 선택하려고했지만 이런 식으로 스 니펫을 사용합니다. $ sql = "SELECT 사용자, 사용자로부터 사용자 = $ user && pass = $ pass"; 정말로 기괴한 나는 알고있다. – menislici