Toujours ce problème avec fopen() [RESOLU]

WRInaute discret
Bonsoir tout le monde

J'ai toujours ce problème avec fopen()
$read = fopen($HTTP_REFERER, "r") or die("<br />
<font face=\"Verdana\" size=\"-1\"><br><center>Sorry! You have either tried to access this page from an unauthorized domain <br>
or you tried to access this page directly from your browser.<br> Sorry, You must follow a link or be authorized.
<br /><br />Please click your browser's back button.</font><br><br></center>");

J'ai à chaque fois le message d'erreur alors que ça fonctionnait parfaitement avant.
J'ai vérifié et ini.allow-url-fopen est bien activé dans le php.ini.
J'attend toujours une réponse de mon hébergeur.

Une idée ?

D'avance merci.
 
WRInaute occasionnel
Essaye peut être:

($read = fopen($HTTP_REFERER, "r")) or die("<br />blablabla");

Car dans certains cas, il se peut que le langage cherche à faire un OU binaire au lieu d'un OU logique et donc, risque d'executer les 2 membres de ce OU et essaye de stocker le résultat dans $read...
La parenthèse permet parfois de corriger ce genre de problèmes...
 
WRInaute occasionnel
Aussi, remplace $HTTP_REFERER par getenv('HTTP_REFERER'), on ne sait jamais, des fois, un petit upgrade de PHP et certaines options sont modifiées au cours de l'install... Meme si les 2 sont équivalents, il est toujours plus sûr de passer par la fonction getenv.
 
WRInaute discret
Merci les amis, mais c'est toujours pareil.

($read = fopen(getenv("HTTP_REFERER"),"r")) or die(" blabla... ");

Alors qu'en début de la page d'impression, j'affiche :
echo "<br/><br/><b><i>Cette page est imprimée de :</i></b><i> $HTTP_REFERER<br></i>";

Donc c'est bien fopen() qui est en cause et ceci sans avoir rien changé dans mes scripts.
 
WRInaute occasionnel
J'utilise peu fopen dans ce cas de figure, mais il devrait normalement mettre une valeur dans errno en cas d'echec, non? Regarde peut-être de ce coté là...
 
WRInaute impliqué
Utiliser la variable $HTTP_REFERER est super déconseillé car elle n'existe pas forcément (l'as-tu testé au moins ?).
Fais un simple echo $_SERVER['HTTP_REFERER'] pour tester sa valeur.

Sinon si tu veux pas te prendre le chou, utilise l'impression normale et les CSS. Tu peux assigner une feuille de style particulière pour les impressions (media="print") et utiliser la propriété visibily:hidden ou display:none pour masquer des parties de ta page qui ne t'intéressent pas.

Voilou
 
Discussions similaires
Haut