[RESOLU] Scripts incompatibles php5.5 ?

Eléphanteau du PHP | 47 Messages

06 oct. 2014, 23:04

Bonjour, mon hébergeur a fait passer tous les serveurs à php version 5.5.
Malheureusement certains de mes scripts ne marchent plus (ça marchait jusqu'à php 5.2) :

Un script qui bloque certains user-agents de navigateurs :
$ipvisiteur = $_SERVER['REMOTE_ADDR'];
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$navigateur = $_SERVER["HTTP_USER_AGENT"];

$bannav = Array('HTTrack','hors ligne','httpdown','Offline','PageGrabber','SiteSnagger','Teleport','WebCopier','webcopy','WebMirror','WebReaper','WebZIP','008/0.83','a href','Atomic_Email_Hunter','betaBot','CyberPatrol','discobot','Email_Hunter','FileDownloader','findfiles','FrontPage','Gaisbot','HTTPClient','LeechFTP','LexiBot','libwww-perl','Microsoft','MJ12bot','MSIECrawler','MYIndexer','Purebot','Python-urllib','Snapbot','Tagoobot','WebCapture','webcollage','Webster','wikiwix','Xenu','Yanga WorldSearch','Wget');
foreach ($bannav as $banni)
{ $comparaison = strstr($navigateur, $banni);
if($comparaison!==false) {
echo '<center>Bot forbidden</center>';
exit;}}
Et un script qui bloque certains hosts-names de serveurs :
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

$banhost = Array('31.184.238.','31.214.145.','163data.com.cn','smtp.','sovam.net.ua','windowsnodes');
foreach ($banhost as $banni)
{ $comparaison = strstr($hostname, $banni);
if($comparaison!==false) {
echo '<center>No Spambot</center>';
exit;}}
Comment les mettre à jour pour qu'ils soient compatibles ?
Modifié en dernier par fatalfury le 07 oct. 2014, 10:38, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 oct. 2014, 09:31

salut,

le code que tu indiques ne peux pas ne pas fonctionner, il est syntaxiquement correcte.
plus d'info sur la migration des versions de php http://fr.php.net/manual/en/migration55.php

par contre pour faire bien ce serait pas mal de tester les index des tableaux avant de les utiliser les entêtes ne sont pas forcément fournie
pour ce que tu peux trouver dans $_SERVER : http://fr.php.net/manual/fr/reserved.va ... server.php

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 47 Messages

07 oct. 2014, 09:45

En fait, c'est bon, ça marche !
C'est parce que parfois, il y a erreur de transfert quand je remplace trop souvent les fichiers sur le serveur ftp.