Fehler im Formular

LordoftheBord

Mitglied
Hi leutz

Ich steh kurz vorm Nervenzusammenbruch.
Also ich schildere euch mal meine "Geschichte" (man kanns schon fast Geschichte nennen :-)

Ich fing so vor einer Woche an PHP zu lernen. Habe mir gleich 2 Bücher gekauft, in dem Glauben: "Was in dem einen nicht oder falsch drinnnsteht, steht im anderen drin bzw. richtig.

Lief auch alles ganz gut, da ich schon ein bissel Erfahrung durch C und Turbo Pascal hab.

Nur dann kam das Kapitel "Formulare".

Und ich gleich: "Oh ja super. Das bockt bestimmt!. Muss ich ma sofort ein Beispiel-Script von der Buch CD ausprobieren."

Gesagt, getan. Doch als ich das Formular ausgefüllt hatte, kam die erste böse überraschung: Eine Fehlermeldung (Wohlgemerkt, ein Beispiel-Script von der Heft-CD). Ich denke also: "Ha. Was bin ich für ein Genie. Wusste doch das sowas irgendwann kommt." Also, ich das 2. Buch geholt, die CD reingeschmissen, das Formular ausgefüllt, und... Fehlermeldung. "Argh". Nach 10 Minuten starren auf den Bildschirm, mir der Fehlermeldung, geh ich also zum ersten Board. Frage gestellt, 10 verschieden Antworten bekommen, von denen keine funzte. Zum nächsten Board: Das selbe in grün.

So langsam am verzweifeln, frage ich also Freunde. Ergbnis: Nichts funtzt.

SO. Also ändere ich jetzt mal meine Strategie. Wie würdet ihr ein Formular schreiben, das folgende Funktionen haben sollte:

- Der Benutzer gibt einen Namen, welcher gespeichert werden soll.
- Der Benutzer sucht sich aus 4 Produkten eins aus, welches ebenfalls gespeichert werden soll (Mit dem Select-Element von HTML)
- Nach abschicken des Formulars, soll der Benutzer weitergeleitet werden zu einer Seite, wo all seine angaben angezeigt werden
- Es soll auf der PHP-Version 4.2.2 oder 4.2.3 laufen

Wie würdet ihr das machen

P.S.: Normaler weise mache ich das nicht mit einer Schritt-für-Schritt Anweisung. Aber ich weis einfach nicht mehr weiter.

mfg
LotB
 
ich denke mal, daß die Beispielscripte aus Deinen Büchern schon ok sind soweit.

Welche Fehlermeldung bekommst Du denn?


Dunsti
 
HTML-Datei

<html>
<head>
<title>Listing 9.4: Ein einfaches HTML Formular mit SELECT Anweisung</title>
</head>
<body>
<form action="listing_9_5.php" method="POST">
<input type="text" name="benutzer">
<br>
<textarea name="adresse" rows="5" cols="40">
</textarea>
<br>
<select name="produkte[]" multiple>
<option>Taschenmesser
<option>Kuchengabel
<option>Bilderrahmen
<option>Lampenschirm
</select>
<br>
<input type="submit" value="Klick mich">
<br>
</form>
</body>
</html>



PHP-Datei

<?php
print "Übergeben wurde " . $POST['benutzer'] . " als Wert<br>";
print "Übergeben wurde " . $POST['adresse'] . " als Wert<br>";
print "Die ausgewählten Produkte sind:"
foreach($_POST['produkte'] as $_POST['wert']) {
echo $_POST['wert'];
}
?>



Fehlermeldung:

Parse error: parse error, unexpected T_FOREACH in C:\home\phpkurs\listing_9_5.php on line 10
 
das ist alles???

vielleicht solltest Du mal in die Zeile vor dem foreach am Ende ein ; setzen ;)


Dunsti
 
wenn es im Buch falsch drin steht, dann schon. :-)

Ehrlichgesagt kann ich mir aber nicht vorstellen, daß in zwei verschiedenen Büchern der gleiche Fehler ist.


Dunsti
 
Ganz nebenbei ist da noch ein Fehler drin:

PHP:
<?php 
print "Übergeben wurde " . $_POST['benutzer'] . " als Wert<br>"; 
print "Übergeben wurde " . $_POST['adresse'] . " als Wert<br>"; 
print "Die ausgewählten Produkte sind:" ;
foreach($_POST['produkte'] as $_POST['wert']) 
{ 
  echo $_POST['wert']; 
} 
?>

Aber das man einen solch simplen Fehler nicht versteht ( wo man doch zwei mehr oder weniger korrekte Bücher zur Hand hat) kann man auch nicht gerade engagiert nennen..
 
das ist alles???

vielleicht solltest Du mal in die Zeile vor dem foreach am Ende ein ; setzen

Sorry. Hab ich Gestern, nachdem ich den Code 10 mal wieder geändert hab, vergessen. Aber daran liegts nicht (also nicht allein).

...Aber das man einen solch simplen Fehler nicht versteht ( wo man doch zwei mehr oder weniger korrekte Bücher zur Hand hat) kann man auch nicht gerade engagiert nennen..

Also, wenn man 5 Tage, je ca. 6 Stunden an einem simplen Formular sitzt und einen Fehler sucht, also wenn man das nicht engagiert nennt, dann weis ichs auch nicht.

Und das man nach 1 Woche PHP noch nicht alle zusammenhänge blickt, ist wohl auch normal, oder? Ich kann ja nichts dafüf, dass in meinem Buch drin steht, dass man das so schreibt: $Benutzer.

2 Tage später habe ich aber erfahren, dass man in neueren Versionen von PHP das so schreiben muss: $_POST[VAR] bzw. $GET_[VAR].

Wieder einen Tage später habe ich erfahren das man das so schreibn muss: $_POST["VAR"] bzw $_GET["VAR"]. Und ca. 3 Stunden später hat mir wieder ein anderer erzählt, dass man das so schreibt: $POST_['VAR'] bzw $_GET['VAR']. Dann ham sie sich gestritten, ob man POST oder GET schreibt, usw.

Also bitte ich um etwas nachsicht mit mir. Ich stelle bestimmt nicht aus Spaß solche Fragen. Aber wenn jeder etwas anderes sagt...

Also zurück zum code. Hab das jetzt so verändert:

PHP:
<?php 
print "Übergeben wurde " . $POST['benutzer'] . " als Wert<br>"; print "Übergeben wurde " . $POST['adresse'] . " als Wert<br>"; print "Die ausgewählten Produkte sind:"; 
foreach($produkte as $wert) { 
echo $wert; } 
?>

Die Fehlermeldung dazu lautet:

Notice: Undefined variable: POST in C:\home\phpkurs\listing_9_5.php on line 7
Übergeben wurde als Wert

Notice: Undefined variable: POST in C:\home\phpkurs\listing_9_5.php on line 7
Übergeben wurde als Wert

Notice: Undefined variable: POST in C:\home\phpkurs\listing_9_5.php on line 8
Übergeben wurde als Wert
Die ausgewählten Produkte sind:
Warning: Invalid argument supplied for foreach() in C:\home\phpkurs\listing_9_5.php on line 10

Zeile 7 wäre die, mit dem Array $:POST['benutzer'].
Zeile 8 wäre die, mit dem Array $:POST['adresse'].
Zeile 10 wäre die, mit der foreach Anweisung.

Hoffe ihr könnt mir helfen.

mfg
LotB
 
Zuletzt bearbeitet:
ok, die ersten Fehlermeldungen sagen, daß die Variable "$POST" nicht definiert ist.
Um die eine Diskussion zu beenden: es muss heißen $_POST und $_GET


probier das mal mit folgenden Zeilen:
PHP:
foreach($_POST['produkte'] as $wert) { 
echo $wert; }


ohne Garantie ;)


Dunsti
 
Habs jetzt so verändert:

<?php
print "Übergeben wurde " . $POST['benutzer'] . " als Wert<br>";
print "Übergeben wurde " . $POST['adresse'] . " als Wert<br>";
print "Die ausgewählten Produkte sind:";
foreach($_POST['produkte'] as $wert) {
echo $wert;
}
?>

Also, das mit dem Select klappt. Aber das andere noch net. Ausgabe:

Notice: Undefined variable: POST in C:\home\phpkurs\listing_9_5.php on line 7
Übergeben wurde als Wert

Notice: Undefined variable: POST in C:\home\phpkurs\listing_9_5.php on line 8
Übergeben wurde als Wert
Die ausgewählten Produkte sind:Kuchengabel

Kuchengabel hab ich halt eingegeben.
Aber das mit dem $_POST['benutzer und adresse funtzt noch net.

Aber schonmal danke wegen dem Select

mfg
LotB
 
Zurück