it-swarm.com.de

Übergeben Sie Variablen zwischen zwei PHP Seiten ohne Verwendung eines Formulars oder der URL der Seite

Ich möchte ein paar Variablen von einer PHP Seite an eine andere übergeben. Ich verwende kein Formular. Die Variablen sind einige Meldungen, die auf der Zielseite angezeigt werden, wenn etwas schief geht. Wie kann ich Übergeben Sie diese Variablen an die andere Seite PHP), während Sie sie behalten nsichtbar?

z.B. Nehmen wir an, ich habe diese beiden Variablen:

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

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

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

Gibt es eine Möglichkeit (möglicherweise durch $ _POST?), Die Variablen zu senden? Wenn sich jemand fragt, warum ich möchte, dass sie unsichtbar sind, möchte ich nur keine große URL-Adresse mit Parametern wie "& message = Problem beim Hochladen Ihrer Datei. Dies ist keine gültige ZIP-Datei", und ich habe nicht viel Zeit, die Weiterleitungen meiner Seite zu ändern, um dieses Problem zu vermeiden.

20
Lefteris008

Sitzungen wären eine gute Wahl für Sie. Werfen Sie einen Blick auf diese beiden Beispiele aus PHP Manual :

Code von 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 pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

Code von 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>';
?>

Zum Aufräumen - SID ist die vordefinierte Konstante von PHP , die den Sitzungsnamen und seine ID enthält. Beispiel SID-Wert:

PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
39
Daniel Kmak

Hier sind kurze Liste:

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

  • $ _SESSION - wahrscheinlich der beste Weg

  • Benutzerdefinierte Cookies - funktionieren nicht * immer *.

  • HTTP-Header - ein Proxy kann dies blockieren.

  • datenbank wie MySQL, Postgres oder etwas anderes wie Redis oder Memcached (z. B. ähnlich einer hausgemachten Sitzung, "gesperrt" durch IP-Adresse)

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

  • HTTP_REFERRER

  • URL-Hash-Parameter, z. http://domain.com/page.php#param - Sie benötigen JavaScript, um den Hash zu sammeln. - Google Mail Heavy Verwenden Sie diese.

7
Nick
<?php
session_start();

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

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

Speichert die Sessions auf Seite 1 und dann auf Seite 2

<?php
session_start();

echo $_SESSION['firstMessage'];
echo $_SESSION['secondMessage'];
?>
4
user2406160

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

Dann füge oben in deiner page2.php einfach hinzu:

<?php
session_start();
3
ramonovski

Verwenden Sie Sitzungen .

Seite 1:

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

Seite 2:

session_start();
var_dump($_SESSION['message']);
2
Putr