【问题标题】:Inserting variable into PHP header Location URL将变量插入 PHP 标头位置 URL
【发布时间】:2025-11-28 06:00:02
【问题描述】:

我对 PHP 很陌生。

我有一个 HTML 会员表单,当用户单击提交按钮时,它会转到一个 PHP 页面,该页面编译传递的字段,发送一封电子邮件,最后将用户转发到“谢谢”确认 html 页面。

我想在 URL 字符串中包含两个表单字段,这样我就可以在确认页面中致电祝贺加入我们俱乐部的人的姓名。

两个问题

  1. 如何连接重定向 url 以包含名字和姓氏,例如: new_member_confirmation.html?firstname=$firstname&lastname=$lastname
  2. 然后我如何“获取”URL 字符串中的名称以显示在确认 html 页面上。例如“感谢 Bill Smith 成为会员”。我没有这样的例子,因为我不知道如何从 url 字符串调用或获取值到 HML 页面中

这是修改后的代码,它不包括每个表单字段变量,但为您提供了 PHP 脚本的要点。

 <?php
    // Multiple recipients
    $to = 'info@abs.com'; // note the comma
    
    
    // Form http_post_fields
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];

    $subject = 'New Membership';
    $cdateTime =  date("l jS \of F Y h:i:s A");
    
    // Message
    $message = "
    <html>
    <head>
      <title>New Membership</title>
    </head>
    <strong>From:</strong> \n $firstname \n $lastname <br>
    <strong>Email:</strong> \n $email <br>
    <strong>Date/Time Submitted:</strong>\n $cdateTime
    </font></p>
    <body>
    
    </body>
    </html>
    ";
    
    // To send HTML mail, the Content-type header must be set
    $headers[] = 'MIME-Version: 1.0';
    $headers[] = 'Content-type: text/html; charset=iso-8859-1';
    
    // Additional headers
    $headers[] = 'To: Club Name <info@domain.com>'; // include a comma for more than one recipiant
    $headers[] = 'From: Club Name <info@domain.com>';
    
    // Mail it
    mail($to, $subject, $message, implode("\r\n", $headers)) or die("Email was not sent!");

// Here is where the user gets sent to the page below. Id like to append the $firstname $lastname variables into the URL string

    header('Location: membership_confirmation.html');

// I thought I could create a URL string variable above like this --
// $urString = "Location: membership_confirmation.html?membername=$firstname \n $lastname";
// and then add it to the last portion of the script like this
// header($urString);

// Unfortunately, that doesn't work after I tried testing it.
    
    ?>

【问题讨论】:

    标签: javascript php


    【解决方案1】:
    1. 您可以在标题语句中连接到 url,并为您的变量使用 urlcode

      header('Location: membership_confirmation.html?firstname='.urlencode($firstname).'&amp;lastname='.urlencode($lastname));

    2. header 需要引用 PHP 文件而不是 html 文件:

      header('Location: membership_confirmation.php?firstname...

      membership_confirmation.php 文件中,通过$GET 获取变量,类似于从当前文件中的$POST 获取变量,例如:

      $firstname = $_GET['firstname'];

    【讨论】:

    • Response 1 - Awsome 只是无法弄清楚如何直接添加到 URL 响应 2 - 无论如何要使用 Java 脚本在 HTML 页面上获取 URL 字符串。我只问是因为确认页面是使用 WYSIWG 编辑器构建的,因此我可以让其他人打开它并进行更改。不幸的是,编辑器不允许人们修改 PHP 页面。病态的研究也是如此。
    • 通过 JavaScript 获取参数见这篇文章:*.com/questions/979975/…
    【解决方案2】:

    好的,这就是我想出的。

    <!DOCTYPE html>
    <html>
    <body>
    
    
    <p id="demo"></p>
    
    <script>
    
    
    var url_string = "https://eaa309.club/membership_confirmation.html?firstname=Kelly&lastname=Brady"; 
    
    var url = new URL(url_string);
    var firstname = url.searchParams.get("firstname");
    var lastname = url.searchParams.get("lastname");
    //console.log(c);
    //Write it out
    
    document.getElementById("demo").innerHTML =
    "Page path is: " + firstname + " " + lastname;
    
    </script>
    
    </body>
    </html>
    

    【讨论】: