![]() |
Bekommt einer dieses Script zum Laufen ?
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
Ich habe das mal zusammengesetzt. Es will aber nciht laufen, enferne ich eine Fehlermeldung kommt die Nächtste. Ich habe wohl irgendwas komplett verkehrt gemacht. So groß ist das S***** ja nicht, kann das mal jemand zusammensetzen bzw. die fehlenden Buttons etc. hinzufügen. Ich bastel mal wieder die ganze Nacht durch und komme nicht weiter.:cry::cry::cry: |
Dann gib mal bitte hier den code, wie du ihn zusammengesetzt hast. denn so kann man ja nix verbessern;)
|
<?php
if($_GET['action'] == "send") { if($_POST['number'] != md5($_POST['arithmetic'])) { $err_text .="Die Rechenaufgabe wurde falsch gelöst!"; } ?> <?php $Zahl_1 = intval(rand(1, 5)); $Zahl_2 = intval(rand(1, 5)); ?> Wieviel ist <?php echo $Zahl_1; ?> plus <?php echo $Zahl_2; ?>? <?php echo' <form method="post" action="'.$_SERVER["PHP_SELF"].'?'.$_SERVER['QUERY_STRING'].'"> <input name="number" type="hidden" id="number" value="<?php echo md5(( $Zahl_1 + $Zahl_2 )); ?>"/> <input name="arithmetic" type="text" id="arithmetic" style="width:250px" onfocus="if(this.value=='Das Ergebnis bitte hier hinein...')this.value=''" onblur="if(this.value=='')this.value='Das Ergebnis bitte hier hinein...'" value="Das Ergebnis bitte hier hinein..."/> <input type="submit" name="button" value="Absenden" class=rahmen> </form> '); ?> |
Code:
value="<?php echo md5(( $Zahl_1 + $Zahl_2 )); ?>"/> heisst da müsste stehen: Code:
value="' . md5( $Zahl_1 + $Zahl_2 ) . '" /> und2: zwischen echo und "'" fehlt anscheinend ein leerzeichen. |
Kann noch mal einer drüber gucken ? Das Formular funktioniert jetzt zwar einwandfrei, aber die er gibt den text der if schleife nicht aus aus bzw. die If schleife funktioniert nicht.
<?php if($_GET['action'] == "send") { if($_POST['number'] != md5($_POST['arithmetic'])) { $err_text .="Die Rechenaufgabe wurde falsch gelöst!"; echo "hallo"; } } ?> <?php $Zahl_1 = intval(rand(1, 5)); $Zahl_2 = intval(rand(1, 5)); ?> Wieviel ist <?php echo $Zahl_1; ?> plus <?php echo $Zahl_2; ?>? <?php echo' <form method="send" action="'.$_SERVER["PHP_SELF"].'?'.$_SERVER['QUERY_STRING'].'"> <input name="number" type="hidden" id="number" value="' . md5( $Zahl_1 + $Zahl_2 ) . '" /> <input name="arithmetic" type="text" id="arithmetic"/> <input type="submit" name="send" value="Absenden" class=rahmen> </form> '; ?> |
Ein kurzer genereller Tipp von mir:
Wenn du das S***** testest, also die Seite mit dem S***** im Browser offen hast, dann schau dir auch immer (vor und nach dem absenden des Formulars) den Quelltext an (z.B. im Firefox ctrl+u).. dann siehst du schon mal, ob benötigten Felder (Inputfelder, etc.) überhaupt ausgefüllt sind und wenn ja, mit welchen Werten sie befüllt sind. Somit kannst duch immer näher an den Fehler rantasten.. Dein Problem dürfte vermutlich auch noch hier stecken: [...]="if(this.value=='Das Ergebnis bitte hier hinein...')this.value=''" onblur="if(this.value=='')this.value='Das Ergebnis bitte hier hinein...'" [...] mit den Hochkommas (value=='Das Ergbegnis...) unterbrichst du ja dein Echo String. Das gesamte Formular würde ich nicht in einem Echo ausgeben, sondern: <?php if($_GET['action'] == "send") { if($_POST['number'] != md5($_POST['arithmetic'])) { $err_text .="Die Rechenaufgabe wurde falsch gelöst!"; echo "hallo"; } } else { ?> Hier das Formular in normalem HTML <?php } ?> |
was soll das denn ändern, ob echo oder ncht echo ? ich denke eher, dass die übergabevariablen falsch deklariert sind und deswegen die IF Schleife nicht läuft.
|
Was es ändert?
Es wird übersichtlicher (z.B. syntaxhighlighting im editor). Übersicht ist für Anfänger sicher nicht schlecht. |
Es gibt keine If-Schleifen :D
Wenn deine If-Abfrage nicht funktioniert, gib doch vorher einfach mal die Werte mit echo aus, dann kannst du sehen was er da vergleicht und findest eventuell den Fehler. |
ich komm eifnach nicht drauf. aber irgendwas stimmt nicht. weiß einer von euch weiter ?
|
Hab hier im moment kein PHP Parser zu Verfügung, werde es mir morgen Abend mal laden und anschauen.
|
bei
[HTML]<form method="send" action="'.$_SERVER["PHP_SELF"].'?'.$_SERVER['QUERY_STRING'].'">[/HTML] das methoden-Atribut mit post ausstatten. Am besten auch dass if awas prüft ob die rechung stimmt mit einen PHP-Code:
|
irolight war schneller.
aber 2 formulierungen können ja nicht schaden... a) es gibt keine if-schleifen. sondern nur if-abragen. b) <form method="send" gibt es nicht. es gibt als method entweder "get" oder "post" c) du hast keine form-variable namens action definiert. desshalb wird das erste if ($_GET['action'] == "send") schon scheitern. das if sollte so aussehen: Code:
if ($_POST['number']) { <form method="post" .... > |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.