|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
Bonjour,
J’ai réalisé un site sur l’apiculture et j’ai installé deux quizz qui fonctionnaient sans problème. Visible à cette adresse : http://www.ruche-apiculture.org Depuis peu des messages d’erreurs apparaissent comme ceci : - Pour la même page : Code :
Code :
Voici le code de la première page… il semblerait qu’il y ai une faute au post (result) ? Code :
Entre Notice Undefined index et Undefined variable Merci beaucoup pour votre savoir faire. |
||||||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Inscription : mai 2006 Messages : 34 ![]() |
Bonjour
Pour le message Undefined index: result, PHP te dit que l'index result n'existe pas. Donc pour éviter ce message d'erreur, il faut d'abord tester que l'indice result est défini avec la fonction isset() http://www.php.net/isset Code :
|
||
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Bonjour,
Tu m'étonnes, Elton ! On ne code plus comme ca depuis un bon demi-siècle ... - "nettoie" le code (indentation, passages a la ligne, ...) pour le rendre plus lisible et facile à débuguer - remplace print par echo - sort le code html du code php - réserve les " au html et les ' au php - if (!$_POST[‘result’]) ?? -> if (!$_POST['result']) Voici une "bonne pratique" : Code :
.. de quoi faire de toi un ... happy-culteur
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() ![]() |
Bonjour,
comme le préconise le collègue jreaux62, il vaut mieux suivre ses conseils car ton code est illisible. Tout est imbriqué, mal organisé et pour la maintenance bonjour le stress. Le copain jreaux62 te propose une approche qui sépare le code html du php et je te propse la même chose mais un peu différemment : Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#5 |
|
Membre habitué
![]() Lucas GAUTHERONLycéen Inscription : décembre 2008 Messages : 106 ![]() |
ce que tu fais avec la syntaxe heredoc cest un peu - pardonnez moi la trivialité de l'expression - cacher la merde au chat..
Faudrait séparer complètement les couches.. Faire les vérifications des formulaires, les accès à la base de données avant la sortie. |
|
|
01
|
|
|
#6 |
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
Bonjour à vous,
Merci pour votre contribution. Merci ( rawsrc ) pour ce code très très bien codé.... Je prends quelques exemples de code de gauche à droite et de PHP5 chez Eyrolles... Je prendrais cet exemple par la suite.. Mai bon, je suis amateur c'est quand même pas évident.. Bref, j'ai installé ton nouveau code sur ma page quizz abeilles et j'ai toujour le même problème à la ligne 6. Ce qui correspond a : Et si je valide le quizz j'ai une erreur à la ligne 49: Que faire ? |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() ![]() |
Citation:
@BRUNO71 Est ce que ton tableau $_POST est bien renseigné avant tout le traitement ? Essaie de poser avant ton code un histoire de voir le contenu
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
11
|
|
|
#8 | ||
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
Merci rawsrc,
Désolé lucas74, mais rawsrc a raison, si je savais "séparer complètement les couches..etc" je donnerais plus de conseil que je ne poserais de question ! Bon ceci dit, en ajoutant print_r[$_POST] Je l'ai écrit de toutes les façon au pifomètre ![]() print_r['$_POST'], print_r['$_POST'];.... J'obtien à la ligne 2 ceci : Parse error: syntax error, unexpected '[' Code :
|
||
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() ![]() |
Laisse tomber je suis à la masse : la bonne syntaxe c'estAh ne pas se relire c'est fatal
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() |
J'ai testé ton quizz et je te conseille de remplacer :
par : Tu ne devrais plus avoir de message d'alerte -> voir plus haut la réponse de mougeole
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#11 | |
|
Membre habitué
![]() Lucas GAUTHERONLycéen Inscription : décembre 2008 Messages : 106 ![]() |
Citation:
je voulais juste aider, pas te vexer. Je voulais juste souligner que ce que tu faisais ne rendait en aucun cas le code plus propre. Aussi, la séparation des couches est un principe simple, seulement pas du tout expliqué parmi les nombreux tutos et livres qui circulent sur le net. Si on apprenait aux gens dès le début à bien séparer présentation du reste ça ne rendrait pas les choses plus compliquées (au contraire ! ça éviterait même pas mal d'incompréhensions)Désolé d'avoir heurté ta susceptibilité |
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
![]() Je viens d'écrire ta ligne en supprimant Sinon j'en avais deux..... Super ça fonctionne, MAIS ! Le résultat s'affiche avec une erreur à chaque réponse avec : ETC...............pour chaque réponse et renvoi à la ligne 50 qui correspond à : Sincèrement désolé... |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() |
Y a pas à être désolé,
Après un essai sur ton site, ton problème vient d'un problème d'interprétation des résultats : tu dois considérer que quand aucune réponse n'est cochée, elle est fausse. Donc ajoute en ligne 50 ceci (juste après le for): Code :
$reponse = (isset($_POST[$i])) ? trim($_POST[$i]) : -1;
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#14 | ||
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
Merci,
Par contre ça génère le même style de défaut résultat par résultat, mais cette fois à la ligne 74. Code :
|
||
|
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() ![]() |
Oui c'est normal,
tu dois positionner la réponse pour les questions non répondues sur "" au lieu de -1 Code :
$reponse = (isset($_POST[$i])) ? trim($_POST[$i]) : "";
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#16 |
|
Membre habitué
![]() Bruno LangloisConseiller technique ELec Inscription : janvier 2007 Messages : 289 ![]() |
Merci......
![]() Merci pour ton aide.... Je vois que tu es développeur en informatique. Uniquement en PHP ou dans d'autre langage ? J'ai une question concernant les discussions dans les forums de developpez.com : Suite à une erreur !, j'ai posté deux messages identiques...ce matin. Ce serait bien si je pouvais le supprimer moi-même dans ce cas ? On peut le modifier mais pas le supprimer !! Voilà ! Merci beaucoup, je vais maintenant travailler sur la construction d'un petit sondage en php.... Je trouve beaucoup de script sur le net....mais beaucoup ne fonctionne pas...!! Je me servirais de ta façon de coder en php...c'est très bien...j'envie tes connaissances. Bonne soirée. |
|
|
00
|
|
|
#17 | |||||
![]() ![]() |
Bonjour rawsrc,
Citation:
Citation:
Je m'en suis inspiré pour voir la différence de temps d'execution. Voici le test (avec microtime()): Code :
Citation:
La raison est simple : - avec <?php echo "...du-code-html..."; ?> ou <?php echo <<<HTML ...du-code-html... HTML; ?> => php est obligé d'"interpréter" le code html avant de l'afficher. - avec le code html hors du code php, => il est afficher directement. Donc plus rapidement.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|||||
|
|
00
|
|
|
#18 | |||
![]() ![]() Inscription : septembre 2010 Messages : 7 119 ![]() |
Citation:
Code :
__________________
http://blog.stealth35.com/ |
|||
|
|
00
|
|
|
#19 |
![]() ![]() |
- "c'est faux" : les explications ? les résultats ? la conclusion ? L'article ? tout ? ...
Maintenant que tu as dit ce qui c'est faux, il serait intelligent de dire ce qui est vrai. Qu'on sorte d'ici moins idiot. ps : Je peux admettre que mes explications ne soient pas exactes (elle me semblaient pourtant logiques). Quelle est la conclusion des tiennes ? - "les mesures sont donc fausses ..." : Ca veut donc dire que microtime(true) fait n'importe quoi ? (php manual, microtime() -> Exemple #2) (plus de 20 tests, et 20 résultats équivalents ... je n'ai rien inventé) Oui, depuis que quelqu'un m'a reproché d'"écrire n'importe quoi sans avoir testé", je fais toujours des tests ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#20 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 119 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com