一位客户最近给我带来了一个独特的挑战。我的客户希望将信息请求表数据收集到数据库中。没什么新鲜的,对吧?好吧,有一个障碍——信息不会保存在本地主机数据库中——它需要存储在我无法直接连接到的远程数据库中。
我考虑了解决这一挑战的所有可能解决方案并确定了这个流程:
- 用户将像往常一样提交表单。
- 在处理 PHP 的表单中,我使用 cURL 执行 POST 传输到客户服务器上的 PHP 脚本。
- 远程脚本会对客户的私有数据库执行 MySQL INSERT 查询。
此解决方案效果很好,所以我想与您分享。以下是使用 PHP CURL 库执行 POST 的方法。
//extract data from the post
//set POST variables
$url = 'http://domain.com/get-post.php';
$fields = array(
'lname' => urlencode($_POST['last_name']),
'fname' => urlencode($_POST['first_name']),
'title' => urlencode($_POST['title']),
'company' => urlencode($_POST['institution']),
'age' => urlencode($_POST['age']),
'email' => urlencode($_POST['email']),
'phone' => urlencode($_POST['phone'])
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
你会如何解决这个问题?
