weltvolk
30-03-2008, 11:53
Folgendes kleines Skript funktioniert nicht auf einem mit PHP 5 bestückten Server:
<?php
echo '<p>' . $variable . '</p>
<form action="' . $_SERVER['PHP_SELF'] . '" method="post">
<input type="text" name="variable" size="25">
<input type="submit" value="Senden">
</form>';
?>
Normalerweise sollte nach dem Senden des Textes dieser in $variable angezeigt werden, aber nichts kommt an. Auf einem anderen Server (PHP 4) funtioniert das Skript zwar, aber warum denn nicht mit PHP 5? :dontknow:
litterauspirna
30-03-2008, 11:58
Sollte bei deinem Submit Button nicht auch ein Name drin stehen wie zum Beispiel name="send"?
Auserdem kann das so auch nicht bei php4 funktionieren denn wenn du die Textfelder in ein echo eonschliest musst du das so schreiben
<input type=\"text\" name=\"feld\">
Das heist du musst die doppelten Hochkommas escapen,normalerweise müsstest du eine Fehlermeldung bekommen!
Ein bisschen mehr Code wäre Hilfreich denn aus dem bisschen kann man sich nichts erklären.
mfg der Litter
TheFish511
30-03-2008, 12:13
Auserdem kann das so auch nicht bei php4 funktionieren denn wenn du die Textfelder in ein echo eonschliest musst du das so schreiben
<input type=\"text\" name=\"feld\">
Das heist du musst die doppelten Hochkommas escapen,normalerweise müsstest du eine Fehlermeldung bekommen!
Nein, muss er nicht.
Bisschen mehr Code bitte.
Dein Stil ist übrigens grauenhaft, wie ich finde. Schreibe doch lieber so:
<?php
echo '<p>' . $variable . '</p> ' .
'<form action="' . $_SERVER['PHP_SELF'] . '" method="post">' .
'<input type="text" name="variable" size="25">' .
'<input type="submit" value="Senden">' .
'</form>';
?>
weltvolk
30-03-2008, 13:44
Also gut, habe es für euch schön gemacht:
<?php
if (!isset($_POST['senden']) OR empty($_POST['senden'])) {
echo "<form action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">";
echo "<input type=\"text\" name=\"variable\" size=\"25\">";
echo "<input type=\"submit\" name=\"senden\" value=\"Senden\">";
echo "</form>";
} else {
if (!empty($variable)) {
echo "$variable :-)<br>";
} else {
echo "Nichts angekommen :-(<br>";
}
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\">Neu laden</a>";
}
?>
Da geht es, dort geht es nicht. Woran liegt das bloß?
UzumakiNaruto
30-03-2008, 14:12
[...]
if (!empty($_POST['variable'])) {
echo $_POST['$variable']." :-)<br>";
} else {
echo "Nichts angekommen :-(<br>";
}
[..]
versuchs mal so :-D
weltvolk
30-03-2008, 14:26
Ja, jetzt funktioniert es. Das sind halt die Probleme des Autodidakten :rocks:
TheFish511
30-03-2008, 14:27
Stichwort: register globals
Wenn register globals auf off gesetzt ist(sinnvollerweise Standard unter PHP 5), so wird aus
echo "<input type=\"text\" name=\"variable\" size=\"25\">"; nichtmehr eine globale Variable $variable erzeugt.
Den Inhalt des Feldes musst du dann so auslesen:
echo $_POST["variable"];