10

我想在 PHP 中自动重定向页面

注销.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.

4

5 回答 5

31

据我所知,,HTMLJavaScript提供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'"/> 

Note, 中的 0content="0;是秒的值。它告诉浏览器在开始重定向之前应该等待多少秒。

#PHP:

<?php

header('Location: http://www.google.com');

Noteheader()在向浏览器输出任何内容之前,必须始终放置一个 PHP ;甚至是一个空的空间。否则会导致臭名昭著的“ header already sent ”错误。

于 2012-12-25T14:46:24.653 回答
17

这应该工作,你有一个额外的=之前0

<meta http-equiv="refresh" content="0;URL=index.php" />

链接https://en.wikipedia.org/wiki/Meta_refresh

于 2012-12-25T14:42:10.830 回答
7

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

header('Location:index.php');

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

于 2012-12-25T14:42:59.207 回答
4

元刷新语法略有错误

<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

注销.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(已创建)响应,位置是请求创建的新资源的位置。对于 3xx 响应,位置应该指示服务器的首选 URI,用于自动重定向到资源。字段值由单个绝对 URI 组成。

   Location       = "Location" ":" absoluteURI

一个例子是:

   Location: http://www.w3.org/pub/WWW/People.html

来源:http ://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

于 2012-12-25T14:53:03.323 回答
1

如果您需要使用 PHP 变量重定向网页,您可以这样做:$user[0]PHP 变量在哪里。这样下一个网页user.php就可以得到变量的值了。

header('Location:./user.php?u_id='.$user[0]);

或者

header("Location:./user.php?u_id=$user[0]");
于 2019-11-27T16:44:32.957 回答