Jak używać Przechowuj i używaj zmiennych sesji na różnych stronach?

Gdy jest dostępna jedna strona, chciałbym rozpocząć sesję i zapisać zmienną sesji:

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

Następnie z innej strony chciałbym sprawdzić, czy zmienna sesji została zapisana:

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

Ten kod nie działa dla mnie.

Author: ab11, 2011-03-30

8 answers

Z komentarzy do tego pytania wynika, że brak SKORYGOWANEJ sesja.save_path powoduje to niewłaściwe zachowanie obsługi sesji PHP. Wystarczy określić katalog (poza głównym katalogiem dokumentu), który istnieje i jest zarówno czytelny, jak i możliwy do zapisania przez PHP, aby to naprawić.

 9
Author: Gumbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-30 17:29:57

Sesje Krok Po Kroku

  1. Definiowanie sesji przed wszystkim, żadne wyjście nie powinno być przed tym, brak wyjścia

    <?php
    session_start();
    ?>
    
  2. Ustaw sesję wewnątrz strony, a następnie masz dostęp na tej stronie. Na przykład jest to strona 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. Używanie i pobieranie sesji w 2.php

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

Uwaga: komentarze nie mają wyjścia.

 25
Author: Mohammad Kermani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-16 15:58:05

Wszystko, co chcesz zrobić, to napisać - - - session_start (); - - - - - na obu stronach..

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

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

?>
 16
Author: gaurav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-11 11:36:56

W sytuacji, gdy druga strona nie ma wspólnego dostępu do pliku cookie sesji, musisz ustawić ścieżkę pliku cookie sesji za pomocą session_set_cookie_params :

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

I

<?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
Author: zzzzBov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-30 17:03:16

Spróbuj tego

Pierwsza Strona

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

Druga Strona

 <?php
   session_start();
   echo $_SESSION['myvar'];
 ?>
 0
Author: vivek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-06 17:35:50

Przy każdym uruchomieniu sesji (dotyczy wersji PHP 5.2.54), session_start() tworzy nowy identyfikator sesji.

Oto poprawka, która mi pomogła.

File1.php

session_id('mySessionID'); //SET id first before calling  session start
session_start();

$name = "Nitin Hurkadli";
$_SESSION['username'] = $name;

File2.php

session_id('mySessionID'); 
session_start();

$name = $_SESSION['username'];
echo "Hello  " . $name;
 -1
Author: Nitin Hurkadli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-09 23:53:37

Rozpoczęcie sesji:

Umieść poniższy kod na górze pliku.

<?php session_start();?>

Przechowywanie zmiennej sesji:

<?php $_SESSION['id']=10; ?>

Aby sprawdzić, czy dane są przechowywane w zmiennej sesji:

<?php if(isset($_SESSION['id']) && !empty(isset($_SESSION['id'])))
echo “Session id “.$_SESSION['id'].” exist”;
else
echo “Session not set “;?>

?> szczegóły tutaj http://skillrow.com/sessions-in-php-4/

 -1
Author: user3796796,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-02 08:19:00

Spróbuj tego:

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

<!-- second page -->
<?php
    session_start();
    echo("1");
    if(session_is_registered('myvar'))
    {
        echo("2");
       if($_SESSION['myvar'] == 'myvalue')
       {
           echo("3");
           exit;
       }
    }
    ?>
 -5
Author: iamandrus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-30 16:49:43