Eingaben überprüfen... – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Eingaben überprüfen... Mon, 01 Jul 02 09:45:46 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236569#m236569 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236569#m236569 <p>Holla Leutz,</p> <p>was für ein Scheiß Wetter, hm?! Naja...</p> <p>Also ich hab da ein Problem: Ich mache gerade ein Quiz auf PHP Basis (nein, das ist noch nicht das Problem *g*). Wenn der User alles ausfüllt, soll er dann auf eine Seite, wo dann die Auswertung statt findet. Ich möchte aber, das die Seite vor der auswertung erst überprüft ob zur jeden Frage eine Antwort gegeben wurde. Falls auch nur eine Frage ´nicht beantwortet wird, soll eine Fehler Meldung erscheinen. Wie krieg ich das hin?! Ich habe das hier versucht (kam mir vom Aufbau irgendwie merkwürdig vor... ist es wohl auch):</p> <p><?php<br>   if ($1 or $2 or $3 or $4 or $5 or $6 or $7 or $8 or $9 or $10 or $11 or $12 or $13 or $14 or $15 == ""):<br>   echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";<br> ?></p> <p>Naja, villeicht kann mir jemand helfen! Wenn ihr das tut, hört aus auch auf zu Regnen!  O_O''</p> <p>Gruß,</p> <p>Ulvi</p> Eingaben überprüfen... Mon, 01 Jul 02 09:53:37 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236570#m236570 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236570#m236570 <blockquote> <p>Holla Leutz,</p> </blockquote> <p>Hi !</p> <blockquote> <p>was für ein Scheiß Wetter, hm?! Naja...</p> </blockquote> <p>das kannst du laut sagen. aber vielleicht hilft dir meine antwort ja, dann soll es ja aufhören, hab ich gelesen ;-)</p> <blockquote> <p>[viel zeug]versucht (kam mir vom Aufbau irgendwie merkwürdig vor... ist es wohl auch):</p> </blockquote> <blockquote> <p><?php<br>   if ($1 or $2 or $3 or $4 or $5 or $6 or $7 or $8 or $9 or $10 or $11 or $12 or $13 or $14 or $15 == ""):<br>   echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";<br> ?></p> </blockquote> <p>von php hab ich keine Ahnung, aber wieso nimmst du nicht vorneweg einen javascript für die plausi?</p> <p>gruss<br> axel</p> Eingaben überprüfen... Mon, 01 Jul 02 10:09:16 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236571#m236571 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236571#m236571 <blockquote> <p>Holla Leutz,</p> </blockquote> <blockquote> <p>was für ein Scheiß Wetter, hm?! Naja...</p> </blockquote> <p>Also wenn ich aus dem Fenster schaue, strahlendster Sonnenschein!!</p> <blockquote> <p><?php<br>   if ($1 or $2 or $3 or $4 or $5 or $6 or $7 or $8 or $9 or $10 or $11 or $12 or $13 or $14 or $15 == ""):<br>   echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";<br> ?></p> </blockquote> <p>Du machst es dir hier doch sehr einfach. Versuche folgende Vorgehensweise: Benenne die Eingabefelder mit einem fortlaufenden Nummernsuffix und mache die Abfragen in einer Schleife:</p> <p>for ($i=1,$i<$imax;$i++)<br> {<br>     if ($eingabefeld$i == "") Fehlerflag setzen und break;<br> }</p> <blockquote> <p>Naja, villeicht kann mir jemand helfen! Wenn ihr das tut, hört aus auch auf zu Regnen!  O_O''</p> </blockquote> <p>Das wird es ganz bestimmt nicht!</p> <p>tschüss aus dem sonnigen Süden</p> <p>Michael</p> Eingaben überprüfen... Mon, 01 Jul 02 10:13:25 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236572#m236572 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236572#m236572 <p>Hi,<br> ich habe eine gute Lösung für dich, du musst als erstes eine<br> HTML-Seite erzeugen mit folgenden Formelementen...<br> Hier ein Beispiel:</p> <p><html><br> <body><br> <form action="checkIt.php" method="post"><br> 1. Frage: <input type="text" name="frage[]"><br><br> 2. Frage: <input type="text" name="frage[]"><br><br> </form><br> </body><br> </html></p> <p>Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:</p> <p><?<br> function checkArray($arr=''){<br>   if(!is_array($arr)) return 0;</p> <p>foreach($arr AS $value)<br>     if($value=="") return 0;</p> <p>return 1;<br> }</p> <p>if(checkArray($frage))<br>   echo "Danke, du hast alles ausgefüllt";<br> else<br>   echo "Bitte beantworten Sie alle Fragen";<br> ?></p> Eingaben überprüfen... Mon, 01 Jul 02 10:18:35 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236578#m236578 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236578#m236578 <p>Huhu Ulvi</p> <blockquote> <p><?php<br>   if ($1 or $2 or $3 or $4 or $5 or $6 or $7 or $8 or $9 or $10 or $11 or $12 or $13 or $14 or $15 == ""):<br>   echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";<br> ?></p> </blockquote> <p>zunächst einmal sind $1, $2 etc. keine gültigen Variablen-Namen.</p> <p><a href="http://www.php.net/manual/en/language.variables.php" rel="nofollow noopener noreferrer">http://www.php.net/manual/en/language.variables.php</a></p> <p>ausserdem wäre Dein logischer Ausdruck immer wahr wenn nur eine Variable einen Wert != '' hätte.</p> <p>richtiger wäre es z.B. so :</p> <p>if(!$q1 OR !$q2 ... OR !$15)</p> <p>ist aber evtl. etwas unelegant</p> <p>ansonsten würde sich für dein Problem der Einsatz eines Arrays anbieten.</p> <p>z.B. in etwa so</p> <p><?php</p> <p>$test=array('a','b','c','','e');</p> <p>if(in_array('',$test)) {<br>  echo "Da fehlt noch was";<br> }else{<br>  echo "OK";<br> }<br> ?></p> <p>Viele Grüße</p> <p>lulu</p> Eingaben überprüfen... Mon, 01 Jul 02 10:18:56 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236573#m236573 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236573#m236573 <p>Jo, schei´Weter :-(</p> <blockquote> <p><?<br> function checkArray($arr=''){<br>   if(!is_array($arr)) return 0;</p> </blockquote> <blockquote> <p>foreach($arr AS $value)</p> </blockquote> <p>trim($value);</p> <blockquote> <p>if($value=="") return 0;</p> </blockquote> <blockquote> <p>return 1;<br> }</p> </blockquote> <blockquote> <p>if(checkArray($frage))<br>   echo "Danke, du hast alles ausgefüllt";<br> else<br>   echo "Bitte beantworten Sie alle Fragen";<br> ?></p> </blockquote> <p>Ich würde das dazwischensetzen, damit Leerstellen am Anfang und am Ende weggeschnitten werden und der, der das Quiz macht keine Leerzeichen abschicken kann ;)</p> <p>MFG, Bevan</p> Eingaben überprüfen... Mon, 01 Jul 02 10:19:53 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236574#m236574 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236574#m236574 <blockquote> <p>Hi,<br> ich habe eine gute Lösung für dich, du musst als erstes eine<br> HTML-Seite erzeugen mit folgenden Formelementen...<br> Hier ein Beispiel:</p> </blockquote> <blockquote> <p><html><br> <body><br> <form action="checkIt.php" method="post"></p> <ol> <li>Frage: <input type="text" name="frage[]"><br></li> <li>Frage: <input type="text" name="frage[]"><br><br> </form><br> </body><br> </html></li> </ol> </blockquote> <blockquote> <p>Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:</p> </blockquote> <blockquote> <p><?<br> function checkArray($arr=''){<br>   if(!is_array($arr)) return 0;</p> </blockquote> <blockquote> <p>foreach($arr AS $value)<br>     if($value=="") return 0;</p> </blockquote> <blockquote> <p>return 1;<br> }</p> </blockquote> <blockquote> <p>if(checkArray($frage))<br>   echo "Danke, du hast alles ausgefüllt";<br> else<br>   echo "Bitte beantworten Sie alle Fragen";<br> ?></p> </blockquote> <p>Ich hab Radio Buttons zum anklicken dahin gepackt. Kann ich die Felder dann auch einfach als Frage[] bennenen?!</p> Eingaben überprüfen... Mon, 01 Jul 02 11:11:42 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236576#m236576 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236576#m236576 <blockquote> <p>Hi,<br> ich habe eine gute Lösung für dich, du musst als erstes eine<br> HTML-Seite erzeugen mit folgenden Formelementen...<br> Hier ein Beispiel:</p> </blockquote> <blockquote> <p><html><br> <body><br> <form action="checkIt.php" method="post"></p> <ol> <li>Frage: <input type="text" name="frage[]"><br></li> <li>Frage: <input type="text" name="frage[]"><br><br> </form><br> </body><br> </html></li> </ol> </blockquote> <blockquote> <p>Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:</p> </blockquote> <blockquote> <p><?<br> function checkArray($arr=''){<br>   if(!is_array($arr)) return 0;</p> </blockquote> <blockquote> <p>foreach($arr AS $value)<br>     if($value=="") return 0;</p> </blockquote> <blockquote> <p>return 1;<br> }</p> </blockquote> <blockquote> <p>if(checkArray($frage))<br>   echo "Danke, du hast alles ausgefüllt";<br> else<br>   echo "Bitte beantworten Sie alle Fragen";<br> ?></p> </blockquote> <p>Danke nochmals. Hab den code ausprobiert und es klappt.... fast!</p> <p>Naja, es soll eine Fehler Meldung kommen wenn auch nur 1 Feld fehlen sollte! Das dumme daran ist jetzt: Wenn mid. 1 antwort gegeben wurde, erscheint die Fehler Meldung nicht mehr. Sie erscheint nur wenn gar bei keiner Frage ne Antwort gegeben wurde.</p> Eingaben überprüfen... Mon, 01 Jul 02 10:28:48 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236575#m236575 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236575#m236575 <p>Hallo,</p> <p>Variablen existieren in PHP nur, wenn Sie einen Wert bekommen,d.h. wenn ein Radiobutton leer ist, wenn er abgeschickt wird, existiert seine Variable im Script dann nicht.</p> <p>MfG Christian</p> <p><html><br>  <body><br>   <form action="checkIt.php" method="post"><br>    1. Frage: <input type="text" name="frage[1]"><br><br>    2. Frage: <input type="text" name="frage[2]"><br><br>    3. Frage: <input type="radio" name="frage[3]"><br><br>    3. Frage: <input type="radio" name="frage[3]"><br><br>    3. Frage: <input type="radio" name="frage[3]"><br><br>   </form><br>  </body><br> </html></p> <p>[checkIt.php]<br> <?php<br>  if(count($frage)==3) {<br>  ...<br>  }<br> ?></p> Eingaben überprüfen... Mon, 01 Jul 02 12:09:53 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236577#m236577 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236577#m236577 <p>Hallo</p> <blockquote> <p>Danke nochmals. Hab den code ausprobiert und es klappt.... fast!</p> </blockquote> <blockquote> <p>Naja, es soll eine Fehler Meldung kommen wenn auch nur 1 Feld fehlen sollte! Das dumme daran ist jetzt: Wenn mid. 1 antwort gegeben wurde, erscheint die Fehler Meldung nicht mehr. Sie erscheint nur wenn gar bei keiner Frage ne Antwort gegeben wurde.</p> </blockquote> <p>Wo ist das Problem? Per Radiobutton kann es, pro Gruppe, immer nur eine Antwort geben.</p> <p>Du solltest die Abfrage dann auf die verschiedenen Fragen aufteilen.<br> Damit kannst du auch gezielt "antworten":<br> 'Sie haben Frage 4 nicht beantwortet. Ab zurück!'.<br> Natürlich nicht in dem Ton ;-)</p> <p>Tschüß, Auge</p> Eingaben überprüfen... Mon, 01 Jul 02 16:18:36 Z https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236579#m236579 https://forum.selfhtml.org/self/2002/jul/1/eingaben-ueberpruefen/236579#m236579 <p>Hi lulu,</p> <blockquote> <p>richtiger wäre es z.B. so :<br> if(!$q1 OR !$q2 ... OR !$15)<br> ist aber evtl. etwas unelegant</p> </blockquote> <p>das wäre logisch zumindest äquivalent zu</p> <p>if (! ($q1 AND $q2 ... and $q15))</p> <p>... wäre das eleganter?</p> <p>Natürlich ist es häßlich, die 15 fest einzucodieren - ein Array mit<br> implizit abfragbarer Länge hat an dieser Stelle durchaus Vorteile.</p> <p>Viele Grüße<br>       Michael</p>