IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Emulation de navigateur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut Emulation de navigateur
    Bonjour à tous!
    J'aimerais savoir si vous pouviez me dire ce qui ne va pas à propos d'un programme que j'essaie de faire en PHP. Je vous explique juste la situation : je joue à un jeu qui s'appelle Lord Of Castle (eh oui, il faut bien que je m'amuse un peu ), qui se joue avec un navigateur. Or, je ne peux me connecter que le soir : je ne suis donc pas très bon (il faut se connecter tous les matins, midis et soirs au minimum). J'ai donc décider de faire un programme PHP qui simule un navigateur et peut jouer à ma place suivant un schéma déterminé. Le seul problème est que ça ne marche pas : le programme se bloque lors de la connection au serveur... Pourriez vous me donner des conseils si vous savez ce qu'il se passe??

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    	class LOCConnection {
    		var $pseudo;
    		var $password;
    		var $phpsessid;
    		function LOCConnection($pseudo, $password) {
    			$this->pseudo = $pseudo;
    			$this->password = $password;
    		}
     
    		function setPseudo($pseudo) {
    			$this->pseudo = $pseudo;
    		}
    		function setPassword($password) {
    			$this->password = $password;
    		}
    		function getPseudo() {
    			return $this->pseudo;
    		}
    		function getPassword() {
    			return $this->password;
    		}
    		function connect() {
     
    		}
    		function getSessionID() {
    			return $this->phpsessid;
    		}
    		function setSessionID() {
    			$socket = fsockopen("www.lordofcastle.com", 80, $errno, $errstr, 10);
    			if (!$socket) {
        			echo "Error : $errstr ($errno)<br />\n";
    			} else {
    				$in = "GET /index.php HTTP/1.1\r\n";
    				$in .= "Host: www.lordofcastle.com\r\n";
    				$in .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1\r\n";
    				$in .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
    				$in .= "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
    				$in .= "Accept-Encoding: gzip,deflate\r\n";
    				$in .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
    				$in .= "Keep-Alive: 300\r\n";
    				$in .= "Connection: keep-alive\r\n";
    				$in .= "Referer: http://www.lordofcastle.com/\r\n";
    				print "$in";
    				$out = '';
    				while (!feof($socket)) {
    				fwrite($socket, $in);
    					$out = fgets($socket, 4096);
    					print "$out";
    					if(($start = stripos($out, "Set-Cookie: PHPSESSID=")) != false) {
    						$this->phpsessid = substr($out, $start + 22, 32);
    						break;
    					}
    				}
    				fclose($socket);
    			}
    		}
    	}
    ?>
    Merci d'avance!

  2. #2
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    C'est malheureusement pas aussi simple. Le problème c'est l'ID de session. Je ne pense pas que ce soit compatible avec la fonction fsockopen.
    Essaie plutot en utilisant la librairie http de PEAR.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 6
    Par défaut
    Pourquoi ça ne serait pas compatible avec fsockopen()? C'est bizarre, puisque c'est juste une chaîne de caractères que la page transmet avec "Set-Cookie", donc normalement ça devrait marcher... En plus, je compte installer ça sur un compte free et je ne sais pas si on peut utiliser PEAR. Quelqu'un le sait?

Discussions similaires

  1. [MySQL 3.23.49] Emulation du "NOT IN"
    Par Amon dans le forum Requêtes
    Réponses: 5
    Dernier message: 04/06/2004, 14h19
  2. Réponses: 3
    Dernier message: 11/05/2004, 18h39
  3. API pour changer le proxy du navigateur
    Par SteelBox dans le forum Windows
    Réponses: 2
    Dernier message: 16/02/2004, 23h15
  4. Réponses: 2
    Dernier message: 21/07/2003, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo