[Qst] - fopen, fsockopen et leurs copains...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [Qst] - fopen, fsockopen et leurs copains...

par casio » 18 févr. 2009, 23:22

Merci à tous, je vais potasser ça... :)

par Hywan » 24 janv. 2009, 02:23

Hey :),

Au passage ton code est obsolète. On préfère utiliser <?php plutôt que <?. On ne précise plus le passage en référence lors de l'appel de fonction (maFonction(&$var)) car la référence sera automatiquement donnée selon la déclaration de la fonction.
Donc pour $errno et $errstr, elles seront automatiquement remplies pas la fonction. Ce sont des variables d'entrée/sortie (je n'aime pas ce terme, mais ça parle souvent au débutant).

par thehawk » 23 janv. 2009, 23:06

errno

Si fourni, contient le numéro de l'erreur système qui survient lors de l'appel système à connect().

Si la valeur retournée par errno est 0 et que la fonction retourne FALSE, ce peut être une indication laissant penser que l'erreur est survenue avant l'appel à connect(). La plupart du temps, cela est du à un problème d'initialisation du socket.

errstr

Le message d'erreur, sous la forme d'une chaîne de caractères.


Source : http://fr.php.net/manual/fr/function.fsockopen.php

par casio » 23 janv. 2009, 22:26

(...)
Je ne comprend pas très bien le paramétrage de "$errno" et "$errstr"...
Any idea ?

par casio » 20 janv. 2009, 17:35

Le "@" devant le nom d'une fonction permet de masquer les "erreurs immondes si off-line".
Donc si tu veux savoir pourquoi fopen ne marche pas, retire le @ pour connaitre le message d'erreur.
Et à l'inverse si tu veux masquer les erreurs de fsockopen quand il n'arrive pas à se connecter, ajoute un @ devant ;)
YES, ça marche... Merci ;-)
Par contre, j'ai du remplacer "fopen" par "fsockopen"... Sinon, ça ne marchait pas.

Question bonus :

Code : Tout sélectionner

(...) $cnxweb = @fsockopen($adresse, $portweb, &$errno, &$errstr, 1); //ouverture de l'acces Web (...)
Je ne comprend pas très bien le paramétrage de "$errno" et "$errstr"...

par @rthur » 20 janv. 2009, 02:03

Le "@" devant le nom d'une fonction permet de masquer les "erreurs immondes si off-line".
Donc si tu veux savoir pourquoi fopen ne marche pas, retire le @ pour connaitre le message d'erreur.
Et à l'inverse si tu veux masquer les erreurs de fsockopen quand il n'arrive pas à se connecter, ajoute un @ devant ;)

par casio » 19 janv. 2009, 19:23

Un petit up ? ;-)
Je reste bien embêté... :-(

[Qst] - fopen, fsockopen et leurs copains...

par casio » 09 janv. 2009, 01:09

Salutations,

J'ai un problème que je n'arrive pas à résoudre...

Je suis en train de concevoir une page qui sert de check-up de l'état de notre serveur privé (FTP & WWW), qui à de nombreuses données croisées chez notre hébergeur, et vice versa...

Autant "ftp_connect" marche à merveille, autant "fopen" ne donne pas le résultat escompté... J'ai même essayé comme vous le verrez dans les commentaires avec "fsockopen", qui lui marche bien, mais génère des erreurs immondes si off-line, que je n'arrive pas à virer...

Voici le code complet :

Code : Tout sélectionner

<!-- Partie incluse par le fichier intraserv.php !--> <? $ftp = 'ftp://'; //préfixe FTP $web = 'http://'; //préfixe Web $adresse = 'www.wda-fr.org'; //url externe du serveur $portftp = '21'; //port du serveur FTP //$portweb = '80'; //port du serveur web $cnxftp = ftp_connect($adresse, $portftp, 1); //ouverture de l'acces FTP $assosweb = $web.$adresse; //association de l'acces web //echo $assosweb; $cnxweb = @fopen($assosweb, 'a'); //$cnxweb = fsockopen($adresse, $portweb, &$errno, &$errstr, 1); //ouverture de l'acces Web ?> <br /> <table class="liaisonintra" width="600" bgcolor="#FFFFFF"> <tr> <td align="center" colspan="2">Serveur privé dans les locaux de l'<a href="http://www.wda-fr.org" target="_blank">association <b>WDA</b></a>.</td> </tr> <tr valign="top"> <td align="left" width="110"> Etat du <a href="<? echo $ftp.$adresse.':'.$portftp ?>" target="_blank">serveur FTP</a> :&nbsp; <? if (!$cnxftp) { echo '<img src="pict/rouge.gif" alt="Serveur Off-line" title="Serveur Off-line" />'; } else { echo '<img src="pict/vert.gif" alt="Serveur On-line" title="Serveur On-line" />'; } ?> </td> <td align="justify"> <? if (!$cnxftp) { echo 'La <a href="http://drivers.wda-fr.org" target="_blank">base de pilotes matériels</a> & <a href="http://softs.wda-fr.org" target="_blank">les sélections de logiciels libres</a> proposés par <a href="http://www.wda-fr.org" target=_"blank">l\'association <b>WDA</b></a> doivent être <font color="#FF0000">inaccessibles</font>. Veuillez nous excuser de la gène occasionnée, et retenter ultérieurement...'; } else { echo 'La <a href="http://drivers.wda-fr.org" target="_blank">base de pilotes matériels</a> & <a href="http://softs.wda-fr.org" target="_blank">les sélections de logiciels libres</a> proposés par <a href="http://www.wda-fr.org" target=_"blank">l\'association <b>WDA</b></a> doivent être <font color="#009900">accessibles</font> sans soucis. Néanmoins, si vous rencontrez un problème, <a href="http://contact.wda-fr.org" target="_blank">faites le nous savoir</a>.'; } ?> </td> </tr> <tr valign="top"> <td align="left" width="110"> Etat du <a href="<? echo $web.$adresse.':'.$portweb ?>" target="_blank">serveur Web</a> :&nbsp; <? if (!$cnxweb) { echo '<img src="pict/rouge.gif" alt="Serveur Off-line" title="Serveur Off-line" />'; } else { echo '<img src="pict/vert.gif" alt="Serveur On-line" title="Serveur On-line" />'; } ?> </td> <td align="justify"> <? if (!$cnxweb) { echo 'le <a href="'.$web.$adresse.'" target="_blank">serveur web privé</a> de <a href="http://www.wda-fr.org" target=_"blank">l\'association <b>WDA</b></a> et les photos hautes definitions de <a href="http://musee.wda-fr.org" target="_blank">notre collection</a> doivent être <font color="#FF0000">inaccessibles</font>. Veuillez nous excuser de la gène occasionnée, et retenter ultérieurement...'; } else { echo 'le <a href="'.$web.$adresse.'" target="_blank">serveur web privé</a> de <a href="http://www.wda-fr.org" target=_"blank">l\'association <b>WDA</b></a> et les photos hautes definitions de <a href="http://musee.wda-fr.org" target="_blank">notre collection</a> doivent être <font color="#009900">accessibles</font> sans soucis. Néanmoins, si vous rencontrez un problème, <a href="http://contact.wda-fr.org" target="_blank">faites le nous savoir</a>.'; } ?> </td> </tr> </table> <br /> <? // Fermeture de la connexion //fclose($cnxweb); ftp_close($cnxftp); clearstatcache(); ?> <!-- Fin de partie incluse par le fichier intraserv.php !-->
Cette page est dédiée à être appelée via php include dans d'autres pages...

Dernier détail, nous sommes hébergés chez 1and1 (php4 et 5 dispo.)

Si vous avez des idées...