2014-06-15 3 views
0

이것은 내 PHP 파일의 맨입니다. 여기서 성취하려고하는 것은 로그인 시도 실패 후이 페이지에서 사용자가 끝나면 - 메시지가 자바 스크립트로 표시되어야합니다. 로그인 시도에 실패한 다음 다시 이전 페이지로 리디렉션합니다.자바 스크립트가 실행되고 있지 않습니다.

왜 이런 일이 일어나고 메시지 상자가 표시되도록 해결할 수 있습니까? 또는 이전 페이지에서 - 로그인 시도가 실패한 경우 리디렉션을 중지하려면 어떻게합니까?

감사

<?php 

include("Application.php"); 
include("Member.php"); 
include("ContactDetails.php"); 
include("LoginDetails.php"); 

if (session_status() == PHP_SESSION_NONE) { 
    session_start(); 
} 

$value = null; 
if(isset($_SESSION['url'])) { 
    $value = $_SESSION['url']; 
    $_SESSION['url'] = $_SERVER['REQUEST_URI']; 
} 

if(isset($_POST['submit'])){ 
    $username=$_POST["username"]; 
    $password=$_POST["password"]; 
    $loginDetails = logUserIn($username, $password); 
    if($loginDetails != null && $loginDetails->getUserid() > 0){ 
     $contactDetails = getContactDetails($loginDetails->getUserid()); 
     $member = new Member($contactDetails, $loginDetails); 
     //an array of applications belong to a paticular user 
     $applications = getApplicationsForMember($member); 
     printUserApplicationSelectionForm($applications); 
    }else{ 
     //login attempt failed - tell the user and redirect 
     if($value != null){ 
      $path = "http://localhost" . "$value"; 
      header("Location: $path"); 
      echo '<script type="text/javascript">alert("Login Attempt Failed!");</script>'; 
     } 
    } 
} 
+0

메시지를 리디렉션하고 표시하기 때문에 이런 현상이 발생합니다. 'header'없이 js redirect를 사용하십시오. '' – CnapoB

+0

첫 번째 단락은 달성하려는 것을 설명하고 다음 단락은 _ "왜 이런 일이 발생합니까?"라고 묻습니다. 문제를 언급하지 않은 것 같습니다. 무슨 일이 일어나고 있는지 더 분명히 말하십시오. – Sparky

+0

또한 js'confirm'을 사용하여 버튼을 클릭하여 리디렉션 할 수 있습니다. – CnapoB

답변

0

당신은 반향 전에 위치를 변경, 그래서 경고 스크립트는 에코되지 않습니다 :

 header("Location: $path"); 
     echo '<script type="text/javascript">alert("Login Attempt Failed!"); 

스위치를 그 주위가 작동합니다.

0

위치 헤더를 보내면 브라우저는 현재 페이지에서 더 이상 응답 (스크립트)을로드하지 않지만 직접 새 위치로 변경합니다. Location 헤더를 보내기 전에 &message=failedlogin과 같은 것을 경로에 추가 한 다음 이전 페이지에 메시지를 표시하십시오. 세션에 저장할 수도 있습니다 :
$_SESSION['loginsuccess']=false; 그리고 이전 PHP 페이지에서이 값을 확인하십시오.

관련 문제