[PHP] Variable wird nicht übergeben!

Benji

Lieutenant
Registriert
Jan. 2004
Beiträge
974
HI!
Ich bin gerade dabei PHP zu lernen und wollte grade ein HTML Formular machen das dann über ein PHP-Skript ausgewertet wird.
Aber meine Variabeln aus dem HTML Formular werden nicht an das PHP-Skript übergeben.
Hier mal der Code:
HTML: Datename ist index.html
HTML:
<html>
<body>
Bitte tragen Sie ihre Adresse ein und senden Sie das Formular ab.<br>
<form action = "u1.php" method = "post">
    Vorname: <input name = "vn"><br>
    Nachname: <input name = "nn"><br>
    Strasse: <input name = "st"><br>
    Hausnummer: <input name = "hn"><br>
    PLZ: <input name = "plz"><br>
    Ort: <input name = "ort"><br>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

PHP: Dateiname ist u1.php
PHP:
<html>
<body>
<?php 
echo "An<br>";
echo "$vn $nn<br>";
echo "$st $hn<br>";
echo "$plz $ort<br>";
?>

</body>
</html>

Habe nen Apache-Server unter Debian LInux kanns an dem liegen?
 
Zuletzt bearbeitet von einem Moderator: (richtige Tags verwendet)
Wieso solls am Apache liegen?? Hast denn schonmal einfach getestet ob php Dateien funktionieren?
Also einfach mal ne php Datei erstellen und echo "test"; reinschreiben??

Desweiteren fehlt bei deinem Code was. Und zwar bei den Textfeldern der Typ.
Das muss heißen <input type="text" name="hn"> ;-) Vielleicht liegts an dem, glaub ich aber nicht.
Aber ich verstehe nicht warum die WErte nicht übergeben werden.
Probier mal anstatt $vn einfach $_REQUEST['vn'] !! Dann müsste es normal auf jeden Fall klappen.

peace hegelbock
 
ok werd ich gleich testen!

Also PHP funktionier auf dem Apache aber ich dachte vielleicht muss ich ein extra Plug-In oder so installieren damit er Varibalen übergeben kann, kenn mich da noch nicht so aus!

//edit:
also wenn ich "type = "text"" dazu schreibe gehts nicht und wenn ich das $vn durch $_REQUEST['vn'] austausche dann kommt folgender Fehler:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/apache2-default/u1.php on line 6
 
Zuletzt bearbeitet:
test.html
Code:
<html> 
<body> 
Bitte tragen Sie ihre Adresse ein und senden Sie das Formular ab.<br> 
<form action="u1.php" method="post">  
Vorname: <input name="vn"><br>  
Nachname: <input name="nn"><br>  
Strasse: <input name="st"><br>  
Hausnummer: <input name="hn"><br>  
PLZ: <input name="plz"><br>  
Ort: <input name="ort"><br>  
<input type="submit">  
<input type="reset"> 
</form> 
</body> 
</html>
test.php
PHP:
<?php
echo "An<br>";
echo $_POST["vn"];
echo "<br>";
echo $_POST["hn"];
echo "<br>";
echo "etc...";
?>

So sollte es funktionieren...überprüfe bitte zunächst ob Register_globals aktiviert ist.
Code:
<input name = "vn">
Ist keine gutes und sauberes HTML. Für Request ($_REQUEST) solltest $_POST oder $_GET verwenden je nach Übertragungsmethode deines Scriptes.
 
Zuletzt bearbeitet:
PHP:
<html>
<body>
<?php
echo "An<br>";
echo $_POST['vn']." ".$_POST['nn']."<br>";
echo $_POST['st']." ".$_POST['hn']."<br>";
echo $_POST['plz']." ".$_POST['ort']."<br>";
?>

</body>
</html>

Funktioniert es so vielleicht?
 
Danke @The Prophet und @Faustpfand
jetzt funktionierts!
 
@The Prophet
Warum geht das hier nicht aus dem REQUEST rauszulesen?? Bei mir funktioniert das super.
Und noch eine Frage, was ist der Unterschied zwischen GET und POST?
 
request sollte auch gehen, ist aber gefährlich. post und get sind 2 verschiedene übertragungswege im http protokoll. bei get werden die daten direkt an die url angehängt, diese daten lassen sich leicht vom benutzer manipulieren. post daten werden extra versendet(mit dem http post befehl, und nicht get wie bei dem anderen).

wenn man nun request benutzt verliert man aber auch die sicherheit von mit post übertragenen variablen da diese je nach php configuration durch die get variablen überschrieben werden könnten.

man sollte also immer $_POST oder $_GET nehmen da dort sichergestellt ist das diese variablen auch über den ausgewählten weg(also post oder get) in das script gelangt sind.

P.S.: aus dem selben grund sollte register gobals auch aufjedenfall deaktiviert sein.
 
Hegelbock schrieb:
@The Prophet
Warum geht das hier nicht aus dem REQUEST rauszulesen?? Bei mir funktioniert das super.
Und noch eine Frage, was ist der Unterschied zwischen GET und POST?

Kontrollier mal die Registerglobals Einstellungen deiner PHP ini. Eventuell hängt es damit zusammen.
 
Zurück
Oben