我想从EXTERNAL网页上获取内容。这意味着它不是我的网页,我没有POST中发送的确切字段的详细信息(如果我检查源代码,我可以看到隐藏的字段吗?)或返回的响应。 例如,我有http://example.com将userid(通过文本框)作为输入,当按下提交时,它会在另一个页面(http://example.com/details.php)中显示输入的用户ID的详细信息。 我想从这个PHP页面获取内容。我怎么能这样做?
答案 0 :(得分:2)
<form name="new" action="vitavi.php" method="POST">
<p>Enter the University Seat No:
<input name="rid" size="20" maxlength="50" type="TEXT">
<input name="submit" value="SUBMIT" type="SUBMIT" align="middle">
... cut for brevity ...
</form>
表单描述了HTTP请求,例如它描述了您提交表单时浏览器将发送到服务器的请求。在这种情况下,将创建具有HTTP方法POST的HTTP请求。 POST主体将包含一个名为rid的参数,其中包含您在表单中输入的值。
从我的浏览器提交表单时,会创建此请求:
POST /vitavi.php HTTP/1.1
Host: results.vtu.ac.in
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://results.vtu.ac.in/
Connection: keep-alive
POST主体包含:
rid=42&submit=SUBMIT
只要网页上没有 CSRF保护(并且没有),您就可以从任何地方创建此请求,包括PHP。您只需要一些工具或功能来创建一个HTTP请求,例如: file_get_contents
,curl
或像Guzzle这样的库等。由于您之后想要解析结果,我建议直接使用DOM。
如需进一步参考,请检查
答案 1 :(得分:0)
你可以这样做:
提交表单后,使用标题位置重定向到详细信息页面上的id参数。
<?php
header('Location: http://example.com/details.php?id='.$userid);
?>
现在在details.php文件中,您可以使用下面的代码来获取数据库中的id和fetch记录。
<?php
$id = $_REQUEST['id'];
$sql = "SELECT * FROM table_name WHERE id = '".$id."'";
$result = mysql_query(); if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit; }
$row = mysql_fetch_row($result);
echo $row[0]; // 42 echo $row[1]; // the email value ... .. etc
?>
如果您需要帮助,请告诉我们! 感谢