问题描述
我在ckenfila工作,正在尝试制作一个可以从公司网站远程下载文件的程序。我目前是CS专业大四,并且具有PHP的经验;但是,我对卷曲和类似情况几乎没有经验。我目前正在尝试使用该程序:https://github.com/devall-eu/Login-with-cURL-PHP-on-remote-website,在此处编写代码:
<?php
/**
* Class WS_connect
*
* Login and get content of webpage
*/
class WS_connect
{
protected $username = 'myusername';
protected $password = 'mypassword';
var $URL = 'https://login.cfahome.com/login/login.do?prompt=y&bmctx=4D978DCBDE9F3780B15870A0F30E4F91&contextType=external&username=string&password=secure_string&challenge_url=https%3A%2F%2Flogin.cfahome.com%2Flogin%2Flogin.do&request_id=-3375257431464164094&authn_try_count=0&locale=en_US&resource_url=https%253A%252F%252Fwww.cfahome.com%252F';
/**
* WS_connect constructor
*/
public function __construct()
{
$this->username;
$this->password;
$this->URL;
}
/**
* Connect to web service
* CURL method
* @return object
*/
private function connect()
{
$ch = curl_init();
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6";
curl_setopt($ch,CURLOPT_USERAGENT,$agent);
curl_setopt($ch,CURLOPT_URL,$this->URL);
curl_setopt($ch,CURLOPT_USERPWD,$this->username . ":" . $this->password);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,400);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
/*
Set the cookie storing files
Cookie files are necessary since we are logging and session data needs to be saved
*/
curl_setopt($ch,CURLOPT_COOKIEJAR,'cookie.txt');
curl_setopt($ch,CURLOPT_COOKIEFILE,'cookie.txt');
$res = (object)array(
'response' => curl_exec($ch),'info' => (object)curl_getinfo($ch),'errors' => curl_error($ch)
);
curl_close($ch);
return $res;
}
/**
* @return mixed|string
*/
private function getData()
{
$data = $this->connect();
if ($data->errors) return $data->errors;
elseif ($data->response == '') return 'Response is empty!';
else return $data->response;
}
/**
* @return bool|mixed|string
*/
public function data()
{
$response = $this->getData();
if (!is_array($response)) {
echo $response;
return FALSE;
} else {
// We finally have data from WS
return $response;
}
}
}
$connector = new WS_connect;
$connector->data();
很明显,我已经更改了用户名和密码。该程序仅输出登录页面并坦率地说,我真的不知道如何进行故障排除或从此处去哪里。任何意见或建议将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)