Aide pour php 7

204 views
Skip to first unread message

Lisa

unread,
Dec 15, 2019, 9:22:18 AM12/15/19
to Expoactes
Bonjour, J'ai vu passé des messages pour la maj d'Expo Actes vers la version PHP7
Toutefois, je n'ai pas pu m'en occuper pour des raisons familiales. Je ne retrouve plus la méthode dans ma messagerie
Pouvez-vous m'indiquer la procédure à suivre ?
D'avance je vous remercie
Bien à vous
Lisa

Lisa

unread,
Dec 15, 2019, 3:42:03 PM12/15/19
to Expoactes
j'ai un serveur XAMPP en version en 7.3, puis j'ai fais les modifications suivantes :

C'est gratuit et il suffit de s'inscrire.

2 fichiers sont à récupérer : mysql2i.class.php et mysql2i.func.php, il faut les placer dans le répertoire expoactes/tools/.

Ensuite, et pour ma part, j'ai modifié le début des 3 fichiers suivants dans tools : function.php, adlcutils.php et actutils.php.

Tout en haut sous les 5/6 lignes de commentaire il faut rajouter : include_once('mysql2i.class.php');   // pour PHP 7.2

 

Dans PHP 7.2 il faut oublier l'utilisation de "while ...... = each()"que l'on trouve 1 fois dans 2 fichiers :

- dans admin/charge.php vers la ligne 528 il faut remplacer
while (list($line_num, $line) = each($csv) and (time()-$T0<$Max_time)) 

{

par

foreach($csv as $line_num => $line) // nouvelle syntaxe PHP 7.2
{
if  (time()-$T0>$Max_time) break ; // nouvelle syntaxe PHP 7.2

- dans tools/TraceIP/trace_ip.php vers la ligne 110  il faut remplacer

while(list($key, $val) = each($array_server_values))

par

foreach($array_server_values as $key => $val)  // nouvelle syntaxe PHP 7.2


MAIS LORS DE L'installation j'ai un message d'erreur


Parse error: syntax error, unexpected ':', expecting end of file in D:\XAMPP\htdocs\expoactes\tools\function.php on line 12


cette ligne correspond à   include_once('mysql2i.class.php');   // pour PHP 7.2


D'avance merci pour votre aide

sandy andriant

unread,
Dec 15, 2019, 3:48:49 PM12/15/19
to expo...@googlegroups.com
Bonsoir,

Le message d'erreur correspond à la modification effectuée dans le fichier function.php.
Il semble que vous ayez mis deux-points ' : ' au lieu d'un point-virgule ' ; ' à la fin de la ligne.
Cordialement
Sandy-Pascal Andriant
--
Voir aussi le site : http://expoactes.monrezo.be/
et le Wiki : https://sites.google.com/site/expoactes/
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe « Expoactes » de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse expo...@googlegroups.com
Pour résilier votre abonnement à ce groupe, envoyez un courrier
électronique à l'adresse expoactes-...@googlegroups.com
Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.be/group/expoactes
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Expoactes".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse expoactes+...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/expoactes/1f055db1-6909-4b09-aa48-0e8acefe321a%40googlegroups.com.

Lisa

unread,
Dec 17, 2019, 2:32:53 PM12/17/19
to Expoactes
Bonjour, merci pour votre réponse, j'ai réglè ce soucis, J'essaye de réinstaller expoactes sur un serveur XAMPP - PHP version 7.3.9
maintenant j'ai un autre message d'erreur
Warning: mysqli_error() expects parameter 1 to be mysqli, bool given in D:\XAMPP\htdocs\expoactes\tools\mysql2i.class.php on line 136
          return mysqli_error($link);


Pouvez-vous m'aider ?

Existe t'il une procédure pour installer Expoactes avec les nouvelles modifications pour php 7.2 ou 7.3
D'avance merci
Lisa




Le dimanche 15 décembre 2019 15:22:18 UTC+1, Lisa a écrit :

Bernard Giroud

unread,
Dec 18, 2019, 12:50:49 PM12/18/19
to Expoactes


Le mardi 17 décembre 2019 20:32:53 UTC+1, Lisa a écrit :
Bonjour, merci pour votre réponse, j'ai réglè ce soucis, J'essaye de réinstaller expoactes sur un serveur XAMPP - PHP version 7.3.9
maintenant j'ai un autre message d'erreur
Warning: mysqli_error() expects parameter 1 to be mysqli, bool given in D:\XAMPP\htdocs\expoactes\tools\mysql2i.class.php on line 136
          return mysqli_error($link);


Pouvez-vous m'aider ?

Existe t'il une procédure pour installer Expoactes avec les nouvelles modifications pour php 7.2 ou 7.3
D'avance merci
Lisa


Ce message peut être la conséquence d'une connexion invalide (nom du serveur, utilisateur ou mot de passe erroné). Il y a souvent des informations complémentaires, soit avant soit après. Dans mon cas, si je force un mot de passe erroné, j'obtiens ceci :
<<<
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /home/bg_dev/CGS/fr/www/actes/tools/mysql2i.class.php on line 136

Erreur : 011: Impossible d'ouvrir la connexion au serveur MySQL avec l'utilisateur présenté :

 >>>

Est-ce votre cas ?

Sinon, concernant la procédure, elle ne devrait pas être différente de l'habituel, si ce n'est que toutes les modifications de code doivent être faites avant l'installation elle-même.

Bonne chance !

Bernard Giroud
Webmestre CGS

Lisa

unread,
Dec 19, 2019, 3:17:44 AM12/19/19
to Expoactes
Bonjour, j'avance la connexion à la base de donnée est ok maintenant mais j'ai de nouveau un message d'erreur pour la création des tables

Invalid default value for 'LADATE'

voici le message complet

Vérification de l'environnement

Base des actes et des utilisateurs :

Connexion au serveur MySQL : OK

Connexion à la base de données : OK

Test de création du fichier ../admin/_upload/13301872645dfb309069da4.tmp : OK

Création des tables de données

-> Erreur :

Invalid default value for 'LADATE'
CREATE TABLE IF NOT EXISTS act_dec3 ( BIDON varchar(10) COLLATE latin1_general_ci DEFAULT NULL, CODCOM varchar(12) COLLATE latin1_general_ci DEFAULT NULL, COMMUNE varchar(40) COLLATE latin1_general_ci DEFAULT NULL, CODDEP varchar(10) COLLATE latin1_general_ci DEFAULT NULL, DEPART varchar(40) COLLATE latin1_general_ci DEFAULT NULL, TYPACT varchar(1) COLLATE latin1_general_ci DEFAULT 'D', DATETXT varchar(10) COLLATE latin1_general_ci DEFAULT NULL, DREPUB varchar(25) COLLATE latin1_general_ci DEFAULT NULL, COTE varchar(40) COLLATE latin1_general_ci DEFAULT NULL, LIBRE varchar(50) COLLATE latin1_general_ci DEFAULT NULL, NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, ORI varchar(35) COLLATE latin1_general_ci DEFAULT NULL, DNAIS varchar(10) COLLATE latin1_general_ci DEFAULT NULL, SEXE char(1) COLLATE latin1_general_ci DEFAULT NULL, AGE varchar(15) COLLATE latin1_general_ci DEFAULT NULL, COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, PRO varchar(35) COLLATE latin1_general_ci DEFAULT NULL, C_NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, C_PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, C_COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, C_PRO varchar(30) COLLATE latin1_general_ci DEFAULT NULL, P_NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, P_PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, P_COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, P_PRO varchar(35) COLLATE latin1_general_ci DEFAULT NULL, M_NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, M_PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, M_COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, M_PRO varchar(35) COLLATE latin1_general_ci DEFAULT NULL, T1_NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, T1_PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, T1_COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, T2_NOM varchar(30) COLLATE latin1_general_ci DEFAULT NULL, T2_PRE varchar(35) COLLATE latin1_general_ci DEFAULT NULL, T2_COM varchar(70) COLLATE latin1_general_ci DEFAULT NULL, COMGEN text COLLATE latin1_general_ci, IDNIM int(11) DEFAULT NULL, PHOTOS text COLLATE latin1_general_ci, LADATE date DEFAULT '0000-00-00', ID int(11) NOT NULL AUTO_INCREMENT, DEPOSANT int(11) DEFAULT NULL, PHOTOGRA varchar(40) COLLATE latin1_general_ci DEFAULT NULL, RELEVEUR varchar(40) COLLATE latin1_general_ci DEFAULT NULL, VERIFIEU varchar(40) COLLATE latin1_general_ci DEFAULT NULL, DTDEPOT date DEFAULT '0000-00-00', DTMODIF date DEFAULT '0000-00-00', PRIMARY KEY (ID), KEY LADATE (LADATE), KEY IDNIM (IDNIM), KEY COM_DEP (COMMUNE(10),DEPART(4)), KEY NOM (NOM(10)), KEY C_NOM (C_NOM(10)), KEY P_NOM (P_NOM(10)), KEY M_NOM (M_NOM(10)), KEY ORI (ORI(12)) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

Erreur : 042 : Problème prendant l'exécution du script de génération des tables.

Consultez la liste des codes d'erreurs.


Le dimanche 15 décembre 2019 15:22:18 UTC+1, Lisa a écrit :

Bernard Giroud

unread,
Dec 19, 2019, 3:36:20 AM12/19/19
to Expoactes


Le jeudi 19 décembre 2019 09:17:44 UTC+1, Lisa a écrit :
Bonjour, j'avance la connexion à la base de donnée est ok maintenant mais j'ai de nouveau un message d'erreur pour la création des tables

Invalid default value for 'LADATE'

voici le message complet

Vérification de l'environnement

Base des actes et des utilisateurs :

Connexion au serveur MySQL : OK

Connexion à la base de données : OK

Test de création du fichier ../admin/_upload/13301872645dfb309069da4.tmp : OK

Création des tables de données

-> Erreur :

Invalid default value for 'LADATE'

CREATE TABLE IF NOT EXISTS act_dec3 ( [...], LADATE date DEFAULT '0000-00-00',[...]

Erreur : 042 : Problème prendant l'exécution du script de génération des tables.

Consultez la liste des codes d'erreurs.




J'ai aussi ce problème sur ma machine de développement. Il semblerait que des versions récentes de MySQL n'acceptent plus d'avoir une valeur par défaut de '0000-00-00' dont les jours et mois sont manifestement invalides avec des 0 pour les 2 zones.
La solution théorique serait de remplacer TOUTES les valeurs par défaut de dates de  '0000-00-00' à quelque chose comme NULL ou '0000-01-01' dans les scripts de chargement de tables (creetables.sql et creetables3.sql dans répertoire install), mais je n'ai pas eu le temps de me pencher sur les conséquences dans le code.
D'autre part, une date incomplète comme '??/??/1743' va également générer un problème lors d'une restauration ou d'un chargement Nimègue.
Je vais essayer de regarder, mais étant très occupé pour les 3 semaines à venir, je ne peux avancer une date pour évaluer l'ensemble des changements nécessaires, encore moins pour proposer une solution globale et ses patches.

Joyeux Noël tout de même !

Bernard Giroud
Webmestre CGS

Bernard Giroud

unread,
Dec 19, 2019, 1:09:26 PM12/19/19
to Expoactes
En complément de mon analyse rapide ci-dessus, il semblerait que ce soit la conséquence des options NO_ZERO_IN_DATE et NO_ZERO_DATE qui sont maintenant par défaut. La solution à priori la plus simple c'est de modifier les paramètres du serveur au niveau global pour ne pas avoir ces options en vigueur.

Pour vérifier l'hypothèse, donner la commande "select @@global.sql_mode;" sous phpMyAdmin. Vous devriez avoir quelque chose comme :
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

La traduction du manuel de référence à cette adresse donne "Pour établir le mode SQL au démarrage du serveur, utiliser l'option --sql-mode="modes" sur la ligne de commande, ou sql-mode="modes" dans un fichier d'option comme my.cnf (Unix) ou my.ini (Windows)." ou "modes" est remplacé par
"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Je n'ai pas de configuration Windows pour essayer la manip et n'ai pas le temps de la tester sous Linux, mais je pense qu'elle ne devrait pas poser de problème et que c'est une solution temporaire avant d'avoir une solution plus pérenne.

Bernard Giroud
Webmestre CGS


"

Gérard Liénard

unread,
Dec 19, 2019, 11:03:51 PM12/19/19
to expo...@googlegroups.com

Bonjour,

 

C’est une erreur MySQL liée au défaut  d’un champ date. Il faut modifier le fichier de configuration de MySQL (my.ini) et supprimer l’option NO_ZERO_DATE dans sql-mode et relancer MySQL.

Il est également possible de modifier les scripts de création de table, Emmanuel a donné la liste des modifications à effectuer sur le forum fin mars 2019.

 

Cordialement,

 

Gérard LIENARD

Cercle Généalogique de la Brie

 

 

De : expo...@googlegroups.com [mailto:expo...@googlegroups.com] De la part de Bernard Giroud
Envoyé : jeudi 19 décembre 2019 19:09
À : Expoactes
Objet : [ExpoActes] Re: Aide pour php 7

--

Voir aussi le site : http://expoactes.monrezo.be/
et le Wiki : https://sites.google.com/site/expoactes/
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe « Expoactes » de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse expo...@googlegroups.com
Pour résilier votre abonnement à ce groupe, envoyez un courrier
électronique à l'adresse expoactes-...@googlegroups.com
Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.be/group/expoactes
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Expoactes".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse expoactes+...@googlegroups.com.

Gérard Liénard

unread,
Dec 19, 2019, 11:13:44 PM12/19/19
to expo...@googlegroups.com

En complément, voici les modifications proposées par Emmanuel :

 

   Je profite de ce message pour évoquer le problème d'installation avec les dates :

dans le fichier install/creetables3.sql
remplacer    date DEFAULT '0000-00-00',
par :  date DEFAULT '1000-01-01',

pour LADATE, DTDEPOT, DTMODIF et maj_solde -> en tout 13 modifications

 

 

 

 

Bonjour,

 

C’est une erreur MySQL liée au défaut  d’un champ date. Il faut modifier le fichier de configuration de MySQL (my.ini) et supprimer l’option NO_ZERO_DATE dans sql-mode et relancer MySQL.

Il est également possible de modifier les scripts de création de table, Emmanuel a donné la liste des modifications à effectuer sur le forum fin mars 2019.

 

Cordialement,

 

Gérard LIENARD

Cercle Généalogique de la Brie

 

 

De : expo...@googlegroups.com [mailto:expo...@googlegroups.com] De la part de Bernard Giroud
Envoyé : jeudi 19 décembre 2019 19:09
À : Expoactes
Objet : [ExpoActes] Re: Aide pour php 7

 

--

Lisa

unread,
Dec 20, 2019, 2:43:00 PM12/20/19
to Expoactes
Merci beaucoup, pour votre aide, cela a fonctionné
Lisa

Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse expo...@googlegroups.com.

Lisa

unread,
Dec 20, 2019, 2:44:09 PM12/20/19
to Expoactes
J'ai encore une petite question, je peux mettre le site de one and one à jour avec les modifs avant de basculer en PHP 7.2
D'avance merci

Le vendredi 20 décembre 2019 05:13:44 UTC+1, Gérard Liénard a écrit :

Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse expo...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages