Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
après avoir fouillé un peu partout sur le forum et sur le net, je n'arrive toujours pas à comprendre où est mon problème... Je m'explique:
J'ai un fichier Language.php qui recherche dans ma Bdd les traductions de mes noms de page et de mes titres de page. Ce fichier crée dynamiquement des constantes globales en fonction de la langue utilisée.
//on recherche si on a déjà quelque chose pour cette langue
$query_AllDetailsConstant = "SELECT * FROM `".$DiminutifBD."pages_details` WHERE Language= '". ucfirst($Language) ."' ";
$AllDetailsConstant = mysqli_query($connexion,$query_AllDetailsConstant) or die(mysqli_error($connexion));
$row_AllDetailsConstant = mysqli_fetch_assoc($AllDetailsConstant);
$totalRows_AllDetailsConstant = mysqli_num_rows($AllDetailsConstant);
do{
define("MENU_".$row_AllDetailsConstant['IdPage']."_".strtoupper($row_AllDetailsConstant['Language']) ,$row_AllDetailsConstant['DenominationPage']);
define("MENU_".$row_AllDetailsConstant['IdPage']."_TITLE_".strtoupper($row_AllDetailsConstant['Language']) ,$row_AllDetailsConstant['Title']);
}while($row_AllDetailsConstant = mysqli_fetch_assoc($AllDetailsConstant));
Ce fichier Language.php est inclus dans mon fichier Page.php. Ce fichier, Page.php, affiche les informations reprises dans ces constantes globales en fonction de l'ID de page reçu.
Depuis le passage du serveur en Php 7.2, le message d'erreur suivant s'affiche:
Warning: Use of undefined constant MENU_ - assumed 'MENU_' (this will throw an Error in a future version of PHP)
Ma variable s'affiche néanmoins bien suite à ce message d'erreur. D'où mon incompréhension !?
J'ai trouvé pas mal de chose sur le net, mais cela n'a pas vraiment éclairé ma lanterne.
Si quelqu'un pouvait m'aider, ce serait bien sympa car je commence à m'arracher les cheveux
Dernière modification par Godjojo (30-11-2018 08:45:31)
Hors ligne
Dans mon cas, j'évite d'utiliser des constante.
Je me suis créé une fonction dans ma Class pour sortir le texte;
- La fonction va ajouter avant le NAME_STRING la langue (FR_ ou EN_)
- La fonction va prendre le NAME_STRING édité et va chercher dans la DB, si n'existe pas il crée un string facilement retrouvable; MISSING:NAME_STRING
- La array() (optionnel) est pour remplacer des termes, par exemple ton NAME_STRING="Je m'appelle %username%" et dans la fonction je prend chaque valeur du array (si existe) et remplace le "variable" par son "value", par exemple;
pour visualiser l'action
- Le résultat de la fonction est un "return", alors tu peux inclure facilement dans ton code.
Exemple de code, je saute des codes et des syntaxes pour passer à l'essentiel.
ET au passage, je te sugère d'utiliser une Class pour ton SQL, comme Medoo, comme ça tes syntaxes sont plus simples et sécuritaire.
Hors ligne
Un grand merci pour ta fonction, je vais grandement améliorer mon code grâce à toi...
Pour le problème que je présentais ici, le soucis venait du fait que j'appelais ma constante :
Le moteur recherchait une constante :
Celle-ci n'existait pas...
j'ai donc fait ceci :
Voilà tout... Bref, encore quelques siècles et je devrais être au top
Donc, j'ai trouvé mon où était mon problème (Pas tout seul, on m'a aidé), et la fonction que tu m'as fourni va me permettre d'optimiser mon code, encore merci! D'une pierre deux coups
Hors ligne
Pages :: 1