2014-12-13 4 views
0

간단한 확인 파일에 문제가 있습니다. 로그인 성공 후 색인 페이지로 리디렉션되지 않습니다.로그인 성공 후 PHP 리디렉션

기본적으로 login.php 파일에는 로그인 용 html 형식이 있습니다.이 양식은 이미 로그인 데이터가있는 auth.php 파일을 호출하고 로그인과 비밀번호가 맞는지 여부를 결정합니다. 이제 성공적으로 로그인 한 후 index.php로 리다이렉트해야하지만, login.php 파일의 폼을 정리하고 계속 시도하지만 (성공적으로 로그인 한 후) 페이지를 새로 고침하면 자동으로 리디렉션됩니다. 색인 페이지로.

고정!은 코드를 그보다 더 단순하게 변경했습니다.

답변

0
if($logindata[$_POST["username"]]==$_POST["password"]) 

이 비트가 올바르게 표시되지 않습니다.

if($logindata[$_POST["password"]]==$_POST["password"]) 
+0

암호가 username 배열과 같은 위치에 있으면 배열을 검사하지 않습니다. – EvilNabster

-1

때로는 헤더는 몇 가지 이유로 잘 작동하는 대신 간단한 HTML은 다음과 같이 재로 사용하지 않습니다 : 어쩌면 당신이 찾고 있던 내가 리디렉션 위치를 추정

<?php 
$usernames = array("user1", "user2"); 
$passwords = array("pass1", "pass2"); 
$page = "index.php"; 
for($i=0;$i<count($usernames);$i++){ 
    $logindata[$usernames[$i]]=$passwords[$i]; 
} 
    $found = 0; 
    for($i=0;$i<count($usernames);$i++) {  
     if ($usernames[$i] == $_POST["username"]) {  
     $found = 1;  
     } 
     } 
     if ($found == 0) { 

      $redirect_url = "./login.php?login_error=1" 

     } 

if($logindata[$_POST["username"]]==$_POST["password"]) {   
    session_start();  
    $_SESSION["username"]=$_POST["username"]; 

$redirect_url = "./index.php" 

    } 
    else {  
     $redirect_url = "./login.php?login_error=2" 

    } 

    echo "<center><br><br><br><p>You will be redirected in about 2 seconds. If not, click this link: <a href='$redirect_url'>Back</a></p></center>"; 

    ?> 
    <html> 
      <head> 
      <meta http-equiv="refresh" content="2;url='<?php echo "$redirect_url"; ?>'/> 

     <title>Redirecting...</title> 
      </head> 
      </html> 

<?php 

exit; 

?> 

는 동일한에 PHP 파일의 폴더. var $ redirect_url 경로를 조정하십시오.

+0

확인이 완전히 깨졌습니다. – EvilNabster

+0

헤더 위치가 항상 훌륭하게 작동합니다. 머리말을 바꾸려고 시도하기 전에 출력이 있기 때문에 헤더 위치가 99.9 % 작동하지 않는 경우. 좋은 연습을 위해서 항상'header ('Location : http://www.example.com');과'exit; – DarkBee

관련 문제