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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascale
Le #23988731
J'ajoute que allow_url_fopen est bien entendu sur On.

--
Pascale
http://www.la-grille-verte.net
Bruno Baguette
Le #23988951
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
Pascale
Le #23989151
Bruno Baguette 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
Denis Beauregard
Le #23989141
Le Mon, 21 Nov 2011 17:41:07 +0100, Pascale

Bruno Baguette 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
Pascale
Le #23989351
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
Publicité
Poster une réponse
Anonyme