Php 需要HTTP post中正确值的帮助(我想)
所以我以前从未使用过PHP或http发布或其他任何东西,所以如果我问了一些愚蠢的问题,请原谅 这里有一个网站,我可以更准确地解释我需要什么 因此,我想写一些东西,将得到最终的页面信息,就好像我按下了go按钮,旁边写着consumer fair违例。在做了大量的谷歌搜索之后,我想我应该做HTTP发布,所以我一直在胡乱使用PHP和CURl。这就是我提出的代码,尽管我不确定我应该发布什么值Php 需要HTTP post中正确值的帮助(我想),php,http-post,Php,Http Post,所以我以前从未使用过PHP或http发布或其他任何东西,所以如果我问了一些愚蠢的问题,请原谅 这里有一个网站,我可以更准确地解释我需要什么 因此,我想写一些东西,将得到最终的页面信息,就好像我按下了go按钮,旁边写着consumer fair违例。在做了大量的谷歌搜索之后,我想我应该做HTTP发布,所以我一直在胡乱使用PHP和CURl。这就是我提出的代码,尽管我不确定我应该发布什么值 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_UR
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://nycserv.nyc.gov/NYCServWeb/NYCSERVMain");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'dcadropdownmenu.name' => 'javascript:consumerAffairsViolationsQuerySetup("GET_CONSUMER_AFFAIRS_VIOLATION_SEARCH_QUERY_SETUP")');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print $info;
print $output;
?>
我很确定我不应该设置dvaddropdowmenu.name,但我不知道我应该发布什么。任何帮助都会很好
更新
所以我终于成功了。我现在遇到的问题是如何在返回的页面上再次使用HTTP post。我的意思是,我让它从页面返回HTML,就像我点击Go按钮一样。现在我需要点击这个返回页面上的搜索按钮。我试着改变post变量并再次执行,但没有成功。有什么帮助吗?需要对JavaScript进行一些挖掘才能找到它,但下面是实际提交的表单:
form name="NycservProtocolForm" method="POST" action="NYCSERVMain">
<center>…</center>
<!-- N Y C S E R V P R O T O C O L -->
<input type="HIDDEN" name="ChannelType" value="ct/Browser">
<input type="HIDDEN" name="RequestType" value="rt/Business">
<input type="HIDDEN" name="SubSystemType" value="st/Payments">
<input type="HIDDEN" name="AgencyType" value="at/PVO">
<input type="HIDDEN" name="ServiceName" value="NONE">
<input type="HIDDEN" name="MethodName" value="NONE">
<input type="HIDDEN" name="PageID" value="NYCSERVHome">
<input type="HIDDEN" name="ParamCount" value="0">
<input type="HIDDEN" name="NycservRequest" value="EMPTY">
<input type="HIDDEN" name="SearchType" value="EMPTY">
<input type="HIDDEN" name="LinkType" value="EMPTY">
</form>
根据您对表单的熟悉程度,您可以决定发送多少个参数。但这些是您在发送POST请求时要指定的变量。查看Firefox的Tamper Data扩展,它将让您准确地看到哪些变量被发布到哪个URL。你说得对,我看到很多javascript:strings被发布了。所以这不是很简单的事情,比如只有一个变量?我是否必须以不同的方式输入变量,因为输入类型是隐藏的?@Jack一点也不。PHP不关心它是什么表单类型,只关心名称和值。知道那是什么意思吗?啊!所以我对代码做了一点修改,它就工作了。问题是,我没有得到正确的数据。这将出现在HTML的某个地方,您的会话已超时或过期。请点击主页的链接。如何修复此问题?@Jack当页面首次加载时,它会尝试设置会话cookie。您需要做的是第一次使用,并在返回的数组中查找会话id。然后发送您的curlpost请求,并包含该会话id。