Archiv verlassen und diese Seite im Standarddesign anzeigen : Formular mit POST
malabarista
23-11-2005, 11:08
Ich habe ein einfaches Formular erzeugt, die Daten mittels POST übertragen und versucht
diese wieder einzulesen.
Definition des Formulars :
<form method="post" action="formantwort.php">
<p>Benutzer-Name:
<input type="text" name="bname" size="30" maxlength="30">
</p>
<p>Passwort:
<input type="text" name="bpasswort" size="16" maxlength="16">
</p>
<p>Benutzer-Level:
<input type="text" name="blevel" size="2" maxlength="2">
</p>
<p>
<input type="submit" name="Submit" value="Senden">
<input type="reset" name="Reset" value="Zurücksetzen">
</p>
</form>
--------------------------------------------------
formantwort.php
<html>
<head>
<title>Antwort : Kontaktformular</title>
</head>
<body>
<h1>ANTWORT-Auswertung</h1>
<?php
echo "<font color=red size=3>
Ergebnis:";
echo "
Folgende Daten wurden Übermittelt:<p>
<b>Benutzer-Name:</b> $bname<br>
<b>Passwort:</b> $bpasswort<br>
<b>Level:</b> $blevel<br>";
?>
</body>
</html>
Es steht aber in den Variablen $bname, $bpasswort und $blevel nichts drin.
Vermutlich muss ich noch irgendeine Zuweisung der mittels POST übermittelten
Daten zu den Variablen vornehmen. (Allerdings stand dies nicht in meinem Tutorial).
Was ist mein Fehler ?
Hallo,
1. dein Tutrorial ist wohl veraltet und bezieht sich auf register_globals=0n
2. die Variablen stehen in $_POST[] (schau nach mit print_r($_POST); )
3. Nächstes mal die Suchfunktion benutzen - das Thema kommt alle paar Wochen.
Kleine Lektüre: http://de3.php.net/reserved.variables
Gruß,
Gaert
Zwei Tips:
1. Bitte formatiere Deinen Source-Code mit den BB-Tags für PHP, HTML oder sonstigen Code
2. Wenn Du gute Tutorials (http://lamp.clausvb.de/index.php?menuid=148&reporeid=8) suchst, kann ich Dir vor allem den Bereich der GET-Parameter vom quakenet:#php Tutorial (http://tut.php-q.net/get.html) ans Herz legen.
Auch das dritte Videotutorial zu GET und POST (http://www.tutorials.de/tutorials164295.html) ist sehr gut. Allerdings ist hier das Grundwissen der Videotutorials 1 und 2 Voraussetzung. Eine Übersicht von guten Tutorials (http://lamp.clausvb.de/index.php?menuid=148&reporeid=8) kannst Du auch hier im Forum (per Suche) finden.
Gruß
Claus
malabarista
23-11-2005, 13:04
danke für die Unterstützung.
mein Tutorial ist PHP4 für profis von Kannengiesser
und SQL4 vom gleichen Autor.
Leider schreibt er nichts davon, wie man aus $_POST auf die Variablennamen kommt,
nach seiner Darstellung geht dies automatisch !!
Hallo,
Ich nehme an, dass es sich um eine alte Auflage handelt - du solltest dir was PHP angeht eine neuere Lektüre zulegen. Bis php 4.1 hat das geschriebene funktioniert - ab dieser Version wurde das register_globals Flag aus Sicherheitsgründen standardmäßig in der php.ini deaktiviert.
Mehr Infos zu diesem Thema: http://de3.php.net/register_globals
Gruß,
Gaert
formantwort.php
<html>
<head>
<title>Antwort : Kontaktformular</title>
</head>
<body>
<h1>ANTWORT-Auswertung</h1>
<font color=red size=3>
Ergebnis:
Folgende Daten wurden Übermittelt:<p>
<b>Benutzer-Name:</b> <?=$_REQUEST["bname"]?><br>
<b>Passwort:</b> <?=$_REQUEST["bpasswort"]?><br>
<b>Level:</b> <?=$_REQUEST["blevel"]?>
</body>
</html>
$_REQUEST ist $_POST und $_GET zusammen.
MfG
formantwort.php
$_REQUEST ist $_POST und $_GET zusammen.
$_REQUEST ist $_POST und $_GET UND $_COOKIE.
Und wenn du eh Variablen per Post erwartest, dann solltest du aus Sicherheitsgründen auch $_POST abfragen!
Gruß,
Gaert
malabarista
24-11-2005, 09:41
Dankeschön für das verbesserte Beispielscript.
Und wenn du eh Variablen per Post erwartest, dann solltest du aus Sicherheitsgründen auch $_POST abfragen!
Das sehe ich genauso. Es gibt Shop-Systeme, die sogar Preise mit POST übertragen oder mit HIDDEN-Feldern mitschleppen. Sobald Du da als Hacker den Fuß drin hast, kannst Du ein Buch das 20 Euro kostet für 1 Euro kaufen.
Mehr zu genau dieser Thematik steht in einer sehr interessanten PowerPoint-Folie (PHPUG-PHP-Sicherheit-Parametermanipulationen.ppt) (auch als PDF (http://www.hardened-php.net/articles/PHPUG-PHP-Sicherheit-Parametermanipulationen.pdf) erhältlich) auf:
http://www.hardened-php.net/talk_grundlagen_php_sicherheit.70.html
Um sicher zu programmieren, muss man im PHP-Skript die Formularvariablen auf Gültigkeit überprüfen.
Parametermanipulation = Gezielte Beeinflussung der Arbeitsweise eines Skriptes durch Übermittlung von unerwarteten Werten z.B. 9, obwohl ein Voting zwischen 1 und 5 erwartet wird
Ich kann die dort dargelegten Ausführungen nur jedem ans Herz legen.
Gruß
Claus
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.