2011-12-12 8 views
0

J'essaie de me connecter à un site Web en utilisant PHP CURL. Tout fonctionne bien sur les sites Web qui ne nécessite pas de cookies et de session mais il ne semble pas fonctionner avec les sites qui vous demandent donc voici mon code J'ai trouvé ce code here toute aide sur ce serait apritiated merci
codeCURL - cookie non activé/session expirée

<?php 

// 1-Get Première page de connexion http://signin.ebay.com/aw-cgi/eBayISAPI.dll?SignIn

$ebay_user_id = "username"; // Please set your Ebay ID 
$ebay_user_password = "password"; // Please set your Ebay Password 
$cookie_file_path = "cookie.txt"; // Please set your Cookie File path 

$LOGINURL = "__"; 
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$LOGINURL); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
$result = curl_exec ($ch); 
// curl_close ($ch); 

// 2- Post Login Data to Page http://signin.ebay.com/aw-cgi/eBayISAPI.dll 

$LOGINURL = "url"; 
$POSTFIELDS = 'postfiends'; 
$reffer = "url"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$LOGINURL); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$POSTFIELDS); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_REFERER, $reffer); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
$result = curl_exec ($ch); 
// curl_close ($ch); 
print $result;  

?> 
+0

Votre fichier cookie.txt contient-il des données après votre premier processus cURL ..? –

+0

oui certaines données sont écrites dans le fichier cookie.txt –

+0

quelle erreur est-elle réellement affichée ..? –

Répondre

0

http://signin.ebay.com/aw-cgi/eBayISAPI.dll prévoit non seulement le nom d'utilisateur et mot de passe que les données de poste, mais d'autres paramètres a s bien, peut-être que vous n'avez pas tenu compte de cela. Utilisez l'onglet Net sur firebug pour voir les paramètres passés, et essayez de le dupliquer.

+0

Hey, je me suis assuré que j'ai mis dans tous les paramètres de poste que j'utilise httpliveheaders –

+0

@ tushar-chutani J'ai fait beaucoup de travail en utilisant curl, problèmes de cookie est habituel. 'Afin d'aider les autres utilisateurs de la communauté (rappelez-vous que ce site est basé sur des efforts communs), veuillez expliquer comment le fait de passer tous les champs de message résoudra un problème totalement distinct que vous mentionnez dans votre question: cookie not enable/session expired'. THX.- –

2

Peut-être que vous avez besoin d'autres options:

// define some HTTP headers 
$headers[] = "Accept: */*"; 
$headers[] = "Connection: Keep-Alive"; 
$headers[] = "Content-type: application/x-www-form-urlencoded;charset=UTF-8"; 

// to GET add 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   

// to POST add 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_HEADER, 1); 

// check for errors before close 
$result = curl_exec($ch); 
if ($result === false) 
{ 
    echo curl_error($ch); 
} 
curl_close($ch); 

Assurez-vous que votre fichier $cookie_file_path est inscriptible (si Linux). Jouez avec CURLOPT_SSL_VERIFYHOST et CURLOPT_SSL_VERIFYPEER.

+0

NomikOS est correct; cette réponse était difficile à trouver en ligne. Merci –