我想在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());
?>
按退出时,我没有回到index.php
。
答案 0 :(得分:31)
据我所知,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'"/>
注意
content="0;
中的0是秒的值。它告诉浏览器在开始重定向之前应该等待多少秒。
PHP:
<?php
header('Location: http://www.google.com');
注意在向浏览器输出任何内容之前,必须将<{3}} 始终放置;甚至是一个空的空间。否则,它将导致臭名昭着的“
header()
”错误。
答案 1 :(得分:16)
这应该有用,你在=
之前有额外的0
:
<meta http-equiv="refresh" content="0;URL=index.php" />
答案 2 :(得分:7)
答案 3 :(得分:3)
元刷新语法略有错误
<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位置
Location response-header字段用于将收件人重定向到Request-URI以外的位置,以完成请求或标识新资源。对于201(已创建)响应,Location是请求创建的新资源的位置。对于3xx响应,位置应该应该指示服务器自动重定向到资源的首选URI。字段值由单个绝对URI组成。
Location = "Location" ":" absoluteURI
一个例子是:
Location: http://www.w3.org/pub/WWW/People.html
答案 4 :(得分:0)
如果需要使用PHP变量include重定向网页,则可以执行以下操作:其中$user[0]
是PHP变量。这样,下一个网页user.php
就可以获取变量的值。
header('Location:./user.php?u_id='.$user[0]);
或
header("Location:./user.php?u_id=$user[0]");