trombone

Remplacer la fonction fopen par fsockopen

Pour des raisons de sécurité ? certains hébergeurs ne permettent pas l'utilisation de la fonction fopen. Cela correspond à la configuration "allow_url_fopen = Off" de PHP. Ayant été confronté au problème lors de la lecture de flux RSS je vous donne ici la façon dont j'ai remplacé la fonction par fsockopen.

allow url include

De la même manière si PHP est configuré avec "allow_url_include = Off" vous ne pourrez pas faire un include d'un fichier se trouvant sur un autre serveur. Cela vous permet par exemple d'exécuter une action sur un serveur lors du traitement de votre page sur un autre. Je me suis servi de ce principe pour regrouper toutes mes statistiques dans la même base sur le serveur ou est hébergé ce site. Une page hébergé ailleurs fait un include d'un fichier se trouvant sur le serveur distant et l'exécution se fait sur le serveur distant.

Par exemple

La page statistiques.php reçoit comme paramètres le nom du site et l'ip du client en train de visiter la page.

Pour pouvoir exécuter une telle commande malgré la configuration de PHP vous pouvez utiliser JavaScript

Attention, cette commande sera désormais visible dans le source de votre page et vous devez réfléchir aux conséquences de son emploi de façon détournée. Dans mon cas cela a faussé mes statistiques à la hausse ce qui n'était pas bien grâve mais aussi comme les noms des sites n'étaient pas vérifiés, permis d'afficher des noms de sites sur la page de statistiques, et je vous assure que certains sites n'ont pas de bonnes réputations.

Soyez donc prudents avec les "failles" de sécurité de PHP qui sont plutôt un manque de précaution lors de la rédaction de vos pages et lisez les articles à ce sujet sur le web.