我正在尝试创建一个PHP代码,它将在一个地方提供我们需要的所有信息。
我们需要的一些信息在https://link
上我能够使用php表单直接向它发送查询,但唯一的麻烦是只有在有人执行了手动搜索后才能运行。一旦有人搜索了某些内容,那么它一直有效,直到浏览器关闭。
用户关闭浏览器后,会再次开始返回错误。
尝试打开此链接而不进行手动搜索。 https://link
会出现错误,现在打开第一个链接https://然后搜索某些内容。
现在再次打开此链接:https://searchType=singleQuery&phrase=exact&keywords=02284065
不应该出错。
有人向我解释发生了什么以及如何解决这个问题?
感谢。
编辑:
我无法访问远程服务器上的代码。在我结束时我正在使用
<?php
echo file_get_contents(searchType=singleQuery&phrase=exact&keywords=02284065");
?>
进行测试。一旦我解决了这个问题,我就会进一步开发代码。
编辑:这是我到目前为止,它返回表单,但不提交表单。
<?php
$url='https:/';
$keywords ='';
$ch = curl_init() ;
curl_setopt( $ch, CURLOPT_URL, "$url" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
$data = array(
'keywords' => "$keywords",
'Search' => 'submit'
);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
$output = curl_exec( $ch );
curl_close( $ch );
echo "$output\n";
?>
答案 0 :(得分:2)
您很可能以不正当的方式尝试使用此服务。现在,许多门户网站只接受来自&#34;白名单&#34;的查询(以及更准确的POST请求)。客户。此白名单中的客户可以是网站本身,也可以是授权的移动应用程序。
您应该了解Same Origin Policy,作为&#34;基本&#34;我们正在谈论的内容。
通常,由网站所有者决定谁可以查询服务器,谁不会查询服务器。
解决方案:您应该联系 healthinfo.moh.gov.on.ca 管理员并询问他们是否有一些API,以便将您的数据放入更有条理和更正确的方式。
编辑:由于某些会话数据,您可以在网站上手动搜索后进行搜索。之后,会话过期,您无法继续。
答案 1 :(得分:2)
同意Francesco - 尤其是关于滥用和联系提供者 - 但会添加,用于教育目的:
尝试使用cURL请求而不是file_get_contents。
我发生的片段现在正在处理:
public function triggerMessage(Contact $tocontact, $msgid)
{
$msgurl = 'https://www.server.com/t/?' . $msgid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $msgurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, count(get_object_vars($tocontact)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->contactToUrlParams($tocontact));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}