我有问题我正在尝试用php和cURL发布数据但是没有用。
如果表单在输入值中随机会话ID是安全的,并且有发布部分(阶段)
,应该如何正确编码 <form name='p' method='post' action='/pl/Register.php'>
<input type='hidden' name='sid' value='wa12891300kv1283056988qwpvkdaazzipdgouxd'>
<input type='hidden' name='stage' value='20'> <!-- this value change when post some "values" -->
<input type='hidden' name='addressline1' value=''>
<input type='hidden' name='addressline2' value=''>
<input type='hidden' name='addressline3' value=''>
<input type='hidden' name='addressline4' value=''>
<input type='hidden' name='postcode' value=''>
<input type='hidden' name='bankname' value=''>
<input type='hidden' name='sortcode' value=''>
<input type='hidden' name='accountname' value=''>
<input type='hidden' name='accountnumber' value=''>
<input type='hidden' name='cardname' value=''>
<input type='hidden' name='cardtype' value=''>
<input type='hidden' name='cardnumber' value=''>
<input type='hidden' name='startmonth' value=''>
<input type='hidden' name='startyear' value=''>
<input type='hidden' name='expirymonth' value=''>
<input type='hidden' name='expiryyear' value=''>
<input type='hidden' name='cardsecurity' value=''>
<input type='hidden' name='cardissue' value=''>
<input type='hidden' name='delname' value=''>
<input type='hidden' name='deladdressline1' value=''>
<input type='hidden' name='deladdressline2' value=''>
<input type='hidden' name='deladdressline3' value=''>
<input type='hidden' name='deladdressline4' value=''>
<input type='hidden' name='delpostcode' value=''>
<input type='hidden' name='delphone' value=''>
<input type='hidden' name='sponsor' value=''>
<input type='hidden' name='uid' value=''>
<input type='hidden' name='password' value=''>
<input type='hidden' name='password1' value=''>
<input type='hidden' name='password2' value=''>
<input type='hidden' name='terms1' value='0'>
<input type='hidden' name='terms2' value='0'>
欢迎任何帮助。
答案 0 :(得分:0)
您正在向我们展示HTML表单。你的PHP脚本是/pl/Register.php?您究竟要发布什么内容,从哪里发布到哪里?
PHP运行服务器端,而不是客户端。 PHP不能在浏览器中运行,因此您无法从浏览器发布带有PHP的表单。你只能用Javascript做到这一点......或者更好的是,在这种情况下只需要一个提交按钮。
答案 1 :(得分:0)
分为两部分:
sid
。sid
值和其他数据发送帖子请求。首先我们得到sid
。我不太了解您在请求表单时会发生什么,但如果它只是每次进入页面时分配的随机数,那么您可以在php脚本中获取页面并搜索其值。我们只需使用file_get_contents
和正则表达式
$remote_site = file_get_contents("http://example.com/pl/Register.php");
if (preg_match('/name=\'sid\' value=\'(.+?)\'/', $remote_site, $match)) {
$sid = $match[1];
} else {
exit('failed to find sid');
}
现在我们只需要使用cURL发送帖子请求。你需要提取所有 您要提交的表单中的数据。
我建议把它放在一个关联数组中:
$post_data = array(
'sid' => $sid,
'stage' => '...',
);
我会留给你填写其余部分。
为了发布它你想发送一个cURL的帖子请求,
使用CURLOPT_POST
和CURLOPT_POSTFIELDS
如下:
$ch = curl_init("http://example.com/pl/Register.php");
curl_setopt($ch, CURLOPT_POST, true); // tell cURL we are doing a post request
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // we pass in our data as an array here
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // this stops the output from being printed directly
$response = curl_exec($ch);
然后,您可以阅读$response
以查看请求的结果。
*