PHP Anfängerproblem

bpblub

Cadet 4th Year
Registriert
Mai 2008
Beiträge
124
Hey Leute,

Ich hab mich ein paar Jahre mit C++ und Java beschäftigt und interessiere mich zur Zeit für PHP. Das ist bei mir immer so eine Laune. ; )

Jedenfall bin ich auf ein Problem gestoßen. Nämlich will ein Formular ausfüllen lassen, danach die eingetragenen Daten auf die nächste Seite übertragen werden. Soweit ich es verstanden hab, gibt es 2 Möglichkeiten:
Post und noch eins, was mir gerade nicht einfällt.
Jedenfalls ich hab mich für "Post" entschieden aber das funktioniert nicht richtig.

Ich hab es mal auf mein Server hochgeladen:

http://www.5legends.kilu.de/php/blub.php

Mein Kontaktformlar:
Code:
<html>
<head>
<title>Kontaktformular</title>
</head>

<body>

<p>
<h3>Geben sie ihre Daten ein!</h3>
<form action="antwort.php" method="post">
Vorname <br><input type="text" name="vorname" size="20"><br>
Nachname <br><input type="text" name="nachname" size="20"><p>
Email <br><input type="text" name="email" size="30"><p>
<h4>Wie hat ihnen das gefallen?</h4><p>
<select size="1" name="rank">
<Option value="keine angabe">Keine Angabe!</option>
<Option value="sehr gut">Sehr gut!</option>
<Option value="gut">Gut!</option>
<Option value="nicht so gut">Nicht so gut!</option>
</select><p>
<input type="submit" name="submit" value="Abschicken">
</form>

</body>
</html>

Die Antworten:
Code:
<html>
<head>

<title>Kontaktformular</title>
</head>

<body>
<?php

echo "Ihr Vorname <br>$vorname<br>";
echo "Ihr Nachname <br>$nachname<br>";
echo "Ihre Email <br>$email<br>";
echo "Ihre Note fuer unser Spiel <br>$rank<p>";

if($rank == "keine angabe")
{echo "Danke für die Teilnahme";}
elseif ($rank == "nicht so gut")
{echo "Schade, dass ihnen das Spiel nicht gefallen hat";}
else
{echo "<b>Schoen, dass ihnen das Spiel gefallen hat<b/>";}

?>

</body>
</html>

Er überträgt irgendwie die Daten nicht. Im Buch was ich lese, steht auch nichts weiteres drin und bin schon etliche male den Code durchgegangen.

Ich hoffe ich hab mein Problem klar dargestellt.
Vielen Dank für die Antworten. ; )

lg
blub ; )
 
Schreib anstatt $vorname einfach $_POST['vorname'], anstatt $nachname einfach $_POST['nachname'] und so weiter. Ach ja, und schmeiß das Buch weg.
 
Wenn dort allen Ernstes nur deine Variante drin steht und kein Wort von meiner, dann ist es wohl nicht zu gebrauchen. Also, unter gewissen Umständen funktioniert deine auch, nämlich dann, wenn die Direktive register_globals eingeschaltet ist. Dies ist jedoch überhaupt nicht die gängige Praxis, aus Sicherheitsgründen gehört register_globals abgeschaltet. Die offizielle Empfehlung der PHP Group ist ebenfalls, Register Globals nie zu verwenden und weist des Weiteren daraufhin, dass dieses Feature aus PHP 6 gestrichen wird und von da an sowieso jeder gezwungen ist, auf Register Globals zu verzichten.

Ich finde das schon ziemlich heftig, wenn in einem Buch nichts von dem „Standardvorgehen“ steht – erst recht, wenn vorher kein Hinweis kam, dass man dafür register_globals aktivieren muss. Wie gesagt, dieser Weg ist alles andere als gängige Praxis. In einem Lehrbuch das beizubringen ist Schwachsinn. Entweder ist dein Buch ziemlich veraltet oder wirklich einfach nur schlecht. In beiden Fällen gehört es ausgewechselt. Ich würde ihm jedenfalls nicht mehr trauen.
 
Zuletzt bearbeitet: (Rechtschreibung)
Hallo bpblub.

Da du dich ja schon mit der Programmierung allgemein auskennst, solltest du schon
wie mein vorredner das Buch Wegpacken.

Gute hilfe findest du zu hauf im Netz in sachen PHP, dort wird dir auch in
Beispielen genannt, wieso / weshalb / warum du das so oder so machen solltest.

Eine Gute anlaufstelle womit ich auch angefangen habe in PHP ist z.b.

http://tut.php-quake.net/
http://de2.php.net/manual/de/book.session.php < nur mal als Beispiel

Ich für mein Teil habe es so gemacht, ich hatte damals PHPKit als Webseite und von
der Sprache an sich überhaupt keine Ahnung.
Durch diese Beiden sachen, habe ich die allgemein Syntax von PHP Kennengelernt, und
durch meine Basic / C und Delphi kenntnisse wusste ich ja schon was schleifen variablen konstanten und co sind.

Ich wünsche dir viel erfolg auf deinen Weg in die PHP Welt.
 
Also im Buch stehen 2 Methoden, aber in diesen Fall wurde post genommen. Deine Variante steht leider nicht drin. Es gibt ja noch die "get" Methode steht jedenfall dort drinne.
Das wundert mich ein wenig, weil das Buch von Markt und Technik ist.

Nagut, ich kaufe mir mal ein anderes. ; )

*edit

Dann werd ich mir wohl kein neues Buch kaufen sondern den Ratschlag von cyres nehmen. ; )
 
Nur aus Interesse, ich habe ja oben bereits Vermutungen angestellt, auf die du leider nicht näher eingegangen bist: Aus welchem Jahr stammte das Buch? War es wirklich ein aktuelles oder wenigstens ein veraltetes?
 
Morgen ;-)

also wenn das Buch aus dem Jahr 2002 stammt, dann schmeiss es wirklich weg. PHP hat sich in den letzten 5 Jahren enorm weiter entwickelt und vieles was in 2002 noch gänge Praxis war ist mittlerweile zum Glück(!) nicht mehr Stand der Dinge.
Die Register-Globals sind da nur ein Beispiel. Vielleicht wird mit PHP6 daraus endlich mal eine brauchbare Sprache, die auch mit was anderem als ASCII umgehen kann :D
Wer immer dir das Buch empfohlen hat, gehört verprügelt :evillol:
 
Zurück
Oben