Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 07h40   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 4
Points : 0
Points : 0
Par défaut Traitement d'un formulaire ASP avec CURL

Bonjour !

Je travaille actuellement sur le site d'une médiathèque. Ils utilisent un SGBD proprio codé en ASP (argh) pour la gestion de leur bibliothèque...
Du coup pour intégrer les éléments dans un site "externe", il faut passer par une iframe ce qui est pas franchement propre.
J'ai donc opté pour la solution CURL, afin de traiter les différents formulaires (recherche, login...) mais j'ai apparemment un soucis...
Voici la page à traiter :
http://www.mediatheque-agglo-sgms.fr...aspx?IdPage=49

Et voici mon code
Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
 
	<?php
	// Le texte recherché 
	$search = "test";
 
	// Url de la page à traiter
	$url = "http://www.mediatheque-agglo-sgms.fr/opacwebaloes/index.aspx?IdPage=49";
 
	// Récupération du __viewstate
	$recupviewstate = file_get_contents($url);
	preg_match_all("/name=\"__VIEWSTATE\" value=\"(.*?)\"/", $recupviewstate, $arr_viewstate);
	$viewstate = $arr_viewstate[1][0];
 
	$postfields = array();
	$postfields["__VIEWSTATE"] = $viewstate;
	$postfields["_ctl0:_ctl3:_ctl0:Critere_82_406_num:txtSaisie1"] = urlencode($search);
 
	$useragent = "Mozilla/5.0";
	$referer = $url; 
 
	// Initialisation d'une session cURL
	$ch = curl_init($url);
 
	// Options cURL
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
	curl_setopt($ch, CURLOPT_REFERER, $referer);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
	// ASP.NET_SessionId
	curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie.txt');	
	curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookie.txt');
 
	// Execution
	$result = curl_exec($ch);
	curl_close($ch);
 
	// Affichage
	echo $result;
	?>
Cependant rien à faire, CURL me retourne le formulaire non traité...
Quelqu'un à peut-être une idée ?

Merci !

PS : J'ai bien Chmod 777 le fichier cookie.txt !
hellbleazer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h18   #2
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
salut,

les données envoyées en POST sont bien ce qu'il faut ? si oui regardes du côté de l'option CURLOPT_FOLLOWLOCATION.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 17h46   #3
Invité de passage
 
Inscription : juillet 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 4
Points : 0
Points : 0
Bonjour Thes32 !

Déjà merci d'avoir déplacé le topic ici .
Sinon oui normalement les données envoyées en POST sont bien les bonnes, et j'ai regardé du coté de l'option CURLOPT_FOLLOWLOCATION (j'ai du tester sur un serveur en local sans open_basedir sinon Warning) mais rien y fait ca passe toujours pas.
J'ai remarqué que le submit était une image sur leur formulaire...Ca vient peut-être de la ?

Merci !
hellbleazer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 18h44   #4
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par hellbleazer Voir le message
Bonjour Thes32 !
J'ai remarqué que le submit était une image sur leur formulaire...Ca vient peut-être de la ?
le fonctionnement d'un d'un bouton submit de type image n'est pas si différent de celui d'un bouton classique hormis le fait que le client envoie en plus la position du curseur au moment du click sur le bouton que tu peux facilement simuler.

Tu dois vérifier qu'il n y a pas de javascript derrière modifiant ou ajoutant certains champs avant l'envoie...
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h11.


 
 
 
 
Partenaires

Hébergement Web