【问题标题】:PHP Header call for internal page redirectPHP Header 调用内部页面重定向
【发布时间】:2015-09-03 15:51:37
【问题描述】:

我有一个联系表格,验证完成后,我希望它重定向到另一个 messageSent.php 文件。我认为使用 include 会起作用,但这只会添加有关联系人页面的整个页面。

我读到使用 header() 函数来重定向页面。但所有示例都显示使用实时站点 url 位置。我的文件都是内部的,我正在本地测试。

如何正确调用 header() 函数以重定向到我的根文件夹中的页面?

PHP:

if(!empty($_POST)){
$POST = filter_post($_POST);
$invoice = array_splice($POST,3,1);
$MSG = check_empty($POST);
$email = test_input($_POST["email"]);

if(!array_filter($MSG)){
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    $MSG[] = "Invalid Email Format (test@provider.com)";
    }
    else{
        $POST['invoice'] = $invoice['invoice'];
        if(send_mail($POST)){
            include '/Users/orobosaenagbare/Dropbox/Websites/Se7en Service/messageSent.php';
        }
        else{
            $MSG[] = "Email Failed";
        }
    }
}
}

【问题讨论】:

  • 你用header('Location: path');发送的路径可以是相对的:header('Location: messageSent.php');
  • 完美运行。谢谢!
  • 但是一旦我把它全部上线,像“localhost:8888/contact.php”这样的网址就不能通用了。只是想尽量减少和错误的道路。 @Popnoodles
  • 通常使用每个安装唯一的配置文件,其中包含主机名等内容(也可以使用$_SERVER['HTTP_HOST'] 接收)
  • @samlev 如果它是不同的文件夹/子怎么办?例如。我的登录名是 site.com/login,但如果我输入 Location: home 然后它会尝试登录/home

标签: php html redirect header


【解决方案1】:

你可以打电话:

header('Location: relative/path/to/file.php');

它应该可以工作。根据本地 Web 服务器和您的 Web 根目录,您可以使用来自 Web 根目录的绝对路径,前缀为 /

需要注意的是,header() 必须在任何输出之前调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多