Wie kann man ein Array von einer Seite zur anderen weitergeben?

nDeedy

Erfahrenes Mitglied
nAbend.

Die Frage steht eigentlich schon im Topic: Wie kann man ein Array von einer Seite zur anderen weitergeben?
Allerdings sind da 2 Einschänkungen: 1. es soll nicht mit einem Formular passieren 2. und auch nicht in der Session gespeichert werden.

Ich habe mir gedacht, die Var sollte global sein oder so, aber wie man das macht hab ich keine Ahnung ;)
 
Variablen existieren nur zur Laufzeit eines Skriptes. Wenn Daten über die Laufzeit eines Skriptes hinaus verfügbar sein sollen, müssen sie irgendwo gespeichert werden (vorzugsweise serverseitig, um Manipulationen zu vermeiden). Soll das auch noch benutzerbezogen sein, ist eine Sitzungen genau das richtige.
 
Es gäbe da noch eine Methode, die allerdings nicht wirklich verschlüsselt ist...

foo.php
PHP:
<?php
$array = array();
$array = array_pad($array, 20, '123');

?>

<a href="./bar.php?vars=<?php echo urlencode(serialize($array)); ?>">test</a>

bar.php
PHP:
<?php

$foo = unserialize(urldecode(stripslashes($_GET['vars'])));

echo '<pre>';
var_dump($foo);
echo '</pre>';
?>
 
Felix, die Methode ist nicht nur "nicht verschlüsselt" sondern grob fahrlässig ;)
Der einzig richtige wird in diesem Zusammenhang über Sessions laufen, die sind ja nicht umsonst dafür gedacht ;)
 
Das Problem mit den Sessions liegt aber darin, dass wenn ich den Array einmal speichere, beim 2en aufruf (egal ob ich ausgeloggt hab oder nicht) der Array zum Teil immernoch gleiche Einträge hat :/
 
Ich bin mir zwar nicht ganz sicher, was du mit deinem Array machen möchtest, aber Benutzerspezifisch Variablen speichern geht am Besten über Sessions oder eventuell auch noch indem du's in die Datenbank schreibst(Wenn die Variable dauerhaft gespeichert werden soll, etwa wenn der User Einstellungen vornehmen soll)

Wenn es nach dem ausloggen nicht mehr vorhanden sein soll, musst du die Variable eben beim ausloggen wieder löschen bzw Sessions sind auch nicht für immer gültig, Server seitig nach einer gewissen Zeitspanne und idR wenn der User seinen Browser neustartet.
 
Um hier noch ein wenig Sicherheit hinzuzufügen, kannst du einen Hash von den Daten erstellen, damit du überprüfen kannst, ob die von dem Benutzer manipuliert wurden.

PHP:
// zum Speichern für die URL
$array = array(); // dein Array
$array = serialize($array);
$query_string = '?array='.rawurlencode($array).'&hash='.md5('geheimerString'.$array);

// zum Laden aus der URL
$array = empty($_GET['array'])?false:$_GET['array'];
$hash = empty($_GET['hash'])?'':$_GET['hash'];
if ($array !== false && md5('geheimerString'.$array) == $hash) $array = unserialize($array);
else $array = false;
 
Im Prnzip würde mir die Methode von Felix Jacobischon reichen, da es für den Benützer scheinbar unwichtige Daten weitergegeben wären, aber ich habe es doch mit den Sessions richtig hingebogen und nu t es richtig. Troztdem vielen Dank an alle beteiligten!
 
Zurück