C++ ou php : Récuperer une page internet qui requiert une identification

Bonjour,

Je souhaiterai automatiser la récupération d’informations contenues sur un site internet. Mais ces infos ne sont accessibles qu’après s’etre identifié (site écrit en PHP).
Donc mon script doit arriver sur la page d’acceuil, rentrer le nom et mot de passe, valider, et acceder a une autre page.

J’ai deja fait ce genre de chose mais sans le problème d’identification, en C++

Je voudrais pouvoir réaliser ca, soit en C++, soit en php (dans ce cas les infos retournés seraient alors juste affichées sur un autre site (perso) ).

Merci
Edité le 04/09/2007 à 15:00

De quel type est l’identification ?
Formulaire HTML (login:password) traité en PHP ?
Formulaire HTML (login:password) refilé à une authentification HTTP (.htaccess) ?

Formulaire HTML (login:password) traité en PHP
Edité le 04/09/2007 à 15:27

Le plus répandu serait un le PHP avec une base de donnée de type MySQL.

Pour faire simple, dans la base de données tu aurais les utilisateurs, ton formulaire HTML renverrai sur une page PHP qui vérifiai l’exactitude des information donnée par celui qui veut accéder au contenu. Si les infos sont correct, ton script PHP envoi l’utilisateur vers le contenu privée, si ses informations sont fausse, ca le renvoi vers la page d’accueil par exemple.

Sinon, si tu n’as pas de base MySQL à ta disposition, adopte la solution d’un formulaire avec HTACCESS.

Voilà :slight_smile:

rien à voir avec ce que je veux faire :wink:
je veux simplement acceder a un contenu sécurisé pour y récuperer des infos.
Donc avoir un programme C++ ou php qui va sur un site, se loggue puis accede au contenu.
Edité le 04/09/2007 à 16:15

c’est possible en php
mais assez difficil, je m’y perds moi même.
Enfaite, il faut simuler un navigateur, et envoyer directement les infos $_POST à la page de vérification du script.

/ Les données envoyées en POST sous forme d’url
$data = ‘txt1=’.urlencode($txt1).’&txt2=’.urlencode($txt2).’&id=’.$id_session;

// monfichier.php3 est l’URL du fichier devant recevoir la requete POST
$message = “POST /monfichier.php3 HTTP/1.0\r\n”;
$message .= “Content-type: application/x-www-form-urlencoded\r\n”;
$message .= “Content-length: “.strlen( $data ).”\r\n”;
$message .= “\r\n”;
$message .= $data."\r\n";

// monserveur correspond au serveur qui doit recevoir la requete
$fd = fsockopen( “monserveur”, 80 );
fputs($fd,$message);
fclose($fd);

merci je vais essayer ca.

Bonjour,
après la connexion il faudra conserver ta session: probablement gérée par cookie, il faut le tracer en regardant le header (qui transmet les cookies): => donc installer le plugin liveHttpHeader sous firefox (ou équiv) pour voir manuellement les noms de cookies et comprendre le fonctionnement:

-> ensuite écrire ce cookie dans le header avec la valeur récupérée en réponse du login. (on peut ajouter au header dans le code de manu2)

Dans liveHttpHeader, je vois qu’il y a trois cookies (et si j’affiche les cookies avec firefox j’en vois 3 également).
Mais quand je fait un echo de ma premiere requete (celle ou je passe mon mot de passe et login en POST), je ne vois qu’un cookie dans le header de la reponse (il y a une ligne qui dit Set-Cookie: PHPSESSID=…), et je ne vois pas les deux autres cookies.
Comment les recuperer?

merci
Edité le 07/09/2007 à 16:30

Sinon, utilise CURL, c’est fait pour ça et ça t’évitera de te prendre la tête avec les sockets ! :slight_smile:

Merci, j’y suis arrivé avec Curl