0

ページの読み込みの間に変数値を保存しようとしています。

以下のコードは、ユーザーが最初にページにアクセスしたときに何も表示されないと思いました。次回は数字の5を表示する必要があります。最初とその後は毎回ゼロ(0)が表示されます。

<?php
session_start();
$_SESSION['test'];
echo $_SESSION['test'];
$_SESSION['test'] = 5;
?>

私は何か間違ったことをしていますか?PHPサーバーが正しくセットアップされていない可能性はありますか?等

サーバー設定

PHP Version 5.3.13
session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn Off Off
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    /dev/urandom    /dev/urandom
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 4   4
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/php_sessions   /var/php_sessions
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   1   1
4

4 に答える 4

3
  1. session.save_path(/ var / php_sessions)ディレクトリは書き込み可能ですか。tmpディレクトリを使用していないようですので、これをお願いしています。

  2. session.use_trans_sidは0である必要があります。「use_trans_sid」を有効にすると、セッションIDが毎回URLに付加されます。ajaxリクエストで何が起こるかはわかりませんが、添付されると思います。

  3. use_only_cookiesは、モジュールがクライアント側でセッションIDを保存するためにCookieのみを使用するかどうかを指定するため、session.use_only_cookiesを1として、session.use_trans_sidを1として使用することは多少矛盾します。

于 2013-03-19T19:35:41.763 に答える
0

次のことを試すことができます。

<?php
session_start();
if (!isset($_SESSION['test'])) {
    $_SESSION['test'] = 0;
}
echo $_SESSION['test'];
$_SESSION['test'] = 5;
?>
于 2013-03-19T19:23:03.030 に答える
0
$_SESSION['test'];

この行は、キーが「test」の$ _SESSION配列に新しい要素を作成していると思います...値が割り当てられていないため、値は0です。

に変更してみてください

if(!array_key_exists('test', $_SESSION)) {
    $_SESSION['test'] = 5;
}
于 2013-03-19T19:25:56.420 に答える
0

このようなもの??:

  <?php
    session_start();
    if(isset($_SESSION['test']))
    {$_SESSION['test'] = 5;}
    else
    {
      $_SESSION['test'] = "";
    }
    echo $_SESSION['test'];
?>

PS:これらのことを行う順序がすべてです。セッションが存在するかどうかを確認し、5を割り当て、変数を作成して何も割り当てないようにする必要があります...このスクリプトを初めて実行すると、何も表示されませんが、後で表示されます。ショー5。

Saludos;)

于 2013-03-19T19:25:58.917 に答える