我使用电子邮件营销公司发送 HTML 电子邮件,我在帖子中使用绝对路径,并包含他们用来处理表单的隐藏变量。我想添加一个验证码,但不知道怎么做。所有 php 验证码选项都使用 post 发布到 process.php 页面。我如何做到这一点并且仍然绝对发布到电子邮件营销公司,包括隐藏变量?
问问题
466 次
1 回答
0
如果我对您的理解正确,您目前只需将表单的action
属性设置为营销公司的网址:
<form action="http://marketingsite.com/form.php" method="post">
...但是现在,您想在发送数据之前对其进行验证。
一种选择是在您自己的网站中验证您的数据process.php
,然后用于cURL
将数据发布到营销网站。
http://php.net/manual/en/book.curl.php
cURL
通常在安装 PHP 时包含。它用于读取数据并将数据发送到其他人的网页。您可以选择要发布的数据,然后用于cURL
发布。
<?php
// validate the CAPTCHA code first
// This array will hold the data that you are POSTing to the marketing site
$post = array();
// validate the other fields here, and add the relevant ones to an array. e.g.:
if(strlen($_POST['name']) > 4 && strlen($_POST['name'] < 20)) {
$post['name'] = $_POST['name'];
}
if(strlen($_POST['hiddenfield'] != 0)) {
$post['hiddenfield'] = $_POST['hiddenfield'];
}
// ...
$curl = curl_init();
// post the data to this url:
curl_setopt($curl,CURLOPT_URL,'http://marketingsite.com/form.php');
// This indicates that we are going to post some data:
curl_setopt($curl,CURLOPT_POST,true);
// Post this data:
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);
// If your script successfully sent the data, && if http://marketingsite.com/form.php returned a 200 code
// (i.e.: not a 404 error or something)
if(curl_exec($curl) && curl_getinfo($curl,CURLINFO_HTTP_CODE) == 200) {
echo 'Thank you for submitting your data';
} else {
echo 'Your data was not submitted :( ';
}
curl_close($curl);
?>
这将发布您选择的所有内容,包括隐藏字段或您要添加的其他字段。
您还可以设置其他选项。您可以尝试阅读接收网页并将该内容回显到您的网站。cURL
您可以在此处了解更多信息PHP
:
于 2012-10-04T16:24:15.733 回答