首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP上声明多个头文件

如何在PHP上声明多个头文件
EN

Stack Overflow用户
提问于 2010-03-12 03:07:45
回答 7查看 37.3K关注 0票数 11

我想把我的用户发送到基于用户操作的不同页面。因此,我在页面顶部创建了多个函数,如下所示:

<?php

function one() {
     header("location: pagea.php");
}
function two() {
     header("location: pageb.php");
}
function three() {
     header("location: pagec.php");
}

?>

当然,我会收到一个错误,因为我正在声明头文件。起初,我认为这是可以的,因为我将它们包含在函数中,并且一次调用任何一个函数。但我还是得到了错误。有没有其他方法可以做到这一点?

EN

回答 7

Stack Overflow用户

发布于 2010-03-12 03:15:33

我认为您误解了header Location的作用。

Location标头指示客户端导航到另一个页面。每页不能发送多个Location标头。

此外,PHP在第一个输出之前发送头部。一旦输出,就不能再指定任何标头(除非使用输出缓冲)。

如果您指定相同的标头两次,默认情况下,header()将用最新的值替换先前的值...例如:

<?php
header('Location: a.php');
header('Location: b.php');
header('Location: c.php');

会将用户重定向到c.php,而不是一次通过a.phpb.php。您可以通过将false值传递给第二个参数(称为$replace)来覆盖此行为:

<?php
header('X-Powered-By: MyFrameWork', false);
header('X-Powered-By: MyFrameWork Plugin', false);

Location标头只能指定一次。发送多个Location标头不会将用户重定向到页面...这可能会把UA搞得一团糟。此外,请理解代码在发送Location标头后仍会继续执行。因此,在调用header()之后添加一个exit。下面是一个合适的重定向函数:

function redirect($page) {
    header('Location: ' . $page);
    exit;
}
票数 16
EN

Stack Overflow用户

发布于 2010-03-12 03:12:34

尝试如下所示:

<?php

$page = // use an if statement or whatever you need to figure out 
        //which page you need (pagea.php, etc.)

fnx($page)

function fnx($page) {
    header("location: " . $page);
}

?>

<?php

$page = // use an if statement or whatever you need to figure out 
        //which page you need (pagea.php, etc.)

header("location: " . $page);

?>
票数 3
EN

Stack Overflow用户

发布于 2010-03-12 03:11:45

要么它们并不都在函数中,要么调用了多个函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2427878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档