2013-05-27 11 views
16

Ich möchte ein paar Variablen von einer PHP-Seite zu einer anderen übergeben. Ich habe kein Formular, die Variablen sind einige Nachrichten, die die Zielseite anzeigen möchte, wenn etwas schief geht. Wie kann ich diese Variablen an die andere PHP-Seite übergeben, während sie unsichtbar bleiben?Übergeben Sie Variablen zwischen zwei PHP-Seiten ohne Verwendung eines Formulars oder der URL der Seite

z.B. Lassen Sie uns sagen, dass ich diese zwei Variablen habe:

//Original page 
$message1 = "A message"; 
$message2 = "Another message"; 

und ich möchte sie von page1.php nach page2.php übergeben. Ich möchte sie nicht über die URL weitergeben.

//I don't want that 
'page2.php?message='.$message1.'&message2='.$message2 

Gibt es einen Weg (vielleicht durch $ _POST?)? Wenn jemand sich wundert, warum ich will, dass sie insvisible, ich will einfach nicht eine große URL-Adresse mit Parametern wie "& Nachricht = Problem beim Hochladen Ihrer Datei. Dies ist keine gültige. Zip-Datei" und ich habe nicht viel Zeit, um die Umleitungen meiner Seite zu ändern, um dieses Problem zu vermeiden.

+7

Sitzungen mein Freund, Sitzungen. – user2406160

Antwort

32

Sessions würden gute Wahl für Sie sein . Werfen Sie einen Blick auf diese beiden Beispiele aus PHP Manual:

Code of page1.php

<?php 
// page1.php 

session_start(); 

echo 'Welcome to page #1'; 

$_SESSION['favcolor'] = 'green'; 
$_SESSION['animal'] = 'cat'; 
$_SESSION['time']  = time(); 

// Works if session cookie was accepted 
echo '<br /><a href="page2.php">page 2</a>'; 

// Or maybe pass along the session id, if needed 
echo '<br /><a href="page2.php?' . SID . '">page 2</a>'; 
?> 

Code of page2.php

<?php 
// page2.php 

session_start(); 

echo 'Welcome to page #2<br />'; 

echo $_SESSION['favcolor']; // green 
echo $_SESSION['animal']; // cat 
echo date('Y m d H:i:s', $_SESSION['time']); 

// You may want to use SID here, like we did in page1.php 
echo '<br /><a href="page1.php">page 1</a>'; 
?> 

Zur Klärung Dinge - SID is PHP's predefined constant enthält den Sitzungsnamen und seine ID. Beispiel SID-Wert:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1 
3

Haben Sie versucht, beide zu $_SESSION hinzuzufügen?

an der Spitze Ihres page2.php Dann fügen Sie einfach:

<?php 
session_start(); 
2

Verwendung Sessions.

Seite1:

session_start(); 
$_SESSION['message'] = "Some message" 

Seite 2:

session_start(); 
var_dump($_SESSION['message']); 
+0

eher session_start(); – Robert

4
<?php 
session_start(); 

$message1 = "A message"; 
$message2 = "Another message"; 

$_SESSION['firstMessage'] = $message1; 
$_SESSION['secondMessage'] = $message2; 
?> 

Speichert die Sitzungen auf Seite 1, dann auf Seite 2 do

<?php 
session_start(); 

echo $_SESSION['firstMessage']; 
echo $_SESSION['secondMessage']; 
?> 
7

Hier sind kurze Liste:

  • JQuery mit JSON Sachen.(http://www.w3schools.com/xml/xml_http.asp)

  • $ _SESSION - wahrscheinlich beste Weg

  • Individuelle cookie - wird nicht * immer * Arbeit.

  • HTTP-Header - einige Proxy können es blockieren.

  • Datenbank wie zum MySQL, Postgres oder etwas anderes so Redis oder Memcached (zB ähnlich wie hausgemachte Sitzung, "gesperrt" durch die IP-Adresse)

  • APC - ähnlich wie Datenbank, wird nicht * immer * Arbeit.

  • HTTP_REFERRER

  • URL Hash-Parameter, z.B. http://domain.com/page.php#param - Sie benötigen etwas JavaScript, um den Hash zu sammeln. - Gmail verwendet dies stark.

+0

Anstelle von Datenbank kann auch eine einfache Textdatei in/tmp/oder/dev/shm/verwendet werden – Nick

Verwandte Themen