Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 22/08/2006, 00h48   #1
Invité de passage
 
Inscription : mai 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 11
Points : 1
Points : 1
Par défaut [Cookies] Script TRÈS spéciale, fonction de recherche très poussé

Bonsoir à tous,

Donc voilà j'ai un site (hébergé bien-sûre) ;-) et je souhaite récupérer des données sur un autre site (qui ne m'appartient pas) !

Mais seulement, ce site demande de se logger (Utilisateur/Mot de passe), donc mon script ne fonctionne plus !

Le voici:
Code :
1
2
3
4
5
6
7
<?php
$str = file_get_contents('http://france1.simagri.com/coop_accueil_detail.php?id=1&type=2'); // ouvre la page voulue
if (preg_match('#<td class=text width=20% align=center>([0-9]+) <img#i', $str, $match)) // Regex
{
	echo $match[1]; // Affiche le résultat
}
?>
Il me faudrait donc un "HEADER" qui me permettrait de me logger sur le site, et par la suite récupérer les données sur la page que je souhaite accéder !


INFO : Voici à quoi ressemble la page sur laquelle je tente d'accéder : http://simtractor-manuel.nuxit.net/test/exemple.php


Si vous voudrez bien aussi améliorer mon script, car il ne récupère qu'une valeur sur 2 sur la premiere ligne ! ( soit => 21 <= ) !!!!

Un grand merci à vous !
A+
coolfarmer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 09h46   #2
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Alors...

tout d'abord, j'espere que tu as contacté l'auteur du site afin de lui demander son avis sur ton script, car récuperer des infos d'un autre site sans l'accord de son auteur c'est pas bien ;o)

ensuite, ca depend du systeme de login/pass du site en question :
* Si c'est un .htaccess, tu peux essayer la syntaxe http://login@pass:url (ou login:pass@url, je sais plus ;o)
* Si c'est un formulaire, il faut que tu genere des requetes en POST et que tu récupere le résultat

Si le site d'origine utilise des cookies pour gerer la session, il faudrait que tu les gere aussi, la fonction de plus bas niveau qui permet de faire ca est fsockopen, là tu défini les headers que tu veux (donc les cookies) et tu récupere exactement tout ce que te renvoi le site (y compris les cookies)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 10h56   #3
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
Salut

Citation:
Il me faudrait donc un "HEADER" qui me permettrait de me logger sur le site, et par la suite récupérer les données sur la page que je souhaite accéder !
Citation:
car il ne récupère qu'une valeur sur 2 sur la premiere ligne ! ( soit => 21 <= ) !!!!
En gros, tu connais les problèmes, tu connais les solutions, mais tu cherches quelqu'un pour le faire pour toi?
Citation:
Si vous voudrez bien aussi améliorer mon script
C'est pas le style de la maison.
On t'aiderait autant qu'on peut, mais personne ne te fera un script tout fait.
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 11h32   #4
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
CURL, sans hésiter.

http://php.net/manual/fr/ref.curl.php
__________________
: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
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 23h30   #5
Invité de passage
 
Inscription : mai 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 11
Points : 1
Points : 1
Non non Wamania, je veux pas que mon script soit réalisé par vous, en voici la preuve, j'ai beaucoup améliorer depuis la dernière fois !

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
<?php
// Préparation des variables sous forme d'URL
$variable_post = "Login=coolfarmer&Password=*******";
$fichier_a_generer = "/php/page_verif.php";
$fichier_a_generer = "/coop_accueil_detail.php?id=1&type=2";
 
// Ici tu prépare la variable $message
$message  = "POST " . $fichier_a_generer . " HTTP/1.0\r\n";
$message .= "Content-type: application/x-www-form-urlencoded\r\n";
$message .= "Content-length: " . strlen ($variable_post) . "\r\n";
$message .= "\r\n";
$message .= $variable_post . "\r\n";
 
// 127.0.0.1 correspond au serveur qui doit recevoir la requete
$fd = fsockopen ("194.146.226.60", 80);
$fd = fsockopen ("france1.simagri.com", 80);
fputs ($fd, $message);
fclose ($fd);
?>
 
<?php
// Si cette page est bien apelé, le fichier sera créé
fopen ("page_cree_1.txt", "a+");
 
// Si cette page resoit une variable POST avec la bonne valeur, le second fichier sera créé.
if (isset ($_POST['variable']))
{
        if ($_POST['variable'] == "valeur")
        {
                fopen ("page_cree_2.txt", "a+");
        }
}
?>
Je n'obtien aucune erreur lors de la génération de la page, mais je ne sais plus quoi faire pour continuer le script !...


Citation:
CURL, sans hésiter.
http://php.net/manual/fr/ref.curl.php
Oui plusieurs personnes m'ont proposer d'utiliser cette focntion, mais bon, je n'ai aucune idée de comment l'installer et ni comment l'utiliser !!!

Si tu te porte volontaire pour m'aider, je te laisse mon E-Mail !
oli__games@hotmail.com

A+ et merci a vous tous de m'aider !
coolfarmer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2006, 21h39   #6
Invité de passage
 
Inscription : mai 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 11
Points : 1
Points : 1
Bon je me suis renseigner un peu, et comment j'ai commencer le script:

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
<?
//Création de la session
$curlId = curl_init("http://france1.simagri.com/ValideAccesCompte.php?url=/coop_accueil.php?");
 
//On suis les redirections
curl_setopt($curlId, CURLOPT_FOLLOWLOCATION, TRUE);
 
//On autorise les cookies de session
curl_setopt($curlId, CURLOPT_COOKIESESSION, TRUE);
 
//Envoie du POST
curl_setopt($curlId, CURLOPT_POST, TRUE);
$post = "Login=coolfarmer".
        "&Password=passs".
        "&Souvenir=1".
        "&valider=ok";
curl_setopt($curlId, CURLOPT_POSTFIELDS, $post);
 
//On execute la session
curl_exec($curlId);
 
//On Ferme la session
curl_close($curlId);
?>
Ce que je n'arrive pas a comprendre, c'est pourquoi la connexion ne se fait pas? A ce que je peux analyser, les données du POST sont correctes sinon il affiche "Login/password incorrect". Il fait bien la redirection présente sur la page ValideAccesCompte.php. Par contre, une fois sur la page des informations il se déconnecte. A mon avis ca vient du fait qu'il ne voit pas de session, et il se remet en mode connexion !!!

De l'aide svp ?
coolfarmer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 20h47   #7
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Quelle version de PHP?
__________________
: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
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 20h51   #8
Invité de passage
 
Inscription : mai 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 11
Points : 1
Points : 1
Salut,

Voilà ma version de php :

PHP Version 4.4.2
coolfarmer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 21h20   #9
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
CURLOPT_COOKIESESSION n'est dispo qu'à partir de PHP 5.1.0
http://php.net/manual/fr/function.curl-setopt.php

Utilise plutôt:
CURLOPT_COOKIEJAR (pour capturer un cookie)
CURLOPT_COOKIEFILE (pour le restituer)
__________________
: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
ripat 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 07h46.


 
 
 
 
Partenaires

Hébergement Web