logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» [PHP] Accès à un site externe
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [PHP] Accès à un site externe  (Lu 8120 fois)
Folcan

Profil challenge

Classement : 511/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« le: 03 Août 2006 à 11:24:43 »

Bonjour,

J'essaye de coder un petit truc en PHP, tout simple.

J'essaye juste d'ouvrir une url externe (genre www.google.fr), de verifier si un dossier existe sur le serveur.
Je fais donc la requete :

Code:
if (fopen($filename,'r') != FALSE) {
         echo "Dossier admin OK";
         }


else {
echo "Dossier admin non trouvé<br />";
echo "Requete : ".$filename;
}
La requete prend enormement de temps !!
Et cela ne donne rien de concluant :
Citation
Warning: fopen(http://www.xxx.fr/admin): failed to open stream: Bad file descriptor in index.php on line 73
Dossier admin non trouvé
Requete : http://www.xxx.fr/admin
(tout en sachant que bien sur pour le test, le repertoire /admin existe bien !)

J'ai testé aussi :

Code:
$fp = fsockopen($filename, 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   $out = "GET / HTTP/1.1\r\n";
   $out .= "Host: ".$filename."\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);
   while (!feof($fp)) {
       echo fgets($fp, 128);
   }
   fclose($fp);
}
Et cela me renvoi :
Citation
Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in index.php on line 57

Warning: fsockopen(): unable to connect to http://www.xxx.fr/admin:80 in index.php on line 57
Opération réussie. (0)
Et pour finir, le test suivant :

Code:
   // vérification du protocole HTTP
    if (!eregi("^http://", $url)) {
        echo "Probleme d'url";
    }
    $details = parse_url($url);
    // vérification du port 80 lié au protocole HTTP
    if (!isset($details['port'])) {
        $details['port'] = "80";
    }
    // vérification du chemin
    if (!isset($details['path'])) {
        $details['path'] = "/";
    }
    // vérification de l'adresse du serveur
    if (!ereg("[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+", $details['host'])){
        $details['host'] = gethostbyname($details['host']);
    }
    // ouverture d'une connexion vers le serveur
    if ($sock = fsockopen( $details['host'], $details['port'], &$numero_erreur, &$texte_erreur)){
        $requete = "GET ".$details['path']." HTTP/1.1\r\n";
        $requete .= "Host: ".$details['host']."\r\n\r\n";
        // envoie d'une requête HTTP GET
        fputs($sock, $requete);
        // réception de la réponse du serveur
        $str = fgets($sock, 1024);
        while(!ereg('^HTTP/1.1 ', $str)){
            $str = fgets($sock, 1024);
        }
        // fermeture de la connexion
        fclose($sock);
        list($http, $str, $texte) = explode(" ", $str, 3);
        echo $str."<br />".$reponse[$str];
    }
    echo "Probleme d'url"
Qui lui me renvoi, avant meme la recherche :
Citation
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in index.php on line 37
>> J'ai reussi a passer outre cette erreur, en modifiant le PHP.ini, comme stipulé dans l'erreur.
Par contre, toujours impossible de me connecter :

Citation
Warning: fsockopen(): unable to connect to xx.xx.xx.xx:80 in index.php on line 37

Fatal error: Maximum execution time of 30 seconds exceeded in index.php on line 37
Et pourtant, le test vers le navigateur fonctionne tres bien, sur le port 80...

J'avoue etre un peu desemparé face à temps d'echec.
Peut etre connaissez vous une methode plus simple !
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
the lsd
Administrateur

Profil challenge

Classement : 183/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #1 le: 03 Août 2006 à 13:06:33 »

tu le fait a la mano !
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Crisis

Profil challenge

Classement : 322/55046

Membre Junior
**
Hors ligne Hors ligne
Messages: 86


Voir le profil
« #2 le: 03 Août 2006 à 13:10:04 »

Citation de: the lsd
tu le fait a la mano !
xD. En effet... ^^
Journalisée
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #3 le: 03 Août 2006 à 15:46:56 »

ou alors tu le fais comme moi et tu le code en perl. le scanner est très rapide (en fonction de la rapidité du server distant aussi ^^) et très efficace vu que j'ai un bon dico de directories a coté

Si vous etes sages je posterais p-e la source
Journalisée
Folcan

Profil challenge

Classement : 511/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #4 le: 03 Août 2006 à 15:36:02 »

C'est donc toi qui scanne en permanance mon serveur !!!!!!
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
pepekiss

Profil challenge

non classé(e).

Membre Junior
**
Hors ligne Hors ligne
Messages: 67


Voir le profil
« #5 le: 03 Août 2006 à 17:28:44 »

lol non Folcan, je dois pas etre le seul a avoir codé un scanner ^^

j'ai même pas testé des pages a la main
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 183/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #6 le: 11 Août 2006 à 13:39:11 »

Tiens c'est rigolo j'ai le meme probleme aujourd'hui

PHP P0w4444

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Perfect Slayer

Profil challenge

Classement : 3031/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1974


Voir le profil WWW
« #7 le: 12 Août 2006 à 18:07:58 »

Lol ca c'est finit comment ? T'as réussi à le finir ou pas ?
Journalisée

Newbie Contest Staff :
(¯`·._.· [ Perfect Slayer ] ·._.·´¯)
Status :
Administrateur / Programmeur PHP / Optimisateur
Citation :
Sécurité, efficacité et rapidité riment avec Perfect(ion)
the lsd
Administrateur

Profil challenge

Classement : 183/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #8 le: 12 Août 2006 à 21:08:19 »

pepkiss m'a aidé pour du vrai, j'ai le debut du script. Pour l'instant, rien de recursif, le script foire mais j'ai deja un bon debut donc des que j'ai le temps je regarde ca de plus pres J'ai au moins reussi a comprendre le principe du script

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Perfect Slayer

Profil challenge

Classement : 3031/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1974


Voir le profil WWW
« #9 le: 13 Août 2006 à 07:57:08 »

Au pire si tu veux de l'aide.. tu passes en PV sur IRC ou MSN.
Journalisée

Newbie Contest Staff :
(¯`·._.· [ Perfect Slayer ] ·._.·´¯)
Status :
Administrateur / Programmeur PHP / Optimisateur
Citation :
Sécurité, efficacité et rapidité riment avec Perfect(ion)
the lsd
Administrateur

Profil challenge

Classement : 183/55046

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3098

poulping for fun & profit


Voir le profil WWW
« #10 le: 13 Août 2006 à 09:24:03 »

Pour l'instant c'est bon, je vais essayer de voir ca tout seul. Si vraiment j'y arrive pas je verrais bien

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Pages: [1]
  Imprimer  
 
Aller à: