Formular und Variable
plerst
- php
0 Hartwig0 dedlfix0 Stefan Alpers1 dedlfix0 Stefan Alpers0 dedlfix
0 spider
Hi,
Angenommen ich hab in einem Script diese Zeilen:
<form action="news.php">
<p>Titel: <input type="text" name="titel" size="40" maxlength="50"></p><br>
<p>Inhalt: <textarea type="text" name="inhalt" rows="10" cols="50"></textarea></p>
<br>
<input type="submit">
</form>
So, und wie kann ich das geschriebene, was jetzt an news.php übergeben wurde, dort auch verwenden?
So gehts ja nich:
<html>
<head>
</head>
<body>
<?php
echo "$titel<br>\n$inhalt";
?>
</body>
<html>
Wie geht das?
Danke im Voraus.
So gehts ja nich:
<html>
<head>
</head>
<body>
<?php
echo "$titel<br>\n$inhalt";
?>
</body>
<html>
Hallo,
wenn in der php.ini "register_globals" auf off gesetzt ist mußt Du die Variablen erst anholen:
<?php
$titel=$_REQUEST['titel'];
...
?>
<html>
<head>
</head>
<body>
<?php
echo "$titel<br>\n$inhalt";
?>
</body>
<html>
Dann sollte es klappen.
echo $begrüßung;
wenn in der php.ini "register_globals" auf off gesetzt ist mußt Du die Variablen erst anholen:
<?php
$titel=$_REQUEST['titel'];
Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).
echo "$verabschiedung $name";
Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).
echo $begrüßung;
Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).
Hast du auch verstanden, was du da verlinkt hast? Es geht dort und auch in vielen meiner bisherigen Postings darum, Eingabewerte zu _prüfen_. Das einfache Umkopieren in eine andere Variable erfüllt diese Aufgabe nicht.
Es ist aus sicherheitstechnischen Gesichtspunkten vollkommen gleich, ob man
echo $_GET['foo'];
oder
$foo = $_GET['foo'];
echo $foo;
schreibt. Es ist ebenfalls gleich, ob man
echo htmlspecialchars($_GET['foo']);
oder
$foo = $_GET['foo'];
echo htmlspecialchars($foo);
notiert, jedoch findet hier zwar keine Prüfung aber eine HTML-gerechte Maskierung der Daten statt, was eine Injektion mit HTML und/oder clientseitigem Scriptcode verhindert.
echo "$verabschiedung $name";
Hast du auch verstanden, was du da verlinkt hast? Es geht dort und auch in vielen meiner bisherigen Postings darum, Eingabewerte zu _prüfen_. Das einfache Umkopieren in eine andere Variable erfüllt diese Aufgabe nicht.
Ich wollte darauf hinweisen, dass man alle übergebenen Werte aus $_GET, $_POST, ... prüfen und diese nicht direkt verwenden sollte:
"Keinesfalls darf ein Programm Werte aus einer GET, POST oder COOKIE-Quelle direkt verwenden. Jeder externe Wert ist einer Plausibilitätsprüfung zu unterziehen, bevor er verwendet wird (Genau das wird in Wie unterscheide ich böse Variablen von guten? näher beschrieben)."
Deiner ersten Aussage
Ein "Abholen" ist nicht erforderlich. Man kann da, wo im weiteren $title verwendet wird ebensogut $_REQUEST['titel'] verwenden (oder $_GET/$_POST statt $_REQUEST wenn es etwas spezifischer sein soll).
kann man das nicht entnehmen. Aber vielleicht bin ich da auch zu haarspalterisch.
Viele Grüße,
Stefan
echo $begrüßung;
Ich wollte darauf hinweisen, dass man alle übergebenen Werte aus $_GET, $_POST, ... prüfen und diese nicht direkt verwenden sollte:
Deiner ersten Aussage [...] kann man das nicht entnehmen. Aber vielleicht bin ich da auch zu haarspalterisch.
Ja, soweit richtig. Ich habe auch nicht die Kraft und Lust jedes Mal auf alle möglichen sicherheitsbedenklichen Themen eines Scripts einzugehen. Hier ging es mir deshalb lediglich darum der Aussage zu widersprechen, man müsse EGPCS-Variablen "abholen" und eine weitere Variable anlegen, um damit arbeiten zu können.
echo "$verabschiedung $name";
Hi,
So gehts ja nich:
<?php
echo "$titel<br>\n$inhalt";
?>
Aber so:
Zum einen der Zusatz in <form action="news.php" method="post">
Und dann in der news.php
<?php
echo $_POST['title']." - ".$_POST['inhalt'];
?>
Gruß spider