在PHP中自动重定向页面

时间:2012-12-25 14:40:28

标签: php html http

我想在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

5 个答案:

答案 0 :(得分:31)

据我所知,HTMLJavaScriptPHP提供了自己的页面/标头重定向方式。以下是三个示例,说明如何重定向到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" />

Linky https://en.wikipedia.org/wiki/Meta_refresh

答案 2 :(得分:7)

你可以把它放在你的PHP代码上:

header('Location:index.php');

请注意,根据所有headers,这必须放在任何输出(甚至是空格)之前。

答案 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

来源:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.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]");