2010-04-12 4 views
0

PHP가 작동하도록 로그 아웃 코드를 만드는 데 어려움이 있습니다. 로그 아웃 버튼을 클릭하면 홈 페이지로 돌아갈 것이지만 브라우저에서 뒤로 버튼을 클릭하면됩니다. 이전 페이지에 계속 액세스 할 수 있습니다. 사용자가 액세스하려면 로그온해야합니다. 그래서 사용자가 브라우저에서 뒤로 버튼을 클릭하면 로그인 페이지로 리디렉션됩니다. 어떻게 페이지를 PHP로 리디렉션합니까?

에는 사용자가 아직 기록되지 않습니다에.이 페이지는 사용자 페이지에서 로그 아웃 링크에 의해 호출되고 홈 페이지 (에, 내 코드입니다.

<? 
session_start(); 
session_destroy(); 
?> 
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="checklogin.php"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td colspan="3"><strong>Member Login </strong></td> 
</tr> 
<tr> 
<td width="78">Username</td> 
<td width="6">:</td> 
<td width="294"><input name="myusername" type="text" id="myusername"></td> 
</tr> 
<tr> 
<td>Password</td> 
<td>:</td> 
<td><input name="mypassword" type="text" id="mypassword"></td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
<td>&nbsp;</td> 
<td><input type="submit" name="Submit" value="Login"></td> 
</tr> 
</table> 
</td> 
</form> 
</tr> 
</table> 

답변

0

스크립트가 시작되기 전에 공백이 stunti가 제안한 "위치"방법을 위반합니다.

<? 
^^^ 

주의해서 제거하십시오.

2
<?php header('Location:'. $myurl);exit;?> 

이 작업을 수행해야

하지만 문제는 사용자가이 페이지에 적합한 자격 증명이 있는지 확인하는 것입니다. session_start() 후에 사용자가 해당 페이지에 있는지 확인해야합니다. 세션. 예를 들어 사용자 logg USER_ID가 존재하지 않습니다

<?php if (empty($_SESSION['user_id)) { header('Location: /');exit;} ?> 

그렇다면 : 당신이 로그인하는 사용자가 필요로하는 모든 페이지에 액세스 할 때

<?php $_SESSION['user_id'] = $userid; ?> 

: ING는 사용자를 식별하기 위해 세션에 뭔가를 넣어 세션에서 사용자는 로깅되지 않으므로 홈페이지로 리디렉션됩니다.

세션을 생성 한 후에는 세션을 파괴하지 마십시오. 세션을 파기하는 것은 사용자가 로그 아웃 할 때만 수행되어야합니다. 세션 시작이 항상 완료되어야합니다 (그렇게 쉬운 방법)

0

로그 아웃 페이지에서 홈 페이지로 리디렉션하기 전에 $ _SESSION [ 'user_id']을 설정 해제하십시오. 세션의 USER_ID가 설정되어있는 경우는 그냥 돌아 홈 페이지로 리디렉션 설정되어 있지 않은 경우

unset($_SESSIOM['user_id']); 

그런 다음 로그인 할 때 사용자가 필요로하는 모든 다른 페이지에 첫번째 단지 stunti 위의 코멘트

의 말처럼, 확인
관련 문제