Problèmes après un changement de version de php

Résolu/Fermé
cocodu67...
Messages postés
3142
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
29 juillet 2022
- Modifié par cocodu67... le 19/02/2017 à 14:29
cocodu67...
Messages postés
3142
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
29 juillet 2022
- 20 févr. 2017 à 13:31
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

yg_be
Messages postés
20031
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 août 2022
1 185
19 févr. 2017 à 15:28
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?
0
cocodu67...
Messages postés
3142
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
29 juillet 2022
144
Modifié par cocodu67... le 19/02/2017 à 21:34
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^^
0
jordane45
Messages postés
36047
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 août 2022
4 275
19 févr. 2017 à 22:41
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://forums.commentcamarche.net/forum/affich-37584941-php-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 !
0
cocodu67...
Messages postés
3142
Date d'inscription
jeudi 28 janvier 2010
Statut
Membre
Dernière intervention
29 juillet 2022
144
20 févr. 2017 à 13:31
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
0