2011-11-13 6 views
1

j'ai une fonction simple je l'habitude d'utiliser pour faire se connecter à distance à d'autres sites Web en utilisant enroulent et php c'est la fonctiondétruire les cookies créés par la fonction de connexion CURL?

public function Curllogin($url,$data,$proxy,$proxystatus) 
    { 
     $login = curl_init(); 
     curl_setopt($login, CURLOPT_COOKIEJAR,$this->SetCookieFile); 
     curl_setopt($login, CURLOPT_COOKIEFILE,$this->SetCookieFile); 
     curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
     curl_setopt($login, CURLOPT_TIMEOUT, 40); 
     curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); 
     if ($proxystatus == 'on') { 
      curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE); 
      curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE); 
      curl_setopt($login, CURLOPT_PROXY, $proxy); 
     } 
     curl_setopt($login, CURLOPT_URL, $url); 
     curl_setopt($login, CURLOPT_HEADER, TRUE); 
     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(); // prevent any output 
     return curl_exec ($login); // execute the curl command 
     ob_end_clean(); // stop preventing output 
     curl_close ($login); 
     unset($login); 
    } 

son travail sans problème pour se connecter mais un petit problème que j'ai trouvé disons que je me connecte à example.com et que je passe le nom d'utilisateur et le mot de passe dans la variable $ data mais que je vais me connecter sans problème avec mais en changeant les valeurs $ data avec un autre nom d'utilisateur et mot de passe, je me connecte avec l'ancien nom d'utilisateur utilisé pour la dernière connexion en ignorant les nouvelles informations de connexion J'ai essayé e très chose comme la suppression du fichier cookies.txt et laissez le script recréer j'ai même essayé d'effacer les cookies mis en cache de mon navigateur mais il ne sera pas le changer pour utiliser les nouvelles données chaque fois qu'il utilise le premier nom d'utilisateur et mot de passe que j'ai utilisé pour me connecter est-il une fonction pour détruire le cookie fait par le CURL ou est-ce que je manque quelque chose?

Répondre

0

Modifiez simplement votre $this->SetCookieFile en un fichier vide, éventuellement un fichier aléatoire dans le répertoire temp. Les cookies de votre "vrai" navigateur n'ont rien à voir avec cela, cURL gère les cookies séparément de cela.

+0

ne vous avait pas? – Marco

+0

vous voulez dire que je crée une autre fonction en définissant $ this-> SetCookieFile à null et appelez cette fonction chaque fois que je me suis déconnecté? – Marco

+0

Le fichier 'CURLOPT_COOKIEJAR' /' CURLOPT_COOKIEFILE' est un fichier dans lequel cURL stocke les cookies reçus et prend des cookies pour renvoyer des demandes si nécessaire. L'analogie du nettoyage des cookies de votre navigateur est de vider ce fichier. – deceze