webentwicklung-frage-antwort-db.com.de

Wie verwende ich Sitzungsvariablen seitenübergreifend?

Wenn auf eine Seite zugegriffen wird, möchte ich eine Sitzung starten und eine Sitzungsvariable speichern:

<?php
  session_start(); 
  $_SESSION['myvar']='myvalue';
?>

Dann möchte ich von einer anderen Seite aus prüfen, ob diese Sitzungsvariable gespeichert wurde:

<?php
    session_start();
    echo("1");
    if(isset($_SESSION['myvar']))
    {
        echo("2");
       if($_SESSION['myvar'] == 'myvalue')
       {
           echo("3");
           exit;
       }
    }
    ?>

Dieser Code funktioniert bei mir nicht.

20
ab11

Aus den Kommentaren zu dieser Frage geht hervor, dass das Fehlen einer angepassten session.save_path dies verursacht Fehlverhalten des PHP-Session-Handlers. Geben Sie einfach ein Verzeichnis (außerhalb Ihres Dokumentenstammverzeichnisses) an, das vorhanden ist und von PHP) gelesen und geschrieben werden kann, um dieses Problem zu beheben.

7
Gumbo

Sessions Schritt für Schritt

  1. Session vor allem definieren, davor soll keine Ausgabe stehen, NO OUTPUT

    <?php
    session_start();
    ?>
    
  2. Stellen Sie Ihre Sitzung auf eine Seite und Sie haben Zugriff auf diese Seite. Zum Beispiel ist dies Seite 1.php

    <?php
       //This is page 1 and then we will use session that defined from this page:
        session_start();
        $_SESSION['email']='[email protected]';
    ?>
    
  3. Session benutzen und beziehen in 2.php

     <?php
    
    //In this page I am going to use session:
    
      session_start();
      if($_SESSION['email']){
      echo 'Your Email Is Here!  :) ';
      }
     ?>
    

[~ # ~] note [~ # ~] : Kommentare nicht Ausgabe haben.

22
M98

Alles, was Sie tun möchten, ist schreiben --- session_start (); ----- auf beiden seiten ..

<!-- first page -->
<?php
  session_start(); 
  $_SESSION['myvar'] = 'hello';
?>

<!-- second page -->
<?php
    session_start();
    echo $_SESSION['myvar']; // it will print hello 

?>
14
gaurav

In dem Fall, dass die zweite Seite keinen gemeinsamen Zugriff auf das Sitzungscookie hat, müssen Sie den Sitzungscookie-Pfad mit session_set_cookie_params festlegen:

<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
$_SESSION['myvar']='myvalue';

Und

<?php
session_set_cookie_params( $lifetime, '/shared/path/to/files/' );
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
    echo("2");
   if($_SESSION['myvar'] == 'myvalue')
   {
       echo("3");
       exit;
   }
}
1
zzzzBov

Versuche dies

Erste Seite

<?php
   session_start();
   $_SESSION['myvar']='myvalue';
?>

Zweite Seite

 <?php
   session_start();
   echo $_SESSION['myvar'];
 ?>
0
vivek