Problèmes après un changement de version de php [Résolu/Fermé]

Signaler
Messages postés
3104
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
1 mai 2021
-
Messages postés
3104
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
1 mai 2021
-
Bonjour,

J'ai vu que je suis encore en PHP 5.5 chez mon hébergeur et j'ai alors voulu faire le grand saut vers la 7.1 mais des choses ne fonctionnent plus.

Si besoin le retour en arrière est possible mais j'aurais bien aimé une version récente de PHP ...

Voici quelques trucs utilisés sur la page de connexion qui ne fonctionne plus:
if (isset($_POST['submit']))

include

Securite::NettoyerChaine($chaine)
(bien sûr le include du fichier avec la class et la fonction se trouve avant)
if(ctype_alnum($i_denti_fiant)!=true)

if(strlen($i_denti_fiant)>16)

count($resultat_recherche_mdp_site)

try {
            $req_recherche_mdp_site = $pdo_comptes_jou->prepare('SELECT Mdp1, ConnexionAutorisee FROM Comptes WHERE PlayerID = BINARY :ID;');
            $req_recherche_mdp_site->bindParam(':ID', $i_denti_fiant, PDO::PARAM_STR, 16);
            $req_recherche_mdp_site->execute();
            $resultat_recherche_mdp_site = $req_recherche_mdp_site->fetchAll();
        } catch (Exception $e) {
            echo "<center>Erreur lors de l'inscription, veuillez nous contacter</center><br/><br/>";
        }


$maintenant = new DateTime();

$date_recuperee  = new DateTime($resultat_recherche_dernieres_connexions[$i][0]);

$difference = $maintenant->diff($date_recuperee)->format('%d');


 $timespam = date("Y-m-d H:i:s");

 $IP = $_SERVER['REMOTE_ADDR'];

$hote = gethostbyaddr($_SERVER['REMOTE_ADDR']);

$ProxyHote = 'Proxy : ' . $_SERVER['HTTP_X_FORWARDED_FOR'] . ' - Hôte : ' . $hote;


$chaine= str_replace('(', '', $chaine);


$_GET['redi']


$_SESSION['nbressaisJ']


echo "<meta http-equiv='refresh' content='0;url=index.php' />";


Et voici quelques trucs:
https://prnt.sc/eao719

Savez vous ce qui n'est plus compatible avec PHP 7.1 ? J'ai beau chercher pas moyen de trouver ...

Merci d'avance

---------------

Edit, sur Google Chrome c'est un peu mieux car au lieu d'afficher un bout de la page et de rester bloqué, ça me met ça:

Probleme temporaire detecte.

Le contenu n'a pas pu etre affiche : pas de panique.
Nous vous invitons a simplement rafraichir la page web ou a patienter quelques instants.
Vous gerez ce site internet ? Plusieurs causes sont possibles : la ressource appelee n'est pas disponible ou une surcharge est presente sur votre espace d'hebergement.
PowerBoost Server

2 réponses

Messages postés
15531
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
849
bonjour, tes trucs sont peu clairs: pourquoi ne pas nous montrer l'ensemble de ton code? et nous décrire ce que tu observes quand tu appelles la page?
Messages postés
3104
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
1 mai 2021
139
Bonsoir,

J'y ais passé toute mon après midi mais j'ai trouvé ...
Dans la page où se trouve la fonction NettoyerChaine j'utilisais mysql_escape_string qui n'existe plus dans PHP 7.
J'utilisais aussi sql_regcase qui n'existe plus.
Et pour finir j'ai dû remplacer quelques require_once par des include (ça j'ai pas compris mais bon ...).

J'ai aussi découvert un autre soucis.

Par exemple si dans la page /toto/partie/gerercomptes/index.php je fais appel à une fonction verif() qui se trouve dans /toto/partie/verifier.php cela ne fonctionne pas si dans la page verifier.php j'ai include(../fonction.php) qui se trouve dans /toto/fonction.php et je suis alors obligé de faire include(../../fonction.php) alors qu'avant je n'avais pas ce problème, je pouvais faire appel à un fichier qui se trouve dans un répertoire avant celui où je suis qui lui même fait appel à un fichier qui se trouve dans le répertoire encore avant.

Je ne sais pas si quelqu'un a compris ce paragraphe mais en résumé, si vous avez une page blanche, qui n'est plus blanche en retirant un include, vérifiez les pages auxquelles fait appel la page que vous avez mis en include.

Pour une fois que je voulais coder correctement sans dupliquer de code :P

Bonne soirée^^
Messages postés
32362
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 mai 2021
3 466
Bonjour,

Je ne sais pas si quelqu'un a compris ce paragraphe mais en résumé, si vous avez une page blanche, qui n'est plus blanche en retirant un include, vérifiez les pages auxquelles fait appel la page que vous avez mis en include.

Pour ce qui est des REQUIRE .. ils sont compatibles avec php7.
Si ça te génère des erreurs .. c'est simplement que le chemin vers les fichiers est erroné.

Une page blanche reflète des erreurs dans ton code. (des require en echec par exemple... mais pas que ! )

Pour coder proprement tu dois impérativement afficher TOUTES les erreurs PHP (sur tes différentes pages pour être sûr...)
Pour se faire, on utilise les lignes de code suivante (qu'on place en début de code)
error_reporting(E_ALL);
ini_set('display-errors','on');


Et comme tu sembles utiliser le PDO pour te connecter à ta BDD ... penses également à activer la gestion des erreurs pdo : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Bien entendu.. toutes les instructions (issues de l'ancienne techno mysql (tel que : mysql_escape_string et donc TOUTES les instrucction mysql_* ) sont à proscrire !
Messages postés
3104
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
1 mai 2021
139
Bonjour,

J'étais pourtant persuadé que tout fonctionnait très bien avec les include et require_once. Cependant j'avais peut être effectué une modification dans les fichiers sur mon PC que je n'ai pas transférée sur le FTP du coup lots de l'upload je l'ai à peine remarqué. En tout cas ça fonctionne à présent.

Merci pour le bout de code, cela me sera certainement très utile.

Bonne journée