2013-03-28 8 views
0

성공 메시지를 어떻게 표시하고 PHP에서 리디렉션합니까? header("Location: .php");을 시도했지만 성공 메시지가 표시되지 않습니다. header("Location: details1.php");을 제거하면 성공 메시지가 표시되지만 리디렉션되지 않습니다. 어떤 아이디어?성공 후 PHP 리디렉션

감사

+1

우리는 할 수 없습니다 문제의 코드를 보지 않고 도울 수 있습니다. 성공 페이지로 리디렉션하거나 새로 고침 시간을 가질 수 있습니다. 어떤 연구를하셨습니까? – UnholyRanger

+0

'Location' 헤더는 다른 위치에서 페이지를 찾을 수 있음을 브라우저에 알려줍니다. * Location 헤더가 표시되지 않기 때문에 성공 페이지 *를 * 표시하는 것은 의미가 없습니다. –

+0

헤더를 다루는 대신 자바 스크립트 사용을 고려해야합니다. – Wistar

답변

1

Page1.php

<html> 
<body> 
<div id="content"> 

<?php 

if($someCondition){ 
    header("Location: page2.php?message=someMessage"); 
    exit; // don't forget to exit 
} 

?> 

</div> 
</body> 

</html> 

Page2.php

<html> 
<body> 
<div id="content"> 

<?php 

if(isset($_GET['message']){ // NOTE: THE MESSAGE VAR CAN BE ANY NAME (NOT JUST MESSAGE). JUST MAKE SURE IT MATCHES THE NAME OF THE VARIABLE YOU SENT FROM PAGE1.PHP 
    $message = htmlspecialchars($_GET['message']); 
    echo 'the message sent from redirection was: ' . $message; 
} 

?> 

</div> 
</body> 

</html> 
+0

헤더 ("Location : yourpage.php? var = some message"); html 페이지로 이동 하시겠습니까? – user2216325

+0

@ user2216325 더 명확하게 대답을 업데이트하겠습니다. –

+1

이 코드는'xss' 주입 취약점이 있습니다 – Baba

0

당신은 2 초 후 리디렉션하는 메타 새로 고침 태그를 사용할 수 있습니다

<meta http-equiv="refresh" content="2;url=http://mysite.com/page.php"> 

성공 메시지를 다음 페이지로 전달하고 표시 할 수 있습니다. 이 스타일을 지정할 수 있습니다

+0

나는 그것을 시도했지만 사용자 이름이나 비밀번호가 입력되지 않아도 새로 고침을합니다. 사용자 이름과 비밀번호가 맞으면 리디렉션해야합니다. – user2216325

+0

이 줄은 헤더 리디렉션을 대체합니다. 여전히 유효성 검사 로직을 수행해야하며 성공을 표시 한 후에 에코 만 표시해야합니다. – sachleen

+0

어떻게해야합니까?죄송합니다, PHP에 익숙하지 않습니다. 따라서 사용자는 login.html에 로그인합니다. 로그인이 성공하면 login.php로 이동합니다. 로그인이 성공하면 다른 페이지로 리디렉션해야합니다. – user2216325

0

나는 물론이 PHP 함수

function redirects($URL,$msg,$secs){ 
    echo "<html>"; 
    echo "<head>"; 
    echo "<title> Cargando...</title>"; 
    echo "<meta http-equiv='refresh' content ='{$secs};url={$URL}'>"; 
    echo "</head>"; 
    echo "<body>"; 
    echo "<b>{$msg}...</b></br>"; 
    echo "another message and link to go to the site" 
    echo "</br>"; 
    echo "</body>"; 
    echo "</html>"; 
} 

를 사용합니다.

성공으로 리디렉션 때 세션을 사용하는 것을 선호
1

/오류 메시지 :

one.php

$_SESSION['error'] = 'You lost the Game!'; 

header('Location: two.php'); 

exit; 

two.php

if (isset($_SESSION['error'])) 
{ 

    echo $_SESSION['error']; 

    unset($_SESSION['error']); 

}