Eingaben überprüfen...
Ulvi
- php
Holla Leutz,
was für ein Scheiß Wetter, hm?! Naja...
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):
<?php
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 == ""):
echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";
?>
Naja, villeicht kann mir jemand helfen! Wenn ihr das tut, hört aus auch auf zu Regnen! O_O''
Gruß,
Ulvi
Holla Leutz,
Hi !
was für ein Scheiß Wetter, hm?! Naja...
das kannst du laut sagen. aber vielleicht hilft dir meine antwort ja, dann soll es ja aufhören, hab ich gelesen ;-)
[viel zeug]versucht (kam mir vom Aufbau irgendwie merkwürdig vor... ist es wohl auch):
<?php
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 == ""):
echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";
?>
von php hab ich keine Ahnung, aber wieso nimmst du nicht vorneweg einen javascript für die plausi?
gruss
axel
Holla Leutz,
was für ein Scheiß Wetter, hm?! Naja...
Also wenn ich aus dem Fenster schaue, strahlendster Sonnenschein!!
<?php
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 == ""):
echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";
?>
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:
for ($i=1,$i<$imax;$i++)
{
if ($eingabefeld$i == "") Fehlerflag setzen und break;
}
Naja, villeicht kann mir jemand helfen! Wenn ihr das tut, hört aus auch auf zu Regnen! O_O''
Das wird es ganz bestimmt nicht!
tschüss aus dem sonnigen Süden
Michael
Hi,
ich habe eine gute Lösung für dich, du musst als erstes eine
HTML-Seite erzeugen mit folgenden Formelementen...
Hier ein Beispiel:
<html>
<body>
<form action="checkIt.php" method="post">
1. Frage: <input type="text" name="frage[]"><br>
2. Frage: <input type="text" name="frage[]"><br>
</form>
</body>
</html>
Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:
<?
function checkArray($arr=''){
if(!is_array($arr)) return 0;
foreach($arr AS $value)
if($value=="") return 0;
return 1;
}
if(checkArray($frage))
echo "Danke, du hast alles ausgefüllt";
else
echo "Bitte beantworten Sie alle Fragen";
?>
Jo, schei´Weter :-(
<?
function checkArray($arr=''){
if(!is_array($arr)) return 0;
foreach($arr AS $value)
trim($value);
if($value=="") return 0;
return 1;
}
if(checkArray($frage))
echo "Danke, du hast alles ausgefüllt";
else
echo "Bitte beantworten Sie alle Fragen";
?>
Ich würde das dazwischensetzen, damit Leerstellen am Anfang und am Ende weggeschnitten werden und der, der das Quiz macht keine Leerzeichen abschicken kann ;)
MFG, Bevan
Hi,
ich habe eine gute Lösung für dich, du musst als erstes eine
HTML-Seite erzeugen mit folgenden Formelementen...
Hier ein Beispiel:
<html>
<body>
<form action="checkIt.php" method="post">
- Frage: <input type="text" name="frage[]"><br>
- Frage: <input type="text" name="frage[]"><br>
</form>
</body>
</html>
Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:
<?
function checkArray($arr=''){
if(!is_array($arr)) return 0;
foreach($arr AS $value)
if($value=="") return 0;
return 1;
}
if(checkArray($frage))
echo "Danke, du hast alles ausgefüllt";
else
echo "Bitte beantworten Sie alle Fragen";
?>
Ich hab Radio Buttons zum anklicken dahin gepackt. Kann ich die Felder dann auch einfach als Frage[] bennenen?!
Hallo,
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.
MfG Christian
<html>
<body>
<form action="checkIt.php" method="post">
1. Frage: <input type="text" name="frage[1]"><br>
2. Frage: <input type="text" name="frage[2]"><br>
3. Frage: <input type="radio" name="frage[3]"><br>
3. Frage: <input type="radio" name="frage[3]"><br>
3. Frage: <input type="radio" name="frage[3]"><br>
</form>
</body>
</html>
[checkIt.php]
<?php
if(count($frage)==3) {
...
}
?>
Hi,
ich habe eine gute Lösung für dich, du musst als erstes eine
HTML-Seite erzeugen mit folgenden Formelementen...
Hier ein Beispiel:
<html>
<body>
<form action="checkIt.php" method="post">
- Frage: <input type="text" name="frage[]"><br>
- Frage: <input type="text" name="frage[]"><br>
</form>
</body>
</html>
Wird das Formular abgeschickt erhälst ein array in php, du kannst nun wie folgt vorgehen:
<?
function checkArray($arr=''){
if(!is_array($arr)) return 0;
foreach($arr AS $value)
if($value=="") return 0;
return 1;
}
if(checkArray($frage))
echo "Danke, du hast alles ausgefüllt";
else
echo "Bitte beantworten Sie alle Fragen";
?>
Danke nochmals. Hab den code ausprobiert und es klappt.... fast!
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.
Hallo
Danke nochmals. Hab den code ausprobiert und es klappt.... fast!
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.
Wo ist das Problem? Per Radiobutton kann es, pro Gruppe, immer nur eine Antwort geben.
Du solltest die Abfrage dann auf die verschiedenen Fragen aufteilen.
Damit kannst du auch gezielt "antworten":
'Sie haben Frage 4 nicht beantwortet. Ab zurück!'.
Natürlich nicht in dem Ton ;-)
Tschüß, Auge
Huhu Ulvi
<?php
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 == ""):
echo "Du hast mindestens 1 Feld nicht beantwortet. Bitte benutze den Zurück Button, um diesen Fehler zu beheben!";
?>
zunächst einmal sind $1, $2 etc. keine gültigen Variablen-Namen.
http://www.php.net/manual/en/language.variables.php
ausserdem wäre Dein logischer Ausdruck immer wahr wenn nur eine Variable einen Wert != '' hätte.
richtiger wäre es z.B. so :
if(!$q1 OR !$q2 ... OR !$15)
ist aber evtl. etwas unelegant
ansonsten würde sich für dein Problem der Einsatz eines Arrays anbieten.
z.B. in etwa so
<?php
$test=array('a','b','c','','e');
if(in_array('',$test)) {
echo "Da fehlt noch was";
}else{
echo "OK";
}
?>
Viele Grüße
lulu
Hi lulu,
richtiger wäre es z.B. so :
if(!$q1 OR !$q2 ... OR !$15)
ist aber evtl. etwas unelegant
das wäre logisch zumindest äquivalent zu
if (! ($q1 AND $q2 ... and $q15))
... wäre das eleganter?
Natürlich ist es häßlich, die 15 fest einzucodieren - ein Array mit
implizit abfragbarer Länge hat an dieser Stelle durchaus Vorteile.
Viele Grüße
Michael