myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Bekommt einer dieses Script zum Laufen ? (https://mygully.com/showthread.php?t=2007082)

Sysrq101 10.03.10 04:31

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:

nightmare1942 10.03.10 07:29

Dann gib mal bitte hier den code, wie du ihn zusammengesetzt hast. denn so kann man ja nix verbessern;)

Sysrq101 10.03.10 10:47

<?php
if($_GET['action'] == "send")
{
if($_POST['number'] != md5($_POST['arithmetic']))
{
$err_text .="Die Rechenaufgabe wurde falsch gel&ouml;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>
');
?>

urga 10.03.10 18:29

Code:

value="<?php echo md5(( $Zahl_1 + $Zahl_2 )); ?>"/>
hier liegt der fehler.... weil, du bist immer noch immerhalb der echo-anweisung.
heisst da müsste stehen:
Code:

value="' . md5( $Zahl_1 + $Zahl_2 ) . '" />
und: vorletzte zeile ist die ')' zuviel.
und2: zwischen echo und "'" fehlt anscheinend ein leerzeichen.

Sysrq101 11.03.10 05:51

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&ouml;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>
';
?>

stan1986 11.03.10 06:11

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&ouml;st!";
echo "hallo";
}

}
else
{
?>

Hier das Formular in normalem HTML

<?php
}
?>

Sysrq101 11.03.10 06:24

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.

stan1986 11.03.10 07:44

Was es ändert?

Es wird übersichtlicher (z.B. syntaxhighlighting im editor). Übersicht ist für Anfänger sicher nicht schlecht.

xonaracs 11.03.10 08:04

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.

Sysrq101 11.03.10 08:33

ich komm eifnach nicht drauf. aber irgendwas stimmt nicht. weiß einer von euch weiter ?

stan1986 11.03.10 14:25

Hab hier im moment kein PHP Parser zu Verfügung, werde es mir morgen Abend mal laden und anschauen.

Irolight 11.03.10 18:20

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:

&& (isset($_POST['number']) && isset($_POST['arithmetic'])) 

erweitern

urga 11.03.10 18:50

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']) {
  // das formular wurde abgeschickt, weil der POST parameter number existiert.
  ...
}

und weiter unten sollte
<form method="post" .... >


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.