Bug sur fonction colors cadre en fonction level id
ivan
-
sipherion Messages postés 1809 Date d'inscription Statut Membre Dernière intervention -
sipherion Messages postés 1809 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fais une fonction
et sur ma page pour affiche
le souci il ne veux pas colorer mon cadre en fonction des level pseudo
merci
j'ai fais une fonction
function GetCadreSelonSexeColorById($membreId,$alignCenter=true,$class='avatar_membre') { if(ctype_digit($membreId)||is_int($membreId)) { $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId); $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId); $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId); $level = intval($rang); $str = ($alignCenter) ? '' : ''; $avatarHighLevel = function($level) use($class){ $str = ""; if($level == ADMIN) $str .= '<div class="page_admi"></div>'; else if($level == MODO) $str .= '<div class="page_modo"></div>'; return $str; }; if(!empty($value)) { if(file_exists(DIR_AVATAR."/avatar_membres/".$value)) $str .= '<div class="page_question"></div>'; else{ $a = $avatarHighLevel($level); if($a!="") $str .= $a; else $str .= '<div class="page_question"></div>'; } }else { if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME) $str .= '<a class="separator" title=""></a>'; $a = $avatarHighLevel($level); if($a!="") $str .= $a; else if($level == NEWSER) $str .= '<div class="page_newswer"></div>'; else if($sex===HOMME && $value=="") $str .= '<div class="page_homme"></div>'; else if($sex===FEMME && $value=="") $str .= '<div class="page_femme"></div>'; else { $str .= '<div class="page_question"></div>'; } } $str .= ($alignCenter) ? "" : ''; return $str; }else{ return '<div class="page_question"></div>'; } }
et sur ma page pour affiche
<?php ''. GetCadreSelonSexeColorById($data1['membre_sexe'],$data1['membre_id']) . '';?>
le souci il ne veux pas colorer mon cadre en fonction des level pseudo
.page_admi { background-color:#FF0000; } .page_modo { background-color:#00FF00; } .page_homme { background-color:#0000FF; } .page_femme { background-color:#FF00FF; }
merci
A voir également:
- Bug sur fonction colors cadre en fonction level id
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Fonction somme excel - Guide
14 réponses
Bonjour,
Si tu convertis ton $level en int, tu ne peux pas tester apres avec une chaine de caractere.
Apres tu fais
C'est faux.
Comment est stocke la valeur de membre_rang dans ta bdd ? Si c'est un string, alors supprimes ton code qui convertit ce resultat en nombre et fais un test en ajoutant des guillemets pour chaque valeur :
REMPLACER PAR
(Message redige sans accent pour cause de bug de message vide)
"Il vaut mieux savoir tout chercher que chercher a tout savoir."
Si tu convertis ton $level en int, tu ne peux pas tester apres avec une chaine de caractere.
$level = intval($rang);
Apres tu fais
if($level == ADMIN)
C'est faux.
Comment est stocke la valeur de membre_rang dans ta bdd ? Si c'est un string, alors supprimes ton code qui convertit ce resultat en nombre et fais un test en ajoutant des guillemets pour chaque valeur :
$level = intval($rang);=> A supprimer
if($level == ADMIN)
REMPLACER PAR
if($level == "ADMIN")
(Message redige sans accent pour cause de bug de message vide)
"Il vaut mieux savoir tout chercher que chercher a tout savoir."
merci, mais ca fait erreur fatal
merci
ligne 85
spl_autoload_register("CadreSelonSexeColor");
Fatal error : Uncaught exception 'LogicException' avec le message «Fonction» CadreSelonSexeColor 'est introuvable (fonction' CadreSelonSexeColor 'est introuvable ou non valide nom de la fonction)' in / var / www / legtux.org / users / mon site / function.inc.php: 85 Stack trace: # 0 / var / www / legtux.org / users / mon site / function.inc.php (85): spl_autoload_register ('CadreSelonSexeC ...') # 1 / var / www / legtux.org / users / mon site / modules / activites / module.config.php (6): include_once ('/ var / www / legtux ...') # 2 [fonction interne]: {} de fermeture ('/ var / www / legtux ... ') # 3 / var / www / legtux.org / users / mon site / includes / classes / Hook.abstract.class.php (72): call_user_func_array (Object (Clôture), Array) # 4 / var / www / legtux. org / utilisateurs / mon site / includes / Hook.inc.php (13): Crochet :: garde («KERNEL.MODULE.F ... ',' / var / www / legtux ... ') # 5 / var / www / legtux.org / users / mon site / includes / Hook.config.php (19): require_once ('/ var / www / legtux ...') # 6 / var / www / legtux.org / users / mon site / index.php (42): require_once ('/ var / www / legtux ...') # 7 {main} jeté dans / var / www / legtux.org / users / mon site / function.inc.php sur la ligne 85
merci
ligne 85
spl_autoload_register("CadreSelonSexeColor");
Peux tu créer une page test.php et y mettre en première ligne :
et me donner ici la version de PHP que tu utilises ?
phpinfo();
et me donner ici la version de PHP que tu utilises ?
j'ai mis mais on dirait qu'il ne trouves pas la fonction
j'ai supprimer la fonction et recommencer mas malgrez ca il y a une erreur fatal
j'ai supprimer la fonction et recommencer mas malgrez ca il y a une erreur fatal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est impossible que le serveur php ne puisse pas exécuter la commande phpinfo.
Regarde cette page et assures toi de l'avoir écrit correctement, et aussi que tu pointes bien ton navigateur vers ce fichier test.php
Regarde cette page et assures toi de l'avoir écrit correctement, et aussi que tu pointes bien ton navigateur vers ce fichier test.php
Voici ton message d'erreur :
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
fonction' CadreSelonSexeColor 'est introuvable ou non valideVoici le début de ta fonction:
function GetCadreSelonSexeColorById(Il y a visiblement un problème de nom de fonction.
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
je les corigers
voilà
<?php echo ''. GetCadreSelonSexeColorById($data1['membre_sexe'],$data1['membre_id']) . '';?>
et
voilà
<?php echo ''. GetCadreSelonSexeColorById($data1['membre_sexe'],$data1['membre_id']) . '';?>
et
spl_autoload_register("GetCadreSelonSexeColorById"); function GetCadreSelonSexeColorById($membreId,$alignCenter=true,$class='avatar_membre') { if(ctype_digit($membreId)||is_int($membreId)) { $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId); $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId); $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId); $str = ($alignCenter) ? '' : ''; $avatarHighLevel = function($level) use($class){ $str = ""; if($level == "ADMIN") $str .= '<div class="page_admi"></div>'; else if($level == MODO) $str .= '<div class="page_modo"></div>'; return $str; }; if(!empty($value)) { if(file_exists(DIR_AVATAR."/avatar_membres/".$value)) $str .= '<div class="page_question"></div>'; else{ $a = $avatarHighLevel($level); if($a!="") $str .= $a; else $str .= '<div class="page_question"></div>'; } }else { if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME) $str .= '<a class="separator" title=""></a>'; $a = $avatarHighLevel($level); if($a!="") $str .= $a; else if($level == NEWSER) $str .= '<div class="page_newswer"></div>'; else if($sex===HOMME && $value=="") $str .= '<div class="page_homme"></div>'; else if($sex===FEMME && $value=="") $str .= '<div class="page_femme"></div>'; else { $str .= '<div class="page_question"></div>'; } } $str .= ($alignCenter) ? "" : ''; return $str; }else{ return '<div class="page_question"></div>'; } }
Désolé si je vais paraitre méchant, mais j'ai l'impression que tu ne réfléchit pas beaucoup sur ton code. Quand j'ai dit tu supprimes
Donc tu remplaces partout
Et quand je dis
EDIT : Sans compter le fait que tu ne mets presque jamais d'accolades, ce qui est très dangereux dans php et hors normes.
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
$level = intval($rang);, je sous-entendais que tu allais également remplacer cette variable dans tout le reste de ton code puisqu'elle n'est plus utilisée ni déclarée.
Donc tu remplaces partout
$levelpar
$rang
Et quand je dis
if($level == ADMIN)à remplacer par
if($level == "ADMIN")ca ne veut pas dire qu'il faut le faire une fois, il faut le faire pour tous tes tests, et même si c'est un MODO, NEWSER, HOMME et FEMME.
EDIT : Sans compter le fait que tu ne mets presque jamais d'accolades, ce qui est très dangereux dans php et hors normes.
if (condition) { echo 'condition respectée'; } else { echo 'condition non respectée'; }
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
function GetCadreSelonSexeColorById($membreId,$alignCenter=true,$class='avatar_membre') { if(ctype_digit($membreId)||is_int($membreId)) { $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId); $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId); $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId); $str = ($alignCenter) ? '' : ''; $avatarHighLevel = function($level) use($class){ $str = ""; if($level == "ADMIN") $str .= '<div class="page_admi"></div>'; else if($level == "MODO") $str .= '<div class="page_modo"></div>'; return $str; }; if(!empty($value)) { if(file_exists(DIR_AVATAR."/avatar_membres/".$value)) $str .= '<div class="page_question"></div>'; else{ $a = $avatarHighLevel($level); if($a!="") $str .= $a; else $str .= '<div class="page_question"></div>'; } }else { if($level == ADMIN || $level == MODO || $level == NEWSER || $level == HOMME || $level == FEMME) $str .= '<a class="separator" title=""></a>'; $a = $avatarHighLevel($level); if($a!="") $str .= $a; else if($level == "NEWSER") $str .= '<div class="page_newswer"></div>'; else if($level == "HOMME") $str .= '<div class="page_homme"></div>'; else if($level == "FEMME") $str .= '<div class="page_femme"></div>'; else { $str .= '<div class="page_question"></div>'; } } $str .= ($alignCenter) ? "" : ''; return $str; }else{ return '<div class="page_question"></div>'; } }
Si tu ne lis pas ce que j'écris et que tu n'appliques pas ce que je te demandes de faire, on ne va pas avancer.
Ce que tu as déjà fais c'est bien, mais tu ne l'as pas fait partout.
Et qu'est ce qu'on a dit pour la variable $level ?
Ce que tu as déjà fais c'est bien, mais tu ne l'as pas fait partout.
Et qu'est ce qu'on a dit pour la variable $level ?
j'ai remplacer level par rang mais ca n'affiche pas la page
voil le code
voil le code
function GetCadreSelonSexeColorById($membreId,$alignCenter=true,$class='avatar_membre') { if(ctype_digit($membreId)||is_int($membreId)) { $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId); $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId); $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId); $str = ($alignCenter) ? '' : ''; $avatarHighRang = function($rang) use($class){ $str = ""; if($rang == "ADMIN") $str .= '<div class="page_admi"></div>'; else if($rang == "MODO") $str .= '<div class="page_modo"></div>'; return $str; }; if(!empty($value)) { if(file_exists(DIR_AVATAR."/avatar_membres/".$value)) $str .= '<div class="page_question"></div>'; else{ $a = $avatarHighRang($rang); if($a!="") $str .= $a; else $str .= '<div class="page_question"></div>'; } }else { if($rang == ADMIN || $rang == MODO || $rang == NEWSER || $rang == HOMME || $rang == FEMME) $str .= '<a class="separator" title=""></a>'; $a = $avatarHighRang($rang); if($a!="") $str .= $a; else if($rang == "NEWSER") $str .= '<div class="page_newswer"></div>'; else if($rang == "HOMME") $str .= '<div class="page_homme"></div>'; else if($rang == "FEMME") $str .= '<div class="page_femme"></div>'; else { $str .= '<div class="page_question"></div>'; } } $str .= ($alignCenter) ? "" : ''; return $str; }else{ return '<div class="page_question"></div>'; } }
Ton code n'est pas propre.
Je pars dans 10 minutes et ne reviens que jeudi.
Comme je suis dans une bonne semaine, je te donne mon code corrigé, un conseil étudie le pour bien comprendre le formatage des conditions en PHP.
Si ça ne fonctionne toujours pas, donnes nous plus d'info que "Ma page s'affiche pas" parce que ça on s'en fout. Donne un message d'erreur, qu'est ce qui se passe, qu'est ce que tu as à l'écran, etc.
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
Je pars dans 10 minutes et ne reviens que jeudi.
Comme je suis dans une bonne semaine, je te donne mon code corrigé, un conseil étudie le pour bien comprendre le formatage des conditions en PHP.
Si ça ne fonctionne toujours pas, donnes nous plus d'info que "Ma page s'affiche pas" parce que ça on s'en fout. Donne un message d'erreur, qu'est ce qui se passe, qu'est ce que tu as à l'écran, etc.
<?php spl_autoload_register("GetCadreSelonSexeColorById"); function GetCadreSelonSexeColorById($membreId,$alignCenter=true,$class='avatar_membre') { if(ctype_digit($membreId)||is_int($membreId)) { $rang = GetValueFromQuery("SELECT membre_rang as value FROM forum_membres WHERE membre_id=".$membreId); $value = GetValueFromQuery("SELECT membre_avatar as value FROM forum_membres WHERE membre_id=".$membreId); $sex = GetValueFromQuery("SELECT membre_sexe as value FROM forum_membres WHERE membre_id=".$membreId); $str = ($alignCenter) ? '' : ''; $avatarHighrang = function($rang) use($class){ $str = ""; if ($rang == "ADMIN") { $str .= '<div class="page_admi"></div>'; } elseif($rang == "MODO") { $str .= '<div class="page_modo"></div>'; } return $str; }; if(!empty($value)) { if(file_exists(DIR_AVATAR."/avatar_membres/".$value)) { $str .= '<div class="page_question"></div>'; } else { $a = $avatarHighrang($rang); if($a != "") { $str .= $a; } else { $str .= '<div class="page_question"></div>'; } } } else { if($rang == "ADMIN" || $rang == "MODO" || $rang == "NEWSER" || $rang == "HOMME" || $rang == "FEMME") { $str .= '<a class="separator" title=""></a>'; $a = $avatarHighrang($rang); if($a!="") { $str .= $a; } elseif($rang == "NEWSER") { $str .= '<div class="page_newswer"></div>'; } elseif($sex == "HOMME" && $value=="") { $str .= '<div class="page_homme"></div>'; } elseif($sex == "FEMME" && $value=="") { $str .= '<div class="page_femme"></div>'; } else { $str .= '<div class="page_question"></div>'; } } } $str .= ($alignCenter) ? "" : ''; return $str; } else { return '<div class="page_question"></div>'; } } ?>
"Il vaut mieux savoir tout chercher que chercher à tout savoir."