Page 1 sur 1

cURL ... pas clair

Posté : 20 juin 2012, 09:16
par JeromeB51
Bonjour à toutes et à tous,

Voilà je travaille actuellement en stage dans une entreprise qui possede un site (boutique) et un back office.

Accès login et mot de passe ok, on peux gérer les users (ajout, suppr ...)

Je dois mettre en place en local une autre partie admin non prévue sur le back office pour la partie logistique ( 1 personne ) pour mettre en place la gestion du stock.

Connaissance de programmation de la personne à la logistique : 0/10 ... donc je dois faire un mini back office ... donc pour faire des extractions simples des produits je me penche sur cURL et j'ai du mal a trouver des réponses ...

Je n'arrive pas a passer la page de login, je stocke bien dans un tableau log / mdp + les différents champs nécessaires ...

Je créé bien le cookie ... je mets bien les différentes options pour suivre les pages, etc ...

Mais j'arrive toujours en retour d'affichage avec ma page de login / mdp

Quelqu un aurait la gentillesse de prendre le probleme avec moi pour voir ou cela pêche ???

Je vous mets mon 'petit' bout de code ....

Code : Tout sélectionner

<?php $recept =@$_POST['page']; $action =@$_POST['action']; if ($recept == NULL || $recept == '') { echo '<div id="qui"> <form method="post" action="ent.php"> Site cible : <input type="text" name="page" size="50"> <select name="action"> <option value="2">2</option> </select> <input type="submit"> </form> </div>'; } if ($action == '2'){ $path_cookie = 'connexion_cookie_temporaire.txt'; if (!file_exists(realpath($path_cookie))) touch($path_cookie); $ch = curl_init($recept); curl_setopt($ch, CURLOPT_URL, $recept); curl_setopt($ch, CURLOPT_COOKIESESSION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $postfields["identifiant_utilisateur"] = "xxxxxxxxxx"; $postfields["motdepasse_utilisateur"] = "yyyyyyyyyy"; $postfields["submit"] = "Connexion"; curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); curl_setopt($ch,CURLOPT_REFERER,$recept); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); curl_setopt($ch, CURLOPT_COOKIEJAR, realpath($path_cookie)); $result = curl_exec($ch); if ($result === FALSE) { echo "cURL Error: " . curl_error($ch); } $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ' seconds for url ' . $info['url']; curl_close($ch); echo 'Réponse : '.$result.'<hr>'; echo '<div id="qui"> <form method="post" action="ent.php"> Site cible : <input type="text" name="page" size="50" value="'.$recept.'"> <select name="action"> <option value="2">2</option> </select> <input type="submit"> </form> </div>'; } ?>
Bien sur dans mon premier <input> je met l'adresse du back office /admin ... /admin/index.php ... /admin/index.php? ...

Mais rien n'y change ...

Merci d'avance pour votre aide ...

Re: cURL ... pas clair

Posté : 20 juin 2012, 11:23
par Mazarini
Il me semblerait plus simple de coder des interrogations de la base de données que de mettre une couche qui accède au site.

Avec curl, tu n'arriveras qu'a récupérer des pages existante : pourquoi ne pas le laisser accéder directement à ces pages ?

Re: cURL ... pas clair

Posté : 20 juin 2012, 11:34
par JeromeB51
Merci pour ta réponse ....

Pour plusieurs raisons ... la première j'aime bien découvrir de nouvelles choses et là cURL ... ça fait deux jours que je découvre et j'aimerais comprendre et arriver à le faire avec cURL ...

ensuite j'ai les uRL pour acceder directement aux produits ... mais mauvaise manip de ma part je pense ... je me fais tout le temps bouler sur la page de connexion malgré que je mette le couple lo / mdp ...

Donc c est plus dans un soucis de formation (et surtout d auto formation) que je veux réussir à utiliser cURL pour cela ...

Re: cURL ... pas clair

Posté : 20 juin 2012, 11:50
par Mazarini
Je ne suis pas un pro de curl.

Il me semble qu'il faudrait faire une requete sur la page de connexion pour obtenir le cookie qui va bien.
Ensuite seulement tu peux accéder à ta page.

Avec le navigateur en accès direct :
- demande de la page
- affichage de la page de connexion
- envoi des identifiants
- affichage de la page demander

Il faut faire quelque chose de similaire avec curl et donc ne pas demande la page avec les identifiants directement.

Re: cURL ... pas clair

Posté : 20 juin 2012, 11:54
par JeromeB51
Bon cet après midi je vais essayer d'enchainer les requetes cURL comme tu me le conseille ... mais c est vrai que c est un peu déroutant de ne pas ' voir ' ce qui se passe réellement comme tu peux le faire avec un print_r ou ce genre de chose ...

donc cet am j essaye :

1/ Connexion à la page d'acces
2/ envoi du couple log / mdp
3/ appel de la page produit avec le passage des parametres pour récupérer une page article

On verra bien et je te tiens au courant ...

Merci

A+ tard

Re: cURL ... pas clair

Posté : 20 juin 2012, 13:21
par Mazarini
Je pense que l'envoi de l'url correspondant au formulaire (attribut action) avec les paramètres de login est suffisant.

Regarde bien ce formulaire pour voir s'il y a d'autres paramètres (cachés) comme l'url pour la redirection vers une page après controle du mot de passe.
Si c'est la cas, et si curl gère bien les redirections, tu auras ta page facilement.

Re: cURL ... pas clair

Posté : 20 juin 2012, 14:13
par JeromeB51
Je viens de faire un essai apres avoir regarder le action :

Code : Tout sélectionner

<form method=post name=entryform action="/admin/index.php" enctype="multipart/form-data">
Le soucis c'est que je n'ai pas le temps de voir ce qu il se passe meme si dans mon code plus haut je fais un ' echo ' de mon resultat, il me renvoie automatiquement sur le formulaire initial que j'ai fait ou je demande l'url ... :-(

Re: cURL ... pas clair

Posté : 20 juin 2012, 14:27
par JeromeB51
D ailleurs j'arrive a attraper des choses a partir d une variable session que j'ai créé et je récupère cela :

Array ( [info] => Array ( [url] => HTTP://www.xxxxxxxxxxx.com/admin/index.php [content_type] => text/html; charset=ISO-8859-1 [http_code] => 200 [header_size] => 495 [request_size] => 253 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.188 [namelookup_time] => 0 [connect_time] => 0.047 [pretransfer_time] => 0.047 [size_upload] => 391 [size_download] => 3183 [speed_download] => 16930 [speed_upload] => 2079 [download_content_length] => 3183 [upload_content_length] => 391 [starttransfer_time] => 0.094 [redirect_time] => 0 [certinfo] => Array ( ) [redirect_url] => )

Hum #-o

Re: cURL ... pas clair

Posté : 20 juin 2012, 15:44
par Mazarini
Appel une page de l'admin sans être connecté via le navigateur.
Il va t'afficher une page, c'est dans le source de cette page qu'il faut vérifier les input entre les balise <form> et </form>. La question que je me pose, c'est s'il y a un input hidden avec une url en plus des 2 champs de saisie et du bouton submit.

La présence du champ caché est probable si après l'identification, il t'affiche la page demandée initialement. A moins qu'il utilise une variable de session ou un cookies.