【发布时间】:2011-02-05 05:39:12
【问题描述】:
我正在编写一个表单来将数据发布到贝宝,这很好用,我创建了带有隐藏字段的表单,然后有一个提交按钮,可以将所有内容提交到贝宝。
但是,当用户单击该按钮时,我还想做更多事情,例如更改他们在数据库中的购物车状态。所以,我希望能够在他们点击提交时执行一些代码,然后将数据发布到贝宝。
我不想为此使用 javascript。
我目前的方法是使用 cURL,表单回传到当前页面,然后我检查 $_POST 数据,执行我的其他命令,例如更新购物车的状态,然后创建一个 curl 命令,然后发布将表单数据发送到贝宝。现在,它发布成功,但浏览器并没有转到贝宝。
起初我只是在一个字符串中检索结果,然后将其回显,我可以看到帖子是成功的,然后我将 CURLOPT_FOLLOWLOCATION 设置为 1,假设这会让浏览器转到贝宝,但它没有,什么它似乎是从贝宝上抓取一些东西并将其放在我的页面上。
使用 cURL 是否正确?如果是这样,我该如何解决这个问题?我想远离 javascript,因为只有启用了 javascript 的用户才会更新他们的购物车。
我用于 curl 的代码如下,post_data 是我创建的一个数组,然后将键值对读入 post_string。
//Set cURL Options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_MAXREDIRS, 20);
//Set Data to be Posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//Execute Request
curl_exec($curl_connection);
【问题讨论】: