Как мне перенаправить страницу в php - PullRequest
0 голосов
/ 12 апреля 2010

У меня проблемы с созданием кода выхода для работы 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>

Ответы [ 3 ]

2 голосов
/ 12 апреля 2010
<?php header('Location:'. $myurl);exit;?>

Следует выполнить переадресацию, предполагая, что в браузер ничего не отправлено.

Но ваша проблема больше в том, чтобы проверить, есть ли у пользователя правильные учетные данные для этой страницы. После session_start () вы должны проверить, присутствует ли пользователь в сеансе. Например, когда пользователь входит в систему, поместите что-нибудь в сеанс, чтобы идентифицировать вашего пользователя:

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

Если вы хотите получить доступ к любой странице, для которой требуется регистрация пользователя:

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

поэтому, если user_id не присутствует в сеансе, ваш пользователь не зарегистрирован, поэтому перенаправьте его на домашнюю страницу.

Вы также не должны уничтожать сеанс после его создания. Уничтожение сеанса должно быть сделано только тогда, когда пользователь выйдет из системы. но начало сеанса должно выполняться постоянно (просто так проще)

0 голосов
/ 12 апреля 2010

Пробелы перед запуском скрипта нарушат метод "Location", предложенный stunti.

   <?
^^^

Будьте осторожны и удалите их.

0 голосов
/ 12 апреля 2010

На странице выхода просто удалите $ _SESSION ['user_id'], прежде чем вы сможете перенаправить его на домашнюю страницу.

unset($_SESSIOM['user_id']);

Затем на всех других страницах, которые требуют, чтобы пользователь сначала вошел в систему, просто проверьте, установлен ли user_id для сеанса, если он не установлен, просто перенаправьте их обратно на домашнюю страницу, точно так же, как stunti сказал в комментарии выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...