Daten per Link an Formular weitergeben
Pfeiloor
- php
Hallo,
ich möchte gern Daten über einen Link an ein Formular weitergeben, leider bin ich ein absoluter PHP-Dummy und habe über Google nichts gefunden das irgendwie hilfreich ist.
Der Link soll ganz simpel so gestaltet werden:
reservierung.htm?tisch=12
Die Zahl 12 soll dann im Formularfeld "tisch" erscheinen.
Wie stell ich das an?
Moin
wenn du über die URL eine Variable übergibst, stehen dies im $_GET-Array zur Verfügung
Auf dein Beispiel gemüntzt:
reservierung.htm?tisch=12
die Variable tisch steht folgendermaßen zur Verfügung und kann nun frei verwendet werden: $_GET['tisch']
Verwendung z.B. <input type="text" value="<?php echo $_GET['tisch'];?>">
Gruß Bobby
Moin
wenn du über die URL eine Variable übergibst, stehen dies im $_GET-Array zur Verfügung
Auf dein Beispiel gemüntzt:
reservierung.htm?tisch=12
die Variable tisch steht folgendermaßen zur Verfügung und kann nun frei verwendet werden: $_GET['tisch']
Verwendung z.B. <input type="text" value="<?php echo $_GET['tisch'];?>">
Gruß Bobby
Vielen Dank! Ich mußte nur noch die Zieldatei von htm in php umbennenen damits der Server rafft.
Immerwieder erstaunlich wie schnell einem hier geholfen wir!
echo $begrüßung;
reservierung.htm?tisch=12
die Variable tisch steht folgendermaßen zur Verfügung und kann nun frei verwendet werden: $_GET['tisch']
Verwendung z.B. <input type="text" value="<?php echo $_GET['tisch'];?>">
Wenn man von diesem einfachen Inhalt ausgeht, ist das so in Ordnung. Doch die Welt ist schlecht, und du hast hier eine klassische XSS-Lücke gebaut. Das fängt damit an, dass jemand " übergeben kann, und da ist dann plötzlich das value="... beendet. "><script>... ist die Fortführung des Ausnutzens solch einer Lücke.
Deshalb gilt immer, nicht nur hier, dass Daten kontextspezifisch zu behandeln sind, wenn sie in einen bestimmten Kontext gebracht werden. Diese Regel gilt übrigens ohne Ausnahme.
Im Fall von HTML sind die HTML-eigenen Zeichen zu beachten, was in PHP die Funktion htmlspecialchars() erledigt.
<input type="text" value="<?php echo htmlspecialchars($_GET['tisch']);?>">
Außerdem sollte man niemals davon ausgehen, dass bestimmte Werte in den $_XXX-Arrays vorhanden sind. Eine Prüfung vor dem Zugreifen (isset()) und im Falle eines Nichtvorhandenseins einen Defaultwert zu verwenden, ist immer eine gute Idee.
echo "$verabschiedung $name";
Moin
Eine einfache Frage. Er bekam eine einfache Antwort.
Natürlich muss man das dann speziefischer Betrachten und Überlegungen wie Logik bei nichtvorhandensein oder auch über die Sicherheitsproblematik anstellen.
War ja aber nicht Teil der Frage.
Und du hast natürlich Recht mit deinen Aussagen!
Gruß Bobby
echo $begrüßung;
Natürlich muss man das dann speziefischer Betrachten und Überlegungen wie Logik bei nichtvorhandensein oder auch über die Sicherheitsproblematik anstellen.
War ja aber nicht Teil der Frage.
Einen Wert kontextspezifisch zu behandeln muss immer und unabhängig von der konkreten Frage oder Problemstellung erfolgen.
Gerade Anfänger neigen dazu, sich über die Risiken eines bestimmten Codes keine Gedanken zu machen. Und wenn sich ein einfaches Beispiel auf das Funktionierende beschränkt dabei das Notwendige außer Acht lässt, dann ist das schnell kopiert und mit ihm die Sicherheitslücke.
Wenn ich antworte ist mein Ziel immer, nicht nur eine Lösung zu präsentieren sondern auch die dabei und im Umfeld zu beachtenden Dinge mit anzuführen.
echo "$verabschiedung $name";
Moin
Wenn ich antworte ist mein Ziel immer, nicht nur eine Lösung zu präsentieren sondern auch die dabei und im Umfeld zu beachtenden Dinge mit anzuführen.
Das ist auch löblich und richtig... Manchmal fehlt eben die Zeit und der Weitblick... :-D
Gruß Bobby