Я хочу перенаправить страницу автоматически в PHP
Logout.php:
<?php include "base.php"; $_SESSION = array(); session_destroy(); ?> <meta http-equiv="refresh" content="=0;URL=index.php" />
Где base.php вызывает базу данных и запускает сеанс:
<?php session_start(); $dbhost = "localhost"; $dbname = "login"; $dbuser = "root"; $dbpass = ""; mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error()); mysql_select_db($dbname) or die("MySQL Error: " . mysql_error()); ?>
При нажатии logout я не вернусь к index.php
.
Это должно работать, у вас был дополнительный =
до 0
:
<meta http-equiv="refresh" content="0;URL=index.php" />
Насколько я знаю, HTML
, JavaScript
и PHP
предоставляют свой собственный способ перенаправления страницы / заголовка. Вот три примера, показывающие, как перенаправить на http://google.com
JavaScript:
<script type="text/javascript"> window.location = "http://google.com"; </script>
HTML:
<meta http-equiv="refresh" content="0; URL='http://google.com'"/>
Примечание . 0 в
content="0;
– это значение в секундах. Он сообщает браузеру, сколько секунд он должен ждать до начала перенаправления.
PHP:
<?php header('Location: http://www.google.com');
Примечание .
header()
PHPheader()
должен быть всегда помещен перед выводом чего-либо в браузер; даже одно пустое пространство. В противном случае это приведет к позорным ошибкам, уже отправленным « заголовком ».
вы можете поместить это в свой PHP-код:
header('Location:index.php');
Обратите внимание, что как и во всех заголовках , это должно быть помещено перед любым выходом (даже с пробелами).
Синтаксис мета-обновления немного ошибочен
<meta http-equiv="refresh" content="0;URL='<?php echo $_SERVER['HTTP_HOST']; ?>/index.php'">
Подробнее здесь http://en.wikipedia.org/wiki/Meta_refresh
Более чистый способ – отправить заголовок перенаправления http
Подробнее здесь http://en.wikipedia.org/wiki/HTTP_301
logout.php
<?php .. session_destroy(); header( 'HTTP/1.1 301 Moved Permanently'); header( 'Location: ' . $_SERVER['HTTP_HOST'] . '/index.php' ); exit(0);
Что касается абсолютных URI в перенаправлении W3C
14.30 Местонахождение
Поле заголовка ответа местоположения используется для перенаправления получателя в другое место, кроме Request-URI, для завершения запроса или идентификации нового ресурса. Для ответов 201 (Создано) это местоположение нового ресурса, созданного запросом. Для ответов 3xx местоположение ДОЛЖНО указывать предпочтительный URI сервера для автоматического перенаправления на ресурс. Значение поля состоит из одного абсолютного URI.
Location = "Location" ":" absoluteURI
Пример:
Location: http://www.w3.org/pub/WWW/People.html
Источник: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html