页面加载上的PHP会话变量

页面加载上的PHP会话变量,php,session,variables,Php,Session,Variables,我试图在页面加载之间保存变量值 我认为下面的代码在用户第一次点击页面时不会显示任何内容。下次是应该显示数字5。它在第一次和每次之后都显示零(0) <?php session_start(); $_SESSION['test']; echo $_SESSION['test']; $_SESSION['test'] = 5; ?> 您可以尝试以下方法: <?php session_start(); if (!isset($_SESSION['test'])) { $_SE

我试图在页面加载之间保存变量值

我认为下面的代码在用户第一次点击页面时不会显示任何内容。下次是应该显示数字5。它在第一次和每次之后都显示零(0)

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

您可以尝试以下方法:

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

您可以尝试以下方法:

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

我认为这一行正在$\u会话数组中创建一个新元素,其键为“test”……因为没有为它赋值,所以它的值为0

试着把它改成

if(!array_key_exists('test', $_SESSION)) {
    $_SESSION['test'] = 5;
}
我认为这一行正在$\u会话数组中创建一个新元素,其键为“test”……因为没有为它赋值,所以它的值为0

试着把它改成

if(!array_key_exists('test', $_SESSION)) {
    $_SESSION['test'] = 5;
}
像这样的东西??:

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

PS:这都是关于做这些事情的顺序,如果存在,你应该检查会话分配5,如果不创建变量,什么也不分配…第一次执行这个脚本时不会显示任何内容,但稍后它会显示5

萨卢多斯;)

像这样的东西??:

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

PS:这都是关于做这些事情的顺序,如果存在,你应该检查会话分配5,如果不创建变量,什么也不分配…第一次执行这个脚本时不会显示任何内容,但稍后它会显示5

萨卢多斯;)

  • session.save_path(/var/php_sessions)目录可写。我看到你没有使用tmp目录,所以我问这个问题

  • session.use_trans_sid应为0-如果启用“use_trans_sid”,则每次都会将会话id附加到URL。我不确定ajax请求会发生什么,但我认为它会附加到

  • 使用session.use_only_cookies为1和session.use_trans_sid为1有点冲突,因为use_only_cookies指定模块是否仅使用cookies在客户端存储会话id

  • session.save_path(/var/php_sessions)目录可写。我看到你没有使用tmp目录,所以我问这个问题

  • session.use_trans_sid应为0-如果启用“use_trans_sid”,则每次都会将会话id附加到URL。我不确定ajax请求会发生什么,但我认为它会附加到

  • 使用session.use_only_cookies为1和session.use_trans_sid为1有点冲突,因为use_only_cookies指定模块是否仅使用cookies在客户端存储会话id



  • 评论第三行$_会话['test']@Ateszki虽然这句话很可能不是OP想要做的,但这不应该是问题所在。我知道,这只是一个注释,用来清理代码,让事情更容易理解debug@Ateszki-我尝试了此操作,但没有功能更改。如果您使用var_dump($_SESSION),您会得到什么?请对第三行$_SESSION['test']进行注释@Ateszki虽然这句话很可能不是OP想要做的,但这不应该是问题所在。我知道,这只是一个注释,用来清理代码,让事情更容易理解debug@Ateszki-我尝试了此操作,但没有功能更改。如果使用var\u dump($\u会话),会得到什么结果?我在我的本地主机上测试并运行…第一次没有显示任何内容…如果脉冲f5在phpinfo中每次显示5…显示会话的配置…这些是我的:会话会话支持已启用的已注册保存处理程序文件用户已注册的序列化程序处理程序php php\u binary wddxI在我的问题中发布了这些设置。I在我的本地主机上测试并正常工作…第一次什么也没显示…如果脉冲f5在phpinfo中每次都显示5…显示会话的配置…这些是我的:会话会话支持已启用的已注册保存处理程序文件用户已注册的序列化程序处理程序php php\u binary wddxI在我的问题./var/php_会话不存在,我也无法创建它。这看起来像是我需要问我的网络主机的问题。对于测试,您可以将其指向您服务器上的可写目录,例如:session_save_path('/home/example.com/my_sessions');ini_集('session.gc_概率',1);或者ini_set(session.save_path,/path/to/your/folder)可写目录是问题所在。很好,你已经解决了。一定要好好考虑我的第2点和第3点/var/php_会话不存在,我也无法创建它。这看起来像是我需要问我的网络主机的问题。对于测试,您可以将其指向您服务器上的可写目录,例如:session_save_path('/home/example.com/my_sessions');ini_集('session.gc_概率',1);或者ini_set(session.save_path,/path/to/your/folder)可写目录是问题所在。很好,你已经解决了。一定要好好考虑我的第2点和第3点!