Andreas Korthaus: PHP - Formular - $PHP_SELF und Variablen

Beitrag lesen

Hoi!

$ausgabe.=serialize($wert1);
$ausgabe.=serialize($wert2);
$ausgabe.=serialize($wert3);
echo $ausgabe;

sowas ist böse[tm] ;-)
wenn Dein PHP schlecht konfiguriert ist kann ich so böse Dinge einschleusen, indem ich dem Script irgendwas Schlimmes im Parameter "?ausgabe=<boeser_code>" übergebe, dann wird dies in der Seite ausgegeben.

Daher besser

$ausgabe=serialize($wert1);
$ausgabe.=serialize($wert2);
$ausgabe.=serialize($wert3);

hierdurch wird so ein parameter von der ersten Zuweisung überschrieben.

$ausgabe2=unserialize($ausgabe);
echo $ausgabe2; // hier bekomme ich jetzt nur wert1 angezeigt

eher so:

$array['wert1']="Test 1<br>";
$array['wert2']="Test 2<br>";
$array['wert3']="Test 3<br>";

$ausgabe = serialize($array);

echo "<input type="hidden" name="ausgabe" value="$ausgabe">"

und dann im nächsten Script:

var_dump(unserialize($_REQUEST['ausgabe']));

Das geht aber auch mit jeweils eigenen Feldern für jeden Wert. In Deinem Fall solltest Du die Werte darüber hinaus auch kodieren, z.B. mit base64... damit die Sonderzeichen wie <> Ihre Sonder-Funktionen in HTML verlieren. Natürlich entsprechend dekodieren im Script.

ich würde es allerdings anders machen:

session_start();
$_SESSION['wert1']="Test 1<br>";
$_SESSION['wert2']="Test 2<br>";
$_SESSION['wert3']="Test 3<br>";

und auf der nächsten Seite:
session_start();
echo $_SESSION['wert1'];
echo $_SESSION['wert2'];
echo $_SESSION['wert3'];
...

Links zu Infos zum Thema Sessions habe ich oben gepostet.

Grüße
Andreas