[RÉSOLU] Incompatibilité version PHP

Pour les problèmes avec l'installation ou l'utilisation du script - About install and use problems.

Modérateurs : boulmontjj, Pierre G., Malabar, Otomatic

Règles du forum
Pensez à effectuer une recherche et à consulter la FAQ, la réponse à votre question a de grandes chances d'avoir déjà été donnée ;-).
Dans votre message, n'oubliez pas de mentionner l'URL vers votre livre d'or, cela nous permet de vous aider bien plus efficacement :super:.
corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

[RÉSOLU] Incompatibilité version PHP

Messagepar corsesudlocation » Sam 13 Avr 2019, 19:05

Bonjour,
J'ai ajouté un livre d'or dans mon site mas-senyarich.fr, j'ai donc créé un base MySQL (version 5.5)chez mon hébergeur 1and1.com et à l'époque (2015),la version PHP était la 5.6.
Aujourd'hui, l'hébergeur oblige à utiliser la version 7.2. Dans mon espace client, j'ai donc validé ce changement mais lors de la vérification
du site, je constate que le livre d'or réalisé avec alexguestbook qui utilise un base de données ne fonctionne plus et je n'accède plus à la gestion
du livre d'or.
Temporairement j'ai donc choisie de revenir à la version PHP5.6, le livre d'or s'affiche de nouveau et j'ai l'accès à son administration.
J'ai jusqu'au 18 mai pour trouver une solution.
Message obtenu au lieu de l'affichage du livre d'or du Mas Senyarich:

Le Livre d'Or du Mas-Senyarich (ceci est l'entête de la page).
Deprecated : Methods with The same name as their class will not be constructors in a future version of PHP; alex_livre_sql has a deprecated constructor in
/homepages/25/d337280062/htdocs/Guestbook/db/MySQL.php on line 4

Fatal error : Uncaught Error : Call to undefined function mysql_connect() in /homepages/25/d337280062/htdocs/Guestbook/db/MySQL.php:27 Strack trace:#0
/homepages/25/d337280062/htdocs/Guestbook/include/livre_include.php(48): alex_livre_sql->alex_livre_sql('db602252340.db....''dbo602252340','hbab8qdn',
'db602252340',false)#1
/homepages/25/d337280062/htdocs/Guestbook/index.php(30): include('/homepages/25/d...')#2 /homepages/25/d337280062/htdocs/Livredor.php(73):
include('homepages/25/d...')#3{main} thrown in /homepages/25/d337280062/htdocs/Guestbook/db/MySQL on line 27

J'ai essayé des modifs suggérées sur le forum mais sans résultat, j'ai rechoisi la version php 5.6 afin que le livre d'or soit accessible en attendant
que je trouve une solution.
toutes les suggestions sont donc bienvenues.
Alain.

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Lun 15 Avr 2019, 09:25

Bonjour,

Voir viewtopic.php?f=1&t=3272#p16871

Nota : Tous les petits problèmes rencontrés ont été corrigés.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Mar 16 Avr 2019, 14:04

Bonjour Otomatic,

Merci pour la réponse, voici les modifs réalisées :
1. Création fichier mysql_functions.ph
2. Modification fichier MySQL.php
3. Création MySQLi.php
4. Modification fichier config_base.php
5. Modification du fichier ErroManager.php
6. Modification du fichier modeliXe.php
Toutes les modifs ont été réalisées avec les informations vues dans sujet résolu Erreur Php7 par Otomatic.
Résultats :
J'ai d'abord testé le livre d'or avec PHP 5.6 (OK), j'ai ensuite changé la version PHP pour passer en 7.2 et j'ai retesté le livre d'or avant de confimer
le changement : la première page du livre s'affiche, je clique sur suivante, la deuxième s'affiche aussi et au clic suivant j'obtiens le même message
d'erreur que initialement (avant modifs).
Je quitte mon hébergeur, je reteste mon site et le livre d'or ne s'affiche pas, j'ai directement le message d'erreur.
La seule modif non réalisée : changement de version dans le champ db_version de la table alex_livre_config que je ne trouve pas.
chaque nouvelle suggestion sera la bienvenue.
Alain

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Mar 16 Avr 2019, 15:13

corsesudlocation a écrit :Bonjour Otomatic,
Merci pour la réponse, voici les modifs réalisées :
1. Création fichier mysql_functions.ph
2. Modification fichier MySQL.php
... etc.

Ce n'est pas ce qui est expliqué dans le lien cité précédemment, il n'y a aucun fichier à créer, ils sont tous déjà existants.
Vous avez juste à copier tous les fichiers sauf setup.php et à vérifier que le fichier agb\config\config_base.php contient bien juste avant la balise de fermeture php ?> :

Code : Tout sélectionner

//Uncomment to see SQL queries. Don't use in production
//define('SEE_QUERIES', 1);
//Uncomment only if Guestbook and database are encoded utf-8
define('NAMES_UTF8', 1);
//$database_type = 'MySQL';
$database_type = 'MySQLi';

?>

- Il faudra également modifier le numéro de version dans la base de données, table alex_livre_config pour mettre 5.0.6 pour le champ db_version.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Mer 17 Avr 2019, 18:11

Bonjour,
Comme demandé, j'ai effectué ceci:
J'ai téléchargé le fichier agb_utf8.zip et dézipé dans un fichier agb_utf8.
En voulant vérifier le fichier config_base.php j'ai constaté qu'il était manquant dans le dossier Zip, je l'ai rajouté dans agb\config\.
J'ai envoyé tous les dossiers dans le dossier agb dans mon espace web sauf le setup.php.
Comme je ne suis pas certain que ce soit nécessaire, je n'ai pas fait de réinstallation, j'ai d'abord refait des essais.
Le livre d'or s'affiche en utilisant PHP 5.6 mais après passage en version PHP7.2 j'obtiens le même message d'erreur que précédemment.
En revanche, j'ai l'accès à mon espace administration du livre d'or.
La seule modif non réalisée : changement de version dans le champ db_version de la table alex_livre_config que je ne trouve pas.
Merci de m'éclairer.
D'autres manip. sont-elles nécessaire ?
Merci d'avance.
Alain

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Jeu 18 Avr 2019, 09:19

corsesudlocation a écrit :En voulant vérifier le fichier config_base.php j'ai constaté qu'il était manquant dans le dossier Zip, je l'ai rajouté dans agb\config\.

C'était “votre” fichier config/config_base.php, déjà présent sur votre site qu'il fallait vérifier et modifier
corsesudlocation a écrit :Comme je ne suis pas certain que ce soit nécessaire, je n'ai pas fait de réinstallation...

Il est vrai que « sauf setup.php puisque la base de données existe dèja » est un peu sibyllin, mais ça signifie bien que l'installation a déjà été faite.
corsesudlocation a écrit :mais après passage en version PHP7.2 j'obtiens le même message d'erreur que précédemment.

Vider le cache du navigateur.
corsesudlocation a écrit :changement de version dans le champ db_version de la table alex_livre_config que je ne trouve pas.

PhpMyAdmin, base de données idoine (peut-être agb), table alex_livre_config, le champ db_version est à la fin de la seconde page.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Jeu 18 Avr 2019, 11:58

Bonjour,
J'ai trouvé la table alex_livre_config chez mon hébergeur 1and1.com et j'ai modifié le contenu du champ db_version : 5.0.5 est passée à 5.0.6.
J'ai retesté mais j'obtiens encore le même message d'erreur cité précédement.
Manifestement, il subsiste un problème !
Merci d'avance pour une autre suggestion.
Alain

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Jeu 18 Avr 2019, 15:52

Bonjour,

Cette erreur : «  Call to undefined function mysql_connect() in /homepages/25/d337280062/htdocs/Guestbook/db/MySQL.php:27 Strack trace:#0 »
ne peut plus avoir lieu puisque avec $database_type = 'MySQLi'; dans le fichier config_base.php, ce n'est pas la fonction mysql_connect qui est appelé, mais la fonction mysqli_connect.

Mettez ici un copie du contenu de votre fichier config_base.php en prenant soin d'occulter les mots de passe.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Jeu 18 Avr 2019, 18:39

Bonjour,
Comme demandé, voici le contenu du fichier config_base.php.
<?php

define('NAMES_UTF8', 1);
//define('SEE_QUERIES', 1);
//$database_type = 'MySQL';
$database_type = 'MySQLi';


$f_mysql_host = 'db602252340.db.1and1.com';

$f_mysql_user = 'dbo602252340';

$f_mysql_pass = '********;

$f_mysql_base = 'db602252340';


$name_table['alex_livre_config'] = 'alex_livre_config';

$name_table['alex_livre_txt_lang'] = 'alex_livre_txt_lang';

$name_table['alex_livre_sessions'] = 'alex_livre_sessions';

$name_table['alex_livre_users'] = 'alex_livre_users';

$name_table['alex_livre_messages'] = 'alex_livre_messages';

$name_table['alex_livre_censure'] = 'alex_livre_censure';

$name_table['alex_livre_ban'] = 'alex_livre_ban';

$name_table['alex_livre_smileys'] = 'alex_livre_smileys';

$name_table['alex_img_verif_add'] = 'alex_livre_img_verif_add';

?>

Je vous remercie pour les prochaines suggestions.
Alain

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Ven 19 Avr 2019, 10:15

Bonjour,

Je n'ai pas d'autre suggestion.
Par acquit de conscience, je viens de refaire la manipulation complète en réel.
1 - Téléchargement du fichier http://aviatechno.net/files/agb_utf8.zip
2 - “Dézipage” dudit fichier agb_utf8.zip pour obtenir un dossier agb_utf8
3 - Ouvrir le dossier agb_utf8 pour vérifier la présence de tous les dossiers et fichiers agb
----- 11 dossiers et 13 fichiers ----

Code : Tout sélectionner

Répertoire de G:\Tampon\PHP\Alex Guestbook\5.0.6\agb_utf8
<REP>  admin
<REP>  boiteJava
<REP>  config
<REP>  db
<REP>  documentation
<REP>  fonts
<REP>  genImg
<REP>  images
<REP>  include
<REP>  languages
<REP>  templates
11 922 add_message.php
 8 483 changelog_en.txt
 9 222 changelog_fr.txt
36 574 index.php
 1 794 infos_code.php
 1 807 infos_spam.php
   300 installation.txt
 5 031 licence_english.txt
 6 022 licence_francais.txt
 1 131 README
 1 133 readme.txt
 9 942 setup.php
 2 106 smileys.php
   13 fichier(s)
   11 Rép(s)

4 - Par FTP copie de tous les dossiers (et leurs contenus) et de tous les fichiers — sauf setup.php — dans le dossier web du Livre d'Or, en remplaçant tous les dossiers et fichiers déjà présents.
Nota : Dans le dossier config à copier, il n'y a pas de fichier config_base.php. C'est normal, c'est le fichier web existant qui sera utilisé.
5 - Vérifier — et au besoin ajouter — que le fichier web agb/config/config_base.php contient bien, en principe juste avant la balise de fermeture php ?> :

Code : Tout sélectionner

//Uncomment to see SQL queries. Don't use in production
//define('SEE_QUERIES', 1);
//Uncomment only if Guestbook and database are encoded utf-8
define('NAMES_UTF8', 1);
//$database_type = 'MySQL';
$database_type = 'MySQLi';

?>

6 - Lancer le Livre d'Or web.
En principe, la réponse devrait être :

Code : Tout sélectionner

La version des fichiers est différente de la version de la base de données. Veuillez mettre à jour.

7 - Modifier la base de données, table alex_livre_config pour mettre 5.0.6 pour le champ db_version
8 - Relancer le Livre d'Or web
Aucun problème, pas d'erreurs, de PHP 5.3.5 à PHP 7.3.4 en passant par 5.6.40, 7.1.28 et 7.2.17

Mon propre Livre d'Or 5.0.6 fonctionne parfaitement sur mon site hébergé sous PHP 7.2.13.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Ven 19 Avr 2019, 14:37

Bonjour Otomatic,
merci beaucoup pour la réponse rapide, je n'ai pas le temps cet après-midi, je verrai cela demain à tête reposée.
Bonne journée
Alain

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Mar 23 Avr 2019, 09:52

Bonjour Otomatic,
J'ai suivi à la lettre vos indications. Mais à l'appel du livre d'or, j'obtiens toujours le message : Deprecate : Methods ..Guestbook/db/MySQL.php on
line 4.
Ce message est incompréhensible car sur le web j'utilise le dossier agb et non le dossier Guestbook que j'utilise en local.
Cependant j'ai encore l'accès à l'administration du livre d'or.
J'ai une interrogation concernant la modif du fichier agb\config\config_base.php.
Dans le forum une fois vous demander d'ajouter les lignes suivantes juste après <?php
define('NAMES_UTF8', 1);
//define('SEE_QUERIES', 1);
//$database_type ="MySQL";
$database_type="MySQLi";
Ailleurs, vous demandez de les ajouter juste avant ?> et la dernière ligne utilise les ' au lieu de ". Quel est la bonne synthaxe ?
J'ai l'impression que cela ne change rien mais j'aimerais savoir si l'ajout doit être au début ou à la fin du fichier?
Autre remarque :
Dans les paramètres généraux de ma base de données, l'interclassement pour connexion au serveur est utf8mb4_unicode_ci et la version de MySQL est 5.5.
Comme la version d'encodage est dans une liste déroutante elle aurait pu être modifiée par inadvertance.
Je me suis documenté sur le sujet sur le web mais comme cela est complexe, je n'ai rien modifié.
Aujourd'hui, il me reste 4 semaines pour trouver une solution, sinon je serais obligé de supprimer mon livre d'or.
Si je décide de recréer une nouvelle base de données, dois-je conserver 5.0.6 dans le champ db_version de la table alex_livre_config pour fonctionner
avc php 7.2 ?
Nous allons bien finir par trouver !
Alain

Otomatic
Modérateur
Modérateur
Messages : 744
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Incompatibilité version PHP

Messagepar Otomatic » Mar 23 Avr 2019, 14:16

corsesudlocation a écrit :Bonjour Otomatic,
J'ai suivi à la lettre vos indications. Mais à l'appel du livre d'or, j'obtiens toujours le message : Deprecate : Methods ..Guestbook/db/MySQL.php on
line 4. Ce message est incompréhensible car sur le web j'utilise le dossier agb et non le dossier Guestbook que j'utilise en local.

Ce n'est pas ce que dit le message d'erreur. Il montre que vous utiliser le dossier Guestbook et non agb et que la configuration $database_type="MySQLi"; n'est pas prise en compte puisque le fichier utilisé est MySQL.php et non MySQLi.php et c'est, je pense, la source de tous les problèmes.
corsesudlocation a écrit :Ailleurs, vous demandez de les ajouter juste avant ?> et la dernière ligne utilise les ' au lieu de ". Quel est la bonne synthaxe ?

Mettre les lignes juste avant la balise de fin ?> permet de surpasser une éventuelle déclaration $database_type située avant.

Dans ce cas, que l'on utilise des guillemets simples ' ou des doubles " pour les champs texte n'a aucune importance.
Voir les différences d'interprétation pour les chaînes de caractères dans la documentation PHP :
https://www.php.net/manual/fr/language.types.string.php

L'encodage base de données utf8mb4_unicode_ci est celui par défaut s'il n'y a aucune déclaration à la création des tables et des colonnes.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

corsesudlocation
Messages : 42
Inscription : Lun 23 Nov 2015, 12:00

Re: Incompatibilité version PHP

Messagepar corsesudlocation » Mar 23 Avr 2019, 18:38

Bonjour Otomatic,
Je vais résumer les anomalies pour essayer d'y voir plus clair.
Dans l'administration du livre d'or j'ai :
$chem_absolu='./Agb/';
include'./Agb/index.php';
Le fichier Agb\index.php contient bien $chem_absolu="./Agb/";
En revanche, dans Livredor.php, le chemin du choix du modèle de style livre alex 'alex_livre.css' passe par Guestbook !
$chem_absolu='./Guestbook/';
include'./Guestbook/index.php';
Malgré ces anomalies, le livre fonctionnait depuis 2015 mais en PHP 5.6.
J'ai modifié Livredor.php pour le rendre cohérant avec le reste. Quand j'appelle le livre d'or, l'entête s'affiche et plus bas, j'ai le message :
Please setup the script : setup.php or refresh your browser : refresh. Le lien Refresh n'a aucun effet et le setup, j'ai préféré éviter !
Autre remarque : J'ai constaté que Livredor.php n'est pas codé en utf8 est-ce aussi indispensable pour le PHP 7.2 ?
Mon livre d'or fonctionnait depuis 2015 chez 1and1.com avec la version PHP 5.6, les problèmes ne sont dus qu'au changement de version même s'il y avait
quelques anomalies compensées par le fait que le site contient les 2 dossiers Agp et Guestbook.
Initialement, j'avais prévu de n'utiliser Guestbook que pour la connexion à une base de données en locale mais j'ai fini par me mélanger les crayons !
Bonne soirée.
Alain

Malabar
Admin
Admin
Messages : 4072
Inscription : Lun 07 Août 2006, 09:46
Localisation : Lorient
Contact :

Re: Incompatibilité version PHP

Messagepar Malabar » Mar 23 Avr 2019, 23:31

Bonsoir,

Vous n'utilisez qu'un seul livre d'or donc vous ne devriez avoir qu'un seul dossier (soit agb soit guestbook).

Je pense qu'en copiant les fichiers depuis agb_utf8.zip vous avez écrasé votre fichier index.php situé dans le répertoire du livre d'or. Fichier dans lequel vous aviez avant la variable $chem_absolu avec une valeur modifiée pour faire l'include du livre dans livredor.php
Vous devez donc rétablir $chem_absolu dans ce fichier avec la même valeur que dans livredor.php
Le mâle à barre (Maxime)


Revenir vers « Installation & utilisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités