如何阅读网站';s的数据并发布到另一个网站';s数据库,如mysql


How to read website's data and post to another website's database like mysql

下面的代码我有3个函数,当我运行example2网站时,它会进入我的网站,就像提供用户名和密码一样。示例2运行良好。但在example1网站中,当我执行这个程序时,它会进入我以前的页面,它应该不会受到用户名和密码的影响。在这两种情况下,我都得到了用户名&通过运行httpfox软件,将密码和其他数据作为$data变量。我认为,在示例2中,该软件显示了所有信息,如"username=YYYYY&密码=YYYYYYYYY&记住=是&submit=登录&action=do_login&url=http%3A%2F%2Fww.hackforums.net%2Findex.php&my_post_key=876890b33b8b9260ba3acfcc1998b1594',但在示例1中,它只显示,'用户名=XXXXX&密码=XXXXXXXXXXXXXXXXXXXXXX’有人知道答案吗?这将是一个很大的帮助!

另一个问题是,它不适用于任何"https"网站。你知道怎么做吗。非常感谢!

<html>
<body>
 
<?php 
       
       
	login("http://www.example1.com:9080/mrportal/loginaction", "username=XXXXX&password=XXXXXXXXXXXXXXXXXXXXX") ; 
echo grabpage("http://www.example1.com:9080/mrportal/");
login("http://www.example2.net/member.php", "username=YYYYY&password=YYYYYYYYY&remember=yes&submit=Login&action=do_login&url=http%3A%2F%2Fwww.hackforums.net%2Findex.php&my_post_key=876890b33b8b9260ba3acfc1998b1594") ; 
echo grabpage("http://www.example2.net)
	function login($url, $data)
	{
	  $fp = fopen("cookie.txt","w");
	  fclose($fp);
	  $login = curl_init();
	  curl_setopt($login, CURLOPT_COOKIEJAR,"cookie.txt");
	  curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
	  curl_setopt($login,CURLOPT_TIMEOUT,40000);
	  curl_setopt($login,CURLOPT_RETURNTRANSFER,true);
	  curl_setopt($login,CURLOPT_URL, $url);
	  curl_setopt($login,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	  curl_setopt($login,CURLOPT_FOLLOWLOCATION, TRUE);
	  curl_setopt($login,CURLOPT_POST, TRUE);
	  curl_setopt($login,CURLOPT_POSTFIELDS, $data);
	  ob_start();
	  return curl_exec($login);
	  ob_end_clean();
	  curl_close($login);
	  unset($login);  
	}
	
	function grabpage($site)
	{
	  $ch = curl_init();
	  curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	  curl_setopt($ch,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	  curl_setopt($ch,CURLOPT_TIMEOUT,400);
	  curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
	  curl_setopt($ch,CURLOPT_URL, $site);
	  ob_start();
	  return curl_exec($ch);
	  ob_end_clean();
	  curl_close($ch);
	 }
 
 
    function post_data($site, $data)
	{
	  
	  $datapost = curl_init();
	  $headers = array("Expect:");
	  curl_setopt($datapost,CURLOPT_URL, $site);
	  curl_setopt($datapost,CURLOPT_TIMEOUT,40000);	 
	  curl_setopt($datapost, CURLOPT_HEADER, TRUE);
	  curl_setopt($datapost, CURLOPT_HTTPHEADER, $headers);
	  curl_setopt($datapost,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	  curl_setopt($datapost,CURLOPT_POST, TRUE);
	  curl_setopt($datapost,CURLOPT_POSTFIELDS, $data);
	  curl_setopt($datapost, CURLOPT_COOKIEFILE, "cookie.txt");
	  ob_start();
	  return curl_exec($datapost);
	  ob_end_clean();
	  curl_close($datapost);
	  unset($datapost);  
	}
 ?>
</body>
</html>

尝试使用:

curl_setopt($login, CURLOPT_SSL_VERIFYPEER, false);

在代码中跳过https地址的ssl验证。