web-dev-qa-db-ja.com

ページ間でストア変数を使用してセッション変数を使用する方法は?

1つのページにアクセスしたときに、セッションを開始してセッション変数を保存したいと思います。

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

次に、別のページから、そのセッション変数が保存されているかどうかを確認します。

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

このコードは私には機能しません。

20
ab11

この質問へのコメントから推論すると、調整された session.save_path がないため、PHPのセッションハンドラのこの誤動作が発生します。 。これを修正するには、PHPによって、存在し、読み取りと書き込みの両方が可能なディレクトリ(ドキュメントルートディレクトリ外)を指定するだけです。

7
Gumbo

セッションステップバイステップ

  1. すべての前にセッションを定義します。その前に出力はありません、NO OUTPUT

    <?php
    session_start();
    ?>
    
  2. セッションをページ内に設定すると、そのページにアクセスできます。たとえば、これはpage 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. 2.phpでのセッションの使用と取得

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

[〜#〜] note [〜#〜]:コメントはしない出力があります。

22
M98

やりたいことは--- session_start(); -----両方のページに..

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

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

?>
14
gaurav

2番目のページがセッションCookieへの共有アクセス権を持っていない可能性がある場合、 session_set_cookie_params を使用してセッションCookieパスを設定する必要があります。

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

そして

<?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

これを試して

一ページ目

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

2ページ目

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