Bug sur fonction colors cadre en fonction level id
Fermé
ivan
-
1 août 2014 à 11:29
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 1 août 2014 à 16:49
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 1 août 2014 à 16:49
A voir également:
- Bug sur fonction colors cadre en fonction level id
- Fonction si et - Guide
- Bug yahoo mail - Accueil - Mail
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
14 réponses
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par sipherion le 1/08/2014 à 11:37
Modifié par sipherion le 1/08/2014 à 11:37
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");
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
1 août 2014 à 12:09
1 août 2014 à 12:09
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
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
1 août 2014 à 12:33
1 août 2014 à 12:33
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
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par sipherion le 1/08/2014 à 14:41
Modifié par sipherion le 1/08/2014 à 14:41
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>'; } }
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
1 août 2014 à 15:08
1 août 2014 à 15:08
Et donc ?
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par sipherion le 1/08/2014 à 15:30
Modifié par sipherion le 1/08/2014 à 15:30
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."
j'ai modifier mais ça ne fonctione pas
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
1 août 2014 à 16:09
1 août 2014 à 16:09
Reposte ton 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) ? '' : ''; $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>'; } }
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
1 août 2014 à 16:26
1 août 2014 à 16:26
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>'; } }
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par sipherion le 1/08/2014 à 16:51
Modifié par sipherion le 1/08/2014 à 16:51
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."