Cela veut tout simplement dire que la librairie n'est pas installé...Mais tu as peut être une dernière chance : tenter l'installation cURL
Cela veut tout simplement dire que la librairie n'est pas installé...Mais tu as peut être une dernière chance : tenter l'installation cURL
Avant toutes questions : Développement Web, (X)HTML, CSS, JavaScript, AJAX, ASP, Flash/Flex, Webmarketing, XML, PHP
Ben c marrant : ils disent que ces fonctions de curl ont ete ajoutées en php 4.0.2 et moi je suis en version 4.3.3 !!Envoyé par Kerod
Donc logiquement , elles doivent etre indstallées non?
Ajoutés ne veut pas dire installé. Ca veut tout simplement dire que c'est disponible à partir de cette version de php.
Mais bon refais le phpinfo et là tu sauras si c'est installé mais désactivé. Dans le cas contraire, je suis sur que tout est donné pour réaliser l'installation.
Avant toutes questions : Développement Web, (X)HTML, CSS, JavaScript, AJAX, ASP, Flash/Flex, Webmarketing, XML, PHP
Oki merci bcp en tt cas de vos aide, je fait et je vous tiens au courant...
CURL n'étant pas installé, il te reste les sockets. Voici une fonction que j'utilise quand je dois envoyer un header particulier:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 function monFileGetContents($adresse){ $page = ''; $url = parse_url($adresse); $url['port'] = isset($url['port']) ? $url['port'] : '80'; $url['scheme'] = isset($url['scheme']) ? strtoupper($url['scheme']) : 'HTTP'; $url['path'] = isset($url['path']) ? $url['path'] : '/'; if (isset($url['query'])) { $url['path'] .= '?'.$url['query']; } $fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 10); if (!$fp) { echo "Erreur de socket: $errno - $errstr<br />\n"; return FALSE; } else { $header = 'GET '.$url['path'].' '.$url['scheme']."/1.1\r\n"; $header .= 'Host: '.$url['host']."\r\n"; $header .= "User-Agent: PHP Script\r\n"; $header .= "Connection: Close\r\n\r\n"; fputs($fp, $header); while (!feof($fp)) { $page.= fgets($fp, 256); } fclose($fp); return $page; } } echo monFileGetContents('http://www.developpez.com');
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ALors j'ai testé et voila ce que ca me donne :Envoyé par ripat
"HTTP/1.1 302 Object moved Connection: close Date: Tue, 08 Aug 2006 18:47:42 GMT Server: Microsoft-IIS/6.0 Location: /index.asp Content-Length: 131 Content-Type: text/html Set-Cookie: IDM=ab1cfe66ad4c8fc4cbca90463da0b02b; expires=Sun, 07-Aug-2011 22:00:00 GMT; path=/ Set-Cookie: ASPSESSIONIDAADSAQAA=INCEJNLCMCGDPDGOFALMAFGA; path=/ Cache-control: private Set-Cookie: BIGipServerpool_http_trokers=2181571924.20480.0000; path=/
Object Moved
This object may be found here."
Qu'est ce que cela signifie? Est ce normal? Pourquoi la page n'est qd meme pas afficher?
Apparemment ce site dépose des cookies. Là je ne vois que CURL pour gérer ça avec CURLOPT_COOKIEJAR pour capturer le(s) cookies et CURLOPT_COOKIEFILE pour les renvoyer.
De plus, il me semble que cette page est redirigée, si tu veux que CURL suive la redirection -> CURLOPT_FOLLOWLOCATION = true
Il te faudra donc installer la lib CURL. Très utile par ailleurs.
Certains sites sont très difficiles à consulter hors navigateur. Il faut parfois finasser. Je veux bien essayer de mon côté mais il me faudra ton url (par MP si confidentiel).
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
J'ai essayé sur l'url que tu m'a transmise par MP et c'était bien un problème de cookie et pas d'user-agent.
La solution est valable pour tout site avec cookie. Pas seulement celui-ci.
Méthode universelle:
Méthode rapide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $url = 'http://www.le-site-cible.com/index.asp?user=moi&pass=xxxx'; // capture du cookie $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'monCookie.txt'); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $page = curl_exec($ch); curl_close($ch); // ensuite on demande la page en injectant le cookie $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, 'monCookie.txt'); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $page = curl_exec($ch); curl_close($ch); echo $page;
Attention, important!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // plus court et rapide, on joue sur la redirection. // Risque de ne pas marcher avec tous les sites avec cookies, // seulement ceux avec redirection. $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'monCookie.txt'); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $page = curl_exec($ch); echo $page;
Il faut faire un chmod 777 sur le répertoire ou tu mets le cookie. Ici dans l'exemple il est déposé dans le répertoire qui exécute le script mais tu pourrais le mettre ailleurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part curl_setopt($ch, CURLOPT_COOKIEJAR, '/var/cookies/monCookie.txt')
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
Ok Donc merci pr vos aide respective... Jusque la tout marche!
Mnt , jaimerai savoir comment faire pour envoyer un formulaire qui utilise la méthode POST.
Cad, ke je suis en presence dun formulaire ki me dit de remplir plusieurs champs et a la fin jai un boutton ok mais ki n 'est pas du type submit...
Donc je c pas cmt faire pr le valider automatiquement..
Merci
Il faut donc que tu ailles voir les sources de ce formulaire et que tu notes bien toutes les variables passées (input) y compris les hidden.
Ensuite, avec ces variables, tu composes une chaîne $post qui sera envoyée par curl exemple:
Attention, il faudra faire un urlencode() sur le contenu des variables si celles-ci contiennent des caractères spéciaux (espaces, accents etc...):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $post = 'var1=aaaaa&var2=22222&var3=aeiou&var4=012345'; // rajouter les options curl suivantes curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
Code : Sélectionner tout - Visualiser dans une fenêtre à part $post = 'var1='.urlencode('avec des espaces').'&var2='.urlencode('autre variable')........
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ok mais ds ces cas la, que devient la variable $url puiske celle ci contient deja qq veriable post?
pk avant, $url = 'http://www.le-site-cible.com/index.asp?user=moi&pass=xxxx';
mais now que je met ces variable ds $post, a koi est egal $url= ??
Une requête HTTP ne peut contenir deux méthodes à la fois (GET et POST).
Regarde bien les sources de ton formulaire et l'url du formulaire qui POSTe. Je suppose que l'indentification se fait par le cookie de session qui est capturé par les options curl COOKIEJAR/COOKIEFILE.
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
voici ce que jai tente de faire en suivant tes conseils :
comme tu pe le constater, jai recuperer tous les champs donc et jai aussi laisser vide ceux qui ne sont pas obligatoire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $post = 'LOGIN=lelogin&PASS=mdp&intN=&id='.urlencode(143574).'&type='.urlencode(3).'&SousSousType=&intCategEnvoi=&action=ADD&condition=&commentaire='.urlencode(produit en bon etat).'&refInterne=&prix1=20&prix2=05&type_envoi=&quantite=1&alerte=OK&intEtatVendeurNeu=&x=13&y=6'; $filename1 ="http://www.lesite.com/perso/vendre.asp?".$post; $ch = curl_init($filename1); // jai rajouté les options curl suivantes curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, 'monCookie.txt'); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $page = curl_exec($ch); echo $page;
Mais en vain , ca marche po...quen pense tu?
y a surement des erreurs la dedans...
Déjà, il y a ceci:
il y manque les quotes. Mais je suppose que tu t'en es aperçu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part urlencode(produit en bon etat)
Ensuite, tu ne dois pas rajouter le POST derrière l'url. Curl s'en chargera lui-même.
Pour le reste, que renvoie le serveur? Pour vérifier, rajoute:
Code : Sélectionner tout - Visualiser dans une fenêtre à part $filename1 ="http://www.lesite.com/perso/vendre.asp";
Code : Sélectionner tout - Visualiser dans une fenêtre à part curl_setopt($ch, CURLOPT_HEADER, 1);
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
alors qd je fe tes modif, il me renvoie sur la page de log ! bizzard...surtout ke qd je tape l'url alors je n'arrive pas a valider l'offre, a mon avis cette url n'est pas valide...
ensuite voila ce ke me renvoie la reponse :
HTTP/1.1 100 Continue HTTP/1.1 200 OK Connection: close Date: Thu, 24 Aug 2006 08:37:17 GMT Server: Microsoft-IIS/6.0 Content-Type: text/html Set-Cookie: IDM=9ff65ce35b86072dcf250b6f5d9576fb; expires=Tue, 23-Aug-2011 22:00:00 GMT; path=/ Set-Cookie: ASPSESSIONIDQSSBATCB=OIPHJBNBOONHOCEKFFIOBOMN; path=/ Cache-control: private Set-Cookie: BIGipServerpool_http_trokers=2198349140.20480.0000; path=/
Voila...
Là, je ne vois plus trop quoi te dire. Je t'ai donné tous mes petits trucs pour faire fonctionner Curl.
Il y a peut-être un mécanisme de vérification de la page qui l'envoie le formulaire, ou du user agent. Pour ça regarde du côté des options
CURLOPT_REFERER
CURLOPT_USERAGENT
Assure-toi ausisi que les cookies envoyés sont biens enregistrés sur ton serveur.
Et contacte les auteurs du site pour connaître les mécanismes de validation d'un formulaire.
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
Merci bcp a toi c vrt tres tres simpas de mavoir autant aiderEnvoyé par ripat
ms que dois je ragarder exactement?Envoyé par ripat
De quel maniere?Envoyé par ripat
ok je v tenter den savoir un peu plus ...Envoyé par ripat
Encore merci c grace a des personnes comme toi que l'internet prend toutes sa signification
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager