Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Funzione cUrl convertirla in Programmazione a oggetti

    Salve a tutti... volevo sapere se qualcuno può aiutarmi a convertire questa funzione cUrl scritta in php da normale a php Object Oriented..

    codice:
    <?php
     
    /* Inserie lemail e la password */
    $EMAIL      = "";
    $PASSWORD   = "";
     
    function cURL($url, $header=NULL, $cookie=NULL, $p=NULL) {
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_HEADER, $header);
     curl_setopt($ch, CURLOPT_NOBODY, $header);
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // -> https
     curl_setopt($ch, CURLOPT_COOKIE, $cookie);
     curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // -> https
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
     
     if ($p) {
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
     }
     $result = curl_exec($ch);
     
     if ($result) {
     return $result;
     } else {
     return curl_error($ch);
     }
     curl_close($ch);
    }
     
    $a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL&amp;pass=$PASSWORD");
    preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
    $c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&amp;pass=$PASSWORD");
    preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);
    for($i=0;$i<count($d[0]);$i++)
     $cookie.=$d[1][$i].";";
     
    /*
    Ora che i cookies sono sistemati è possibile usare il proprio account di facebook 
    aprendo un altro url e aggiungendo i comandi necessari come ultimo parametro.
    */
    echo cURL("http://www.facebook.com/",null,$cookie,null);
    ?>
    Hutton

    "Una tela bianca, offre infinite possibilità."

  2. #2
    Io ho provato così, ma non riesco ad implementare la parte dei coockie.
    Quando richiamo la funzione cUrl mi da errore di variabile non definita per l'user e la password.

    codice:
    class curlFacebook
    {
    	// parametri login Facebook
    	private $email = "";
    	private $password = "";
    	
    	public function cUrl($url, $header=NULL, $cookie=NULL, $p=NULL)
    	{
    		$ch = curl_init();
    		curl_setopt($ch, CURLOPT_HEADER, $header);
    		curl_setopt($ch, CURLOPT_NOBODY, $header);
    		curl_setopt($ch, CURLOPT_URL, $url);
    		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // -> https
    		curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
    		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // -> https
    		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    		
    		if ($p)
    		{
    			curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    			curl_setopt($ch, CURLOPT_POST, 1);
    			curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
    		}
    		
    		$result = curl_exec($ch);
    		
    		if ($result)
    		{
    			return $result;
    		}
    		else
    		{
    			return curl_error($ch);
    		}
    	}
    	
    	public function close()
    	{
    		curl_close ($this->ch);
    	}
    }
    Hutton

    "Una tela bianca, offre infinite possibilità."

  3. #3
    nessuno può aiutarmi ?
    Hutton

    "Una tela bianca, offre infinite possibilità."

  4. #4
    se provassi a richiamare la funzione dei cookie all'interno di un'altra funzione?
    ma come passo i parametri?..
    Hutton

    "Una tela bianca, offre infinite possibilità."

  5. #5
    Ciao, le variabili
    Codice PHP:
    private $email "";
    private 
    $password ""
    dove le usi?
    Visto che le hai create private dovresti o dichiarare un costruttore di curlFacebook che le prende in ingresso o dei metodi get e set.

  6. #6

  7. #7
    EliaIT

    nella funzione non a oggetti.... vengono richiamate qui:
    codice:
    $a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL&pass=$PASSWORD");
    preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
    $c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&pass=$PASSWORD");
    preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);
    for($i=0;$i<count($d[0]);$i++)
     $cookie.=$d[1][$i].";";
     
    /*
    Ora che i cookies sono sistemati è possibile usare il proprio account di facebook 
    aprendo un altro url e aggiungendo i comandi necessari come ultimo parametro.
    */
    echo cURL("http://www.facebook.com/",null,$cookie,null);
    nell'indirizzo che viene salvato nel cookie.

    Ma se le richiamo in questa maniera con la funzione ad Oggetti... mi dice che le variabile non sono impostate... che se cambio la proprietà da "private" a "public".
    Hutton

    "Una tela bianca, offre infinite possibilità."

  8. #8
    Ciao,
    prova a fare qualcosa del genere:

    Classe
    Codice PHP:
    class CurlFacebook
    {
        
    // parametri login Facebook
        
    private $email;
        private 
    $password;    
        

        private function 
    settaCookie($email,$password)
        {
            
    $this->password $password;
            
    $this->email $email;
            
            
    $a $this->cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$this->email&pass=$this->password");
            
    preg_match('%Set-Cookie: ([^;]+);%',$a,$b);
            
    $c $this->cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$this->email&pass=$this->password");
            
    preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d);
            for(
    $i=0;$i<count($d[0]);$i++)
            {
                
    $cookie.=$d[1][$i].";";
            }
            return 
    $cookie;
        }
        public function 
    apriUrl()
        {
            echo 
    $this->cURL("http://www.facebook.com/",null,$this->settaCookie(),null);
        }
        private function 
    cUrl($url$header=NULL$cookie=NULL$p=NULL)
        {
            
    $ch curl_init();
            
    curl_setopt($chCURLOPT_HEADER$header);
            
    curl_setopt($chCURLOPT_NOBODY$header);
            
    curl_setopt($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0); // -> https
            
    curl_setopt($chCURLOPT_COOKIE$cookie);
            
    curl_setopt($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']); 
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0); // -> https
            
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
            
            if (
    $p)
            {
                
    curl_setopt($chCURLOPT_CUSTOMREQUEST"POST");
                
    curl_setopt($chCURLOPT_POST1);
                
    curl_setopt($chCURLOPT_POSTFIELDS$p);
            }
            
            
    $result curl_exec($ch);
            
            if (
    $result)
            {
                return 
    $result;
            }
            else
            {
                return 
    curl_error($ch);
            }
            
    curl_close($ch);
        }
        
        public function 
    close()
        {
            
    curl_close ($this->ch);
        }

    Codice dove richiamo la classe
    Codice PHP:
    $curlFacebook = new CurlFacebook();
    $curlFacebook->apriUrl("miaEmail","miaPassword"); 
    ... non l'ho provato, ma è giusto per dare un idea...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.