[RESOLU] Error 500 avec switch depuis passage en php7

Petit nouveau ! | 8 Messages

19 juin 2020, 15:16

Bonjour,

Je ne pense pas que j'avais cette erreur 500 avant le passage de php 5.x à php 7.

Dans un fichier, j'ai cette portion de code

switch ($mois)
{
case 01:
$mois_inscription = ' janvier ';
break;
case 02:
$mois_inscription = ' février ';
break;
case 03:
$mois_inscription = ' mars ';
break;
case 04:
$mois_inscription = ' avril ';
break;
case 05:
$mois_inscription = ' mai ';
break;
case 06:
$mois_inscription = ' juin ';
break;
case 07:
$mois_inscription = ' juillet ';
break;
case 08:
$mois_inscription = ' août ';
break;
case 09:
$mois_inscription = ' septembre ';
break;
case 10:
$mois_inscription = ' octobre ';
break;
case 11:
$mois_inscription = ' novembre ';
break;
case 12:
$mois_inscription = ' décembre ';
break;
}


qui déclenche une erreur 500 si elle présente, et ne déclenche pas d'erreur si je vire ce passage. Quel est le problème ? Je cherche si il y a imcompatibilité du switch avec php 7 mais je ne trouve rien.

Merci de votre aide

Petit nouveau ! | 8 Messages

19 juin 2020, 15:25

En réfléchissant, je me demande s'il ne s'agit pas d'un problème de longueur d'exécution.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8627 Messages

19 juin 2020, 15:41

Si il y a une erreur 500, il faut que tu regarde dans les logs de ton serveur Apache/PHP pour voir le message d'erreur.
Sans message d'erreur, impossible de debuguer efficacement ;-)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 8 Messages

19 juin 2020, 16:04

Oups, merci arthur. Je ne sais pas faire, mais je vais de ce pas sur ovh chercher ça.

en attendant mieux, je me suis dit qu'afficher le n° du mois, au lieu du libellé, n'était pas dramatique

Mammouth du PHP | 1701 Messages

19 juin 2020, 16:07

je simplifierais le code comme suis

$mois_en_lettre = ['', 'Janvier', ...];
$mois_inscription = $mois_en_lettre[$mois];
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 8 Messages

19 juin 2020, 16:10

Bonjour Spols, j'essaye tout de suite

Petit nouveau ! | 8 Messages

19 juin 2020, 16:21

C'est pas loin : déjà il n'y a plus l'erreur 500. Je dois juste modifier

$mois_en_lettre =array('Janvier','Février','mars','Avril','mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
$mois_inscription = $mois_en_lettre[$mois];

pour que le numéro du mois ne soit pas 01,02 etc mais 1,2,3

Avatar du membre
Mammouth du PHP | 1258 Messages

19 juin 2020, 16:36

Tu peux aussi indexer le tableau sur des clés 01, 02, etc.
$mois_en_lettre = array(
  '01' => 'Janvier',
  '02' => 'Février',
  // ...
Sinon si c'est la date du jour un date('n') retourne le mois sans les zéros initiaux. Bien penser dans ce cas au décalage des index du tableau avec la façon dont tu l'as déclaré (janvier est en 0 et décembre en 11).
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Petit nouveau ! | 8 Messages

19 juin 2020, 16:39

Bonjour Salan,

Merci à tous, le problème est résolu avec le tableau