fopen et URL
Le
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
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

Poser une question


--
Pascale
http://www.la-grille-verte.net
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
Merci beaucoup, Bruno, ça marche, c'est impeccable !
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
Cela ressemble à un anti-pompage : on limite les visites aux "humains"
et on bloque tout ce qui ressemble à un robot.
Denis
Donc si c'est ça, c'est bien ce que j'avais compris, merci à vous deux.
--
Pascale
http://www.la-grille-verte.net