HTML 电子邮件中的表单未发布数据
Form in HTML Email Not Posting Data
我有一个问题,为什么我的表单没有将数据发布到我的 PHP 脚本。要取消订阅我设置的电子邮件列表,我会向已取消订阅的用户发送一封电子邮件,其中包含发布一些数据的表单。
<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">
<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" formaction="http://redlinks.ca/sci-eng/db/unsubscribe.php" formmethod="post">Unsubscribe</button>
</div>
</form>
</div>
</body>
</html>
在表单 POST
编辑到的页面上,如果 $_POST["email"]
变量中没有数据,我会收到我设置的 "no data" 错误。我试过使用 var_dump($_POST)
,但是 returns 和 array(0) { }
对我不起作用。
最让我困惑的是,当我从电子邮件中复制确切的 html,并将其粘贴到空白页面时,当我单击 submit/unsubscribe 时,它会很好地发布数据,在我网站的其他地方,我有完全相同的脚本,唯一不同的是 formaction 中没有 /db。一个人被发送到的页面表现得应该如何,显示正确的数据数组而不是什么都不显示。这是唯一的区别。
如果有任何不同,我使用 Thunderbird for Windows 10 作为我的电子邮件客户端。
任何认为他们可以提供帮助的人都将不胜感激:)
默认方法是GET,不是POST;你需要指定
<form method="post" ...>
也许 link 在线托管此表单可能是个更好的主意;部分邮件客户端不支持显示邮件;也许更多的客户可能会出于安全考虑(例如网络邮件界面)而拒绝提交或 post。
试试:
<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>
由于安全问题,不支持也不推荐在电子邮件中使用表单。大多数电子邮件客户端会警告用户存在风险,或者只是将其禁用,它不会起作用,就像您的情况一样。
取消订阅的最佳做法是使用 link。您可以在 link 上传递任何取消订阅所需的参数,例如 http://www.example.com/unsubscribe.php?usermail=mail@gmail.com.
如果您不使用 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>
不要为 confirmation.Try 这些步骤发送表格:
为退订的邮件生成唯一的加密密钥并存储在数据库中
向特定用户电子邮件发送确认 link,密钥为 (http://domainurl/confirm.php?key=1533c67e5e70ae7439a9aa993d6a3393)
现在检查相应电子邮件的密钥并取消订阅并从数据库中删除密钥
我有一个问题,为什么我的表单没有将数据发布到我的 PHP 脚本。要取消订阅我设置的电子邮件列表,我会向已取消订阅的用户发送一封电子邮件,其中包含发布一些数据的表单。
<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">
<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" formaction="http://redlinks.ca/sci-eng/db/unsubscribe.php" formmethod="post">Unsubscribe</button>
</div>
</form>
</div>
</body>
</html>
在表单 POST
编辑到的页面上,如果 $_POST["email"]
变量中没有数据,我会收到我设置的 "no data" 错误。我试过使用 var_dump($_POST)
,但是 returns 和 array(0) { }
对我不起作用。
最让我困惑的是,当我从电子邮件中复制确切的 html,并将其粘贴到空白页面时,当我单击 submit/unsubscribe 时,它会很好地发布数据,在我网站的其他地方,我有完全相同的脚本,唯一不同的是 formaction 中没有 /db。一个人被发送到的页面表现得应该如何,显示正确的数据数组而不是什么都不显示。这是唯一的区别。
如果有任何不同,我使用 Thunderbird for Windows 10 作为我的电子邮件客户端。
任何认为他们可以提供帮助的人都将不胜感激:)
默认方法是GET,不是POST;你需要指定
<form method="post" ...>
也许 link 在线托管此表单可能是个更好的主意;部分邮件客户端不支持显示邮件;也许更多的客户可能会出于安全考虑(例如网络邮件界面)而拒绝提交或 post。
试试:
<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>
由于安全问题,不支持也不推荐在电子邮件中使用表单。大多数电子邮件客户端会警告用户存在风险,或者只是将其禁用,它不会起作用,就像您的情况一样。
取消订阅的最佳做法是使用 link。您可以在 link 上传递任何取消订阅所需的参数,例如 http://www.example.com/unsubscribe.php?usermail=mail@gmail.com.
如果您不使用 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>
不要为 confirmation.Try 这些步骤发送表格:
为退订的邮件生成唯一的加密密钥并存储在数据库中
向特定用户电子邮件发送确认 link,密钥为 (http://domainurl/confirm.php?key=1533c67e5e70ae7439a9aa993d6a3393)
现在检查相应电子邮件的密钥并取消订阅并从数据库中删除密钥