0

我使用电子邮件营销公司发送 HTML 电子邮件,我在帖子中使用绝对路径,并包含他们用来处理表单的隐藏变量。我想添加一个验证码,但不知道怎么做。所有 php 验证码选项都使用 post 发布到 process.php 页面。我如何做到这一点并且仍然绝对发布到电子邮件营销公司,包括隐藏变量?

4

1 回答 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

http://php.net/manual/en/book.curl.php

于 2012-10-04T16:24:15.733 回答