【问题标题】:Capture form data to mail and show it's content将表单数据捕获到邮件并显示其内容
【发布时间】:2016-12-20 03:22:24
【问题描述】:

我刚刚为我的移动用户界面创建了一个表单。客户需要将其所有用户输入数据发送到他的电子邮件,因此我使用 PHP 为该任务发送电子邮件。

一切正常。现在他要求在 Thank you 页面中显示用户名输入字段的提交值。 (此页面在表单提交之后出现)

像这样。 "感谢 [First name] 注册!

所以我研究了一下,发现可以这样实现

<?php echo $_POST["name"]; ?>

我将我的 success.html 更改为 success.php 并这样做了。

"Thank you <?php echo $_POST["name"]; ?> for registering!

现在我有两个动作脚本。 mail-send.phpsuccess.php 如果我在表单中添加 success.php 而不是 mail-send.php 作为表单操作。它工作正常。我知道表单应该有一个表单操作。所以我这样做了。创建了一个名为 new-action.php 的新文件并包含两个脚本。

<?php
include('success.php');
include('send-email.php'); 
?>

但它不工作,但邮件功能工作。我得到了

注意:未定义索引:C:\wamp\www\Project-new\success.php 第 43 行中的名称

我对 PHP 不是很熟悉。我怎样才能得到这个工作?

【问题讨论】:

  • 请在您的问题中添加 HTML。我认为您的 HTML 缺少 元素
  • 您在成功页面上的 HTML 输出容易受到跨站脚本攻击。请转义您正在显示的用户输入。

标签: php html css forms


【解决方案1】:

原因是您的 $_POST['name'] 变量仅限制您的 sendmail.php 或首先发送客户端数据表单操作 url 页面。 但是你不用担心,所以你必须使用会话来完成这项工作

试试这个

<?php
//this codes should be add your email page require to placed top of php file
session_start();
session_regenerate_id();
?>

现在您在发送邮件 php 文件中假设 $_POST['name'] 为 $_SESSION['name'] = $_POST['name']。 然后,如果您在任何 HTML 页面中显示用户名,请遵循此代码

"Thank you<?php echo $_SESSION['name'];?>"

它会正常工作

【讨论】:

    【解决方案2】:
        $foo = $_POST['name'];
    
    "Thank you <?php echo $foo; ?> for registering!
    

    【讨论】:

    • 我需要从哪里放置 $foo = $_POST['name']; ?
    • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,因为这会降低代码和解释的可读性!
    猜你喜欢
    • 2017-03-07
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    相关资源
    最近更新 更多