per quello curl fa tutto http://php.net/curl anche on https:// basta fare il file cookie...


esempio questo era un php in console che prende una excel in un posto con autefificazione....
la convertiva in SQL insert e aggiornava in automatico tutti i prezzi di un shop....
e senza cookie la non va niente....

Da un anno ho riscritto tutto in C++


Codice PHP:

class Get_Also_Vars extends Shop_DB {

function 
__construct()  {
parent::__construct();
}

function 
Log_in_Portal($url) {
file_put_contents($this->Workdir.'/also_cookie.txt','#') or die ("not enable to write!\n");

       
$ch curl_init();
       
curl_setopt ($chCURLOPT_URL$url);
       
curl_setopt ($chCURLOPT_USERAGENT$this->Set_Agent());
       
curl_setopt($ch,  CURLOPT_COOKIEJAR$this->Workdir.'/also_cookie.txt');
       
curl_setopt($ch,  CURLOPT_COOKIEFILE$this->Workdir.'/also_cookie.txt');
       
curl_setopt ($chCURLOPT_HEADER0);
       
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
       
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
       
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
       
curl_setopt ($chCURLOPT_TIMEOUT12);
       
$resultxml curl_exec ($ch);
       
/////echo $resultxml;
       
curl_close($ch);
       if (
strlen($resultxml) > 50) {
       
$cleanCODE=Clean_Code::Repair($resultxml);
       
file_put_contents($this->Workdir.'/log_in_page.html',$cleanCODE) or die ("not enable to write!\n");
       return 
$cleanCODE;
       } else {
       
$this->Print_die("wrong curl init! ".__FILE__."/".__LINE__."\n");
       exit;
       }
}

function 
Post_in_Auth($url) {
$Ffields=array(
"__EVENTTARGET" => "repLang:_ct0:lbLang",
"__EVENTARGUMENT" => 'repLang$_ct0$lbLang',
"__VIEWSTATE" => $this->VIEWSTATE,
"dlg1:ctrl1:tbKunde" => "xxxxxxxxxxx",
"dlg1:ctrl1:tbKuerzel" => "xxxxxxxxxx",
"dlg1:ctrl1:PasswordTexBox" => "xxxxxxxxxxx",
"dlg1:ctrl1:cbPersistentLogin" => "on",
"dlg1:ctrl1:Btn_Login" => "Anmelden");
/////echo http_build_query($Ffields);
////exit;
       
$ch curl_init();
       
curl_setopt ($chCURLOPT_URL$url);
       
curl_setopt ($chCURLOPT_POST,true);
       
curl_setopt ($chCURLOPT_USERAGENT$this->Set_Agent());
       
curl_setopt($ch,  CURLOPT_COOKIEJAR$this->Workdir.'/also_cookie.txt');
       
curl_setopt($ch,  CURLOPT_COOKIEFILE$this->Workdir.'/also_cookie.txt');
       
curl_setopt ($chCURLOPT_HEADER0);
       
curl_setopt($chCURLOPT_POSTFIELDShttp_build_query($Ffields));
       
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
       
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
       
curl_setopt ($chCURLOPT_FOLLOWLOCATION1);
       
curl_setopt ($chCURLOPT_TIMEOUT12);
       
$resultxml curl_exec ($ch);
       
/////echo $resultxml;
       
curl_close($ch);
       if (
strlen($resultxml) > 50) {
       
$cleanCODE=Clean_Code::Repair($resultxml);
       
file_put_contents($this->Workdir.'/log_in_page_result.html',$cleanCODE) or die ("not enable to write!\n");
       return 
$cleanCODE;
       } else {
       
$this->Print_die("wrong curl init! ".__FILE__."/".__LINE__."\n");
       exit;
       }