fopen et URL

5 réponses
Avatar
Pascale
Bonjour,

J'ai un souci qui arrive une fois tous les 36 du mois, et il faut croire
qu'aujourd'hui c'est le 36. J'ai un bout de programme destiné à tester la
validité d'une URL :

$file1 = fopen($site1,'r');
if ($file1)
{$_SESSION['site1']=$site1;}
else
{
echo '<p class="avert">L\'adresse de site '.$site1.' renvoie un
message d\'erreur !</p>';
$err='1';
}

Ça marche bien et depuis des années, sauf qu'aujourd'hui, l'URL
http://www.afccc69.fr/ renvoie une erreur apparemment sans raison. C'est
quoi, cette diablerie ?

--
Pascale
http://www.la-grille-verte.net

5 réponses

Avatar
Pascale
J'ajoute que allow_url_fopen est bien entendu sur On.

--
Pascale
http://www.la-grille-verte.net
Avatar
Bruno Baguette
Le 21/11/11 14:06, Pascale a écrit :
Bonjour,

J'ai un souci qui arrive une fois tous les 36 du mois, et il faut
croire qu'aujourd'hui c'est le 36. J'ai un bout de programme destiné
à tester la validité d'une URL :

$file1 = fopen($site1,'r'); if ($file1) {$_SESSION['site1']=$site1;}
else { echo '<p class="avert">L'adresse de site '.$site1.' renvoie
un message d'erreur !</p>'; $err='1'; }

Ça marche bien et depuis des années, sauf qu'aujourd'hui, l'URL
http://www.afccc69.fr/ renvoie une erreur apparemment sans raison.
C'est quoi, cette diablerie ?



Cela ressemble furieusement à un filtrage sur base du user-agent :

:~$ wget --user-agent="" http://www.afccc69.fr/
--2011-11-21 16:46:06-- http://www.afccc69.fr/
Résolution de www.afccc69.fr... 195.20.248.198
Connexion vers www.afccc69.fr|195.20.248.198|:80... connecté.
requête HTTP transmise, en attente de la réponse... 403 Forbidden
2011-11-21 16:46:06 ERREUR 403: Forbidden.

Faisons-nous maintenant passer pour un navigateur, et nous avons une
réponse toute différente :

:~$ wget --user-agent="Mozilla/5.0" http://www.afccc69.fr/
--2011-11-21 16:46:28-- http://www.afccc69.fr/
Résolution de www.afccc69.fr... 195.20.248.198
Connexion vers www.afccc69.fr|195.20.248.198|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK

AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen :
ini_set('user_agent', 'Mozilla/5.0');

Cette ligne aura pour effet de vous faire passer pour un autre navigateur.

Ou alors, si vous n'avez pas la possibilité de faire un ini_set chez
votre hébergeur, il faudra alors envisager de ré-écrire votre bout de
code basé sur fopen en le remplacant par CURL sans oublier de le
configurer pour qu'il se fasse passer pour un autre navigateur.

Bon travail ! :-)

--
Bruno Baguette
Avatar
Pascale
Bruno Baguette écrivait
news::

AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen
: ini_set('user_agent', 'Mozilla/5.0');



Merci beaucoup, Bruno, ça marche, c'est impeccable !

Cette ligne aura pour effet de vous faire passer pour un autre
navigateur.



Par contre, je ne suis pas sûre d'avoir bien compris ce qui se passe : en
fait, le problème vient de ce que je vérifie l'URL à partir de mon fopen,
au lieu de l'ouvrir normalement en mettant l'adresse de mon navigateur ? Et
il faut donc que je fasse croire que l'accès à l'URL vient d'un navigateur
et non d'une ligne de PHP, c'est ça, ou j'ai rien compris ?

--
Pascale
http://www.la-grille-verte.net
Avatar
Denis Beauregard
Le Mon, 21 Nov 2011 17:41:07 +0100, Pascale
<chaton.tigre+ écrivait dans fr.comp.lang.php:

Bruno Baguette écrivait
news::

AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen
: ini_set('user_agent', 'Mozilla/5.0');



Merci beaucoup, Bruno, ça marche, c'est impeccable !

Cette ligne aura pour effet de vous faire passer pour un autre
navigateur.



Par contre, je ne suis pas sûre d'avoir bien compris ce qui se passe : en
fait, le problème vient de ce que je vérifie l'URL à partir de mon fopen,
au lieu de l'ouvrir normalement en mettant l'adresse de mon navigateur ? Et
il faut donc que je fasse croire que l'accès à l'URL vient d'un navigateur
et non d'une ligne de PHP, c'est ça, ou j'ai rien compris ?



Cela ressemble à un anti-pompage : on limite les visites aux "humains"
et on bloque tout ce qui ressemble à un robot.


Denis
Avatar
Pascale
Denis Beauregard
écrivait news::

Cela ressemble à un anti-pompage : on limite les visites aux "humains"
et on bloque tout ce qui ressemble à un robot.



Donc si c'est ça, c'est bien ce que j'avais compris, merci à vous deux.

--
Pascale
http://www.la-grille-verte.net