日期:2014-05-17  浏览次数:20590 次

关于curl_setopt的问题----在线等
 curl_setopt($ch, CURLOPT_POSTFIELDS, $postfield); //设置POST提交的字符串
1.其中这里的 CURLOPT_POSTFIELDS是保存在http的Header中还是哪里?
2.与网页中表单Form的Post方式有何区别?
我是做DELPHI的,然后IDHTTP控件模拟网页的POST方式,但与PHP的这个好像有点区别。
$postfield这里的只看到有指定值,没看到有指定NAME属性哎。

------解决方案--------------------
$postfield 是将表单所有的name和value按照键值对方式用&连接起来的字串

依据http协议,它不属于header,而是正文(与header部分理应有\r\n\r\n隔开)
------解决方案--------------------
合法的格式应该是 类似'para1=val1&para2=val2&...'或使用一个以字段名为键值,字段数据为值的数组

你只传value,那么目标页面就无法获取你提交的值咯。
------解决方案--------------------
无论什么方式,提交就是发送字串而已,一般post是由浏览器做这个事
curl只是模拟post,只是把一些参数组织起来发送,代替了浏览器
你两个delphi月排行第一,应该也做过socket吧,socket不就是把字串按照http规范拼接起来发送么?

我都说了是键值对,就必然有name了
name=abcdefg&password=123456...
只有value,结果就是服务端找不到所需要的变量啰