[Corrigé 3.1.41] Fatal error: Cannot redeclare date_cnv()

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
JoshuaSign_
Gsup LEVEL 1
Messages : 19
Enregistré le : lun. 6 mai 2019 16:17

Bonjour,

J'utilise actuellement la version 3.1.38 et lors de l'import de plusieurs mails j'ai rencontré cette erreur :

Code : Tout sélectionner

PHP Fatal error:  Cannot redeclare date_cnv() (previously declared in mail.php:578) in mail.php on line 578,
Cela se produit lorsque plusieurs mails sont importés et que l'on a activé le droit mail_auto_user_newticket qui permet d'envoyer une notification de confirmation de création de ticket.

En effet, la boucle d'import fait un include('core/mail.php'), c'est la fin de mail.php justement que la fonction date_cnv est déclarée, mais à cause de la boucle elle est redéclarée à chaque tour.
D'autre part, cette fonction existe aussi dans le fichier asset_list.php, là aussi à la toute fin du fichier.

En guise de workaround, j'ai déplacé la déclaration de date_cnv en début de ces fichiers, avec un check function_exists :

Code : Tout sélectionner

if (!function_exists("date_cnv")){
	// Date conversion
	function date_cnv ($date) {
		return substr($date,8,2) . "/" . substr($date,5,2) . "/" . substr($date,0,4);
	}
}
Avatar du membre
Flox
Administrateur du site
Messages : 9431
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

merci pour votre analyse les modifications ont été intégrées.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Répondre