mercredi 27 juillet 2016 (), par
Lorsque les erreurs et autres messages à caractère informatif sont gérés dans les différents blocs, et empilés dans une variable qui sera au final affichée dans un bloc dédié (lequel peut être dépliant grâce au CSS).
Si l’on souhaite un style différent selon le niveau d’erreur atteint, les différents blocs peuvent faire appel à cette fonction, qui use d’opérateurs ternaires.
Il est aussi possible d’utiliser une variable globale pour le niveau d’erreur actuel, ce qui simplifie les appels à la fonction.
3 niveaux d’erreur sont gérés :
function raise_debuglvl($lvl,$actuel){
$debuglvl=$actuel;
$debuglvl=(($lvl=="info")&&($actuel=="info"))?"info":$debuglvl;
$debuglvl=(($lvl=="debug")&&($actuel!="error"))?"debug":$debuglvl;
$debuglvl=($lvl=="error")?"error":$debuglvl;
return $debuglvl;
}
La déclaration du bloc d’affichage :
// bloc d'information - l'image sert au déploiement mais reste affichée dans le bloc déplié
if ($debug!=""){
switch ($debuglvl) {
case "info" : $debugimg="notif-info.gif"; break; // ou action-s-valide
case "debug" : $debugimg="notif-warning.gif"; break;
case "error" : $debugimg="notif-error.gif"; break;
default: $debugimg="notif-warning.gif"; break;
}
echo "<div id=\"debug\" class=\"$debuglvl\">
<img src=\"imj/$debugimg\" alt=\"$debuglvl\"/>
$debug
</div>";
}
La page appelante déclare les variables $debug
et $info
:
$debug
contiendra les messages à afficher dans le bloc dédié$info
contiendra les messages à afficher dans la page.Les pages appelées (via include
ou require
empileront dans ces variables les messages qu’elles souhaitent soulever.
$debug.="message";
ou $info.="message";
, cette dernière variable pouvant être affichée dans la page puis vidée.
Pas vraiment une fonction, mais un petit bout de code à mettre dans la section <head>...</head>
.
Si la page est accédée en http non sécurisé, on redirige vers le mode sécurisé https, via une balise meta.
// 'HTTPS' est défini à une valeur non-vide si le script a été appelé via le protocole HTTPS.
if ((!isset($_SERVER['HTTPS']))||($_SERVER['HTTPS']=="")){
$url="https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo "<meta http-equiv='Refresh' content=\"0; url=$url\"/>";
}