使用php重定向到上一页

n3ipq98p  于 2023-04-19  发布在  PHP
关注(0)|答案(5)|浏览(136)

提交按钮在contact-us.html中,代码在contact-us.php中。
我试着使用header('Location: example');,但没有运气...(我也试着使用页面的URL:header('Location: http://www.example.com/contact-us.html');
有什么想法吗

<?php

if($_POST["submit"]) {

    $recipient="example@gmail.com";
    $subject="Form to email message";
    $sender=$_POST["firstname"];
    $senderlast=$_POST["lastname"];
    $senderemail=$_POST["senderemail"];
    $message=$_POST["message"];
    $mailBody="First Name: $sender\nLast Name: $senderlast\nEmail: $senderemail\n\nMessage: $message";

    header('Location: /contact-us.html'); /*Something Wrong?*/

    mail($recipient, $subject, $mailBody, "From: $sender <$senderemail>")
}
sqserrrh

sqserrrh1#

你有没有试过看referer?PHP有一个函数可以做到这一点。

header('Location: ' . $_SERVER['HTTP_REFERER'])

这意味着,如果它来自cnotact.html,它会看看它是如何来的,并引用回来。易于使用,如果你有另一个页面上的第二个联系表单。
我需要补充的是,虽然这可能无法通过安全页面工作。(所以如果你通过https运行它),它的头可能会被劫持(特别是如果浏览器没有发送请求)。

vltsax25

vltsax252#

你确定你有一个带有submit名称属性的按钮吗?如果是,可以试试这个:

<?php
if($_POST["submit"]) {

    $recipient="example@gmail.com";
    $subject="Form to email message";
    $sender=$_POST["firstname"];
    $senderlast=$_POST["lastname"];
    $senderemail=$_POST["senderemail"];
    $header = "MIME-Version: 1.0" . "\r\n";
    $header .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $header .= 'From: $sender <$senderemail>' . "\r\n";
    $message=$_POST["message"];
    $mailBody="First Name: $sender\nLast Name: $senderlast\nEmail: $senderemail\n\nMessage: $message";

    if(mail($recipient, $subject, $mailBody, $header)){

        header('Location:contact-us.html'); /*Something Wrong?*/
    }
}

如果否,则代码永远不会进入if块

fd3cxomn

fd3cxomn3#

尝试使用JavaScript window.location重定向注意:将window.location.href('contact-us.html'); Package 到脚本标记中
例如:

echo "<script>window.location.href('contact-us.html');</script>";
ncgqoxb0

ncgqoxb04#

我会这么做
我建议使用$_SESSION来存储以前的URL,如下所示:
page1.php

<?php
    $_SESSION['previous'] = 'http://'. $_SERVER[HTTP_HOST]. $_SERVER[REQUEST_URI];

page2.php

<?php
    if ($_SESSION['previous'] !== '') {
        header('Location: '. $_SESSION['previous']);
    }

$_SESSION的工作原理类似于cookie,但要好得多。更容易使用,因为它只是使用一个数组-更多信息可以在这里找到:http://uk1.php.net/manual/en/reserved.variables.session.php

bis0qfac

bis0qfac5#

header('Location:  contact-us.html'); /*Something Wrong?

相关问题