HTML电子邮件中的表单不发布数据

时间:2016-10-23 03:41:01

标签: php html forms email html-email

我有这个问题,为什么我的表单没有将数据发布到我的PHP脚本。要取消订阅我已设置的电子邮件列表,我会向已取消订阅电子邮件的用户发送包含发布某些数据的表单。

POST

在表单$_POST["email"]的页面上,我得到了#34;没有数据"如果var_dump($_POST)变量中没有数据,我设置的错误。我尝试使用array(0) { },但只返回mexfunction(),但这对我不起作用。

让我最困惑的是当我从电子邮件中复制确切的html并将其粘贴到空白页面时,当我点击提交/取消订阅时,它会将数据发布得很好,而我网站上的其他地方则有完全相同的脚本,唯一不同的是形成没有/ db。发送一个页面的行为应该如何,显示数据的propper数组而不是什么。这是唯一的区别。

如果它有所不同,我使用Thunderbird for Windows 10作为我的电子邮件客户端。

任何认为可以提供帮助的人都将不胜感激:)

5 个答案:

答案 0 :(得分:1)

由于安全问题,不支持表单,也不建议在电子邮件中使用表单。大多数电子邮件客户端会警告用户存在风险,或者只是将其禁用,并且无法正常工作。

启用取消订阅的最佳做法是使用链接。您可以在链接上传递任何requierd参数以取消订阅,例如http://www.example.com/unsubscribe.php?usermail=mail@gmail.com

答案 1 :(得分:0)

默认方法是GET,而不是POST;你需要指定

<form method="post" ...>

也许在线托管此表单的链接可能是一个更好的主意;有些邮件客户端不支持显示邮件;由于安全问题(例如网络邮件界面),可能会有更多客户拒绝提交或发布这些内容。

答案 2 :(得分:0)

尝试:

<html>
<body>
<div>
    <p>This is a confirmation message to confirm that you unsubscribed from the sci-eng email list.</p>
    <p>Click on the button below to confirm your unsubscription.</p>
    <form id="unsubform" action="http://redlinks.ca/sci-eng/db/unsubscribe.php" method="post">
        <div class="form-in">
            <input type="hidden" id="emailkey" name="emailkey" value="key">
            <input type="hidden" id="email" name="email" value="email@domain.com">
            <button class="btn" id="submit" type="submit">Unsubscribe</button>
        </div>
    </form>
    </div>
    </body>
</html>

答案 3 :(得分:0)

如果您不使用POST方法,那么您的表单值如何发布到phpScript。请尝试以下代码。

<html>
<body>
<div>
<p>This is a confirmation message to confirm that you unsubscribed 
   from the sci-eng email list.</p>
<p>Click on the button below to confirm your unsubscription.</p>
<form id="unsubform" method="POST" action="http://redlinks.ca/sci-eng/db/unsubscribe.php">
    <div class="form-in">
    <input type="hidden" id="emailkey" name="emailkey" value="key">
    <input type="hidden" id="email" name="email" value="email@domain.com">         
    <button class="btn" id="submit" type="submit" >Unsubscribe</button>
    </div>
</form>
</div>
</body>

答案 4 :(得分:0)

请勿发送表单进行确认。请尝试以下步骤:

  1. 为取消订阅并存储在数据库中的电子邮件生成唯一的加密密钥

  2. 将确认链接发送至特定用户电子邮件,密钥为(http://domainurl/confirm.php?key=1533c67e5e70ae7439a9aa993d6a3393

  3. 现在检查相应电子邮件的密钥并取消订阅,并从数据库中删除密钥