• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

Array mit Php übergeben

  • Ersteller Lifthrasil87
  • Erstellt am

Lifthrasil87

Gast
Hallo!

Ich habe ein Problem mit der Übergabe eines Arrays in Php von einer Seite zu einer anderen.
(ich habe den Beitrag den ihr zu dem Thema hattet gelesen aber der Tip funktioniert nicht so richtig...)
Ich habe ein Array $fragen und möchte dieses übergeben.

Ich habe probiert:
Methode 1:

Seite 1:
$data = serialize($fragen);
echo "<input type=\"hidden\" name=\"data\" value=\"<? echo $data; ?>\">";
Seite 2:
$fragen = unserialize($_POST["data"]);

nun steht aber in $fragen nichts drinnen...

Methode 2:
Ich benutze Sessions, weil ich sie sowieso habe
In den Sessions habe ich ein Array mit
$s_linkarray[] = 0;
session_register("s_linkarray");
eingetragen.
Seite1:
$s_linkarray = $fragen; => hier steht im linkarray noch alles richtig drinnen
Seite2:
Hier steht in $s_linkarray nur mehr Mist drinnen. Es schreibt mir den Text "Array" hinein und zwar so:
$fragen[0] => A
$fragen[1] => r
$fragen[2] => r
$fragen[3] => a
$fragen[4] => y

und es lassen sich auf Seite2 auch händisch nicht mehr mehr als 1 Zeichen pro Element eintragen.
Was mache ich falsch?
P.S.: über die Sessions würde ich es lieber lösen
wink.gif
 

Sir Q

Rheinischer Winterrambour
Registriert
12.04.05
Beiträge
923
Mit Formularen in der Form:

<input type="hidden" name="array[key][1]" value="value1" />
<input type="hidden" name="array[key][2]" value="value2" />
<input type="hidden" name="array[key][3]" value="value3" />
<input type="hidden" name="array[key][4]" value="value4" />


sind Arrays, mehrdimensionale Arrays und viele schöne Konstrukte machbar.

~

Ich würde Daten aber immer in der Session mitschleifen. Große Arrays von z.B. Webshops sollten nicht in jeder Seite mitgeschickt werden. Seiten wie Amazon und eBay lassen sie persé nur mit cookies verwenden, die Übertragung von Daten per POST oder GET ist bei denen aus sicherheitsgründen für den user inaktiviert …
 

Lifthrasil87

Gast
Hi!

Diese Möglichkeit ist aber umständlich, wenn das Array theoretisch unendlich groß werden kann, bzw. ich nicht weiß, wie groß es ist oder? Weil ich muss dann jeden Eintrag einzeln übergeben...?
 

Toddy

Wohlschmecker aus Vierlanden
Registriert
10.05.04
Beiträge
242
Nixda session_register() ;)

einfach nur

Code:
$_SESSION['array'] = $array;

und gut is, auf der nächsten Seite greifst du dann entweder direkt auf die $_SESSION Variable zu oder stellst mit
Code:
$array = $_SESSION['array'];
deine Ursprungsform wieder her.

PS: Siehe dazu: das da.
 

Prophet

Gast
Zu möglichkeit 1: Hast du auch ein Form darum gelegt? Im form-Tag wird festgelegt auf welche art die Daten weitergegeben werden. Ausserdem musst du Daten die du auf diese weise weitergibst absenden das heißt du musst irgendwo einen Submit-Button haben.

Zu möglichkeit 2: Grundsätzlich musst du natürlich Toddys variante anwenden aber hast du auch sichergestellt das du mit session_start() die session auf dieser Seite initialisiert hast?
 

Lifthrasil87

Gast
Hi!

Also erstmal danke für die Hilfe Toddy und Prophet! Ich hab das jetzt so gemacht mit session start(); auf jeder Seite und dann mit dem globalen $_SESSION[] Array. Ich kannte diese Variante nämlich nicht, nur das mit dem Registrieren von den Sessions und des haut ned so toll hin ;). Auf jeden Fall funktionierts jetzt wunderbar !

Vielen Dank:-D