如何在使用include()后使用header()重定向?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我有一个像下面这样的页面,我有问题让重定向工作。该页面从URL中获取ID并在查询中使用它。如果没有匹配,只是重定向到另一个页面。

如果查询结果为空,是否有其他方法可以执行重定向?

include('somepage.php');

$id = $_GET['id'];
$query = mysql_query("My query is here");

if(mysql_num_rows($query)==0) { header('Location:htp://example.com'); }

somepage.php:

<html>
<head>
(standard html)
include('sql-connect.php');
</head>

<body>
(code to format the header portion of the site)
提问于
用户回答回答于
<?php
ob_start();
include 'somepage.php';

$id = $_GET['id'];
$query = mysql_query("My query is here");

if(mysql_num_rows($query)==0) { header('Location:htp://example.com'); }

你可以回声HTML重定向:

<?php
if(mysql_num_rows($query)==0) { echo '<meta http-equiv="refresh" content="0; url=http://example.com/">'; die(); }
用户回答回答于

你需要ob_start()在文件的开头添加,如果这仍然不起作用,那么你还需要添加ob_flush();以完全清除旧的标题。

    flush(); // Flush the buffer
    ob_flush();
    header("Location: http://example.com");

扫码关注云+社区

领取腾讯云代金券