2017-02-23 4 views
-1



Ich versuche Variablen von einer zur anderen Seite zu übergeben, aber obwohl ich mehrere Fehler überprüft haben, kann ich einfach nicht, den Grund finden, warum die zweite Seite (page1.php, page.2.php oder page3.php, abhängig von der Variablen) erhält nicht die Variable von der ersten Seite (intro.php).PHP-Session nicht passieren Variable

Konnte mir jemand helfen?

Dies ist intro.php:

<?php 
session_start(); 

$pageorder = array("page1", "page2", "page3", "page4"); 
shuffle($pageorder); 

$_SESSION['intro']= $pageorder[0]; 
$_SESSION['echo ($pageorder[0])']= $pageorder[1]; 
$_SESSION['echo ($pageorder[1])']= $pageorder[2]; 
$_SESSION['echo ($pageorder[2])']= $pageorder[3]; 

?> 

und unterhalb html, die die nächste Seite bestimmt (der gut arbeitet):

<input type=hidden name="nextURL" value="<?php echo($pageorder[0])?>.php"> 


Dies ist page1.php, falls page1.php ausgewählt wurde zuerst zu sein (page2.php usw. sehen ähnlich aus):

<?php 
session_start(); 

$page1 = $_SESSION['page1']; 
?> 

und unterhalb des HTML wieder, die die nächste Seite bestimmt:

<input type=hidden name="nextURL" value="<?php echo ($page1) ?>.php"> 

Irgendwie erhält einfach nichts, so $ page1 ist leer.

Sieht jemand, wo das Problem liegt?

Vielen Dank im Voraus!

+3

Sie können kein Echo innerhalb des Bezeichners des Sitzungsarrays eingeben. –

+1

^^ Sieh dir die Ausgabe von 'var_dump ($ _ SESSION);' an und du wirst sehen, was beim Einstellen dieser Werte passiert ist. –

+0

Es funktioniert nicht mit $ _SESSION arbeiten [ '$ Pageorder [0]'] entweder ... – Erik

Antwort

1

Sie sind nicht die Sitzung korrekt im ersten Skript

<?php 
session_start(); 

$pageorder = array("page1", "page2", "page3", "page4"); 
shuffle($pageorder); 

$_SESSION['intro']= $pageorder[0]; 
$_SESSION[$pageorder[0]]= $pageorder[1]; 
$_SESSION[$pageorder[1]]= $pageorder[2]; 
$_SESSION[$pageorder[2]]= $pageorder[3]; 

?> 

Und der Ort, in dem Sie die Daten setzen das Ergebnis zu sehen, ist versteckt, so entfernen Sie das Attribut Versteckt und mit etwas Glück werden alle sein gut

<input type=hidden name="nextURL" value="<?php echo ($page1) ?>.php"> 

Wechsel zu

<input name="nextURL" value="<?php echo ($page1) ?>.php"> 
+0

Vielen Dank für die Lösung! – Erik

0

Da Sie bereits hav e ein Array, setzen nur, dass in der Sitzung Array:

$_SESSION['page'] = $pageorder; 

Wenn das Intro Intro genannt werden müssen, können Sie dies nur tun, wie gut:

$_SESSION['page'] = $item; 
$_SESSION['intro'] = $item[0]; 
unset($_SESSION['page']['0']) //optional; 

Dann haben Sie $ _SESSION [ 'Intro '], $ _SESSION [' Seite '] [1] .. [3]

Verwandte Themen