PDA

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 ?

Gaert
23-11-2005, 12:07
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

ClausVB
23-11-2005, 12:37
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 !!

Gaert
23-11-2005, 14:37
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

Giuly
24-11-2005, 00:33
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

Gaert
24-11-2005, 07:30
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.

ClausVB
24-11-2005, 11:36
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