非常的不解:::感觉session很不好用???不管浏览器开与否,只要过了php.ini中设置的30秒,它就无效了???那不是与cookieset一样的

lijdking 2003-12-26 10:34:35
程序:

a.php
<?php
session_start()
$name="kkk";
session_register("name")
echo $_SESSION["name"];
?>

b.php
<?php
session_start();
if(session_is_registered("name")
echo "您已经登陆了";
else
echo "false";
?>

我的php.ini中session时间默认为30秒
打开a.php后,再开b.php输出:您已经登陆了
但过30秒后就输出 false
我把a.php一直开着,以为这样session变量就都有效了,但过了30秒后这样无效了
这不是与cookieset里时间设置为30秒一样的吗?

...全文
93 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijdking 2003-12-28
  • 打赏
  • 举报
回复
谢谢rahat()

那是不是在另一页面中:
<?php
session_start();
if(session_is_registered("name"))
{
echo "已经登陆";
}
?>
如果刷新这个页面那这个session变量就从刷新此刻起后的30秒又都有效??
lijdking 2003-12-28
  • 打赏
  • 举报
回复
对session很不了解
在php.ini中:
1:
session.gc_maxlifetime=1440 //临时文件被清除的存活秒数(变量存在临时文件中?所以 临时文件在,变量也就有效?)
session.cookie_lifetime=30 //session变量的有效时间
以上这两个不是互相矛盾吗?他们是什么关系?两个不是都是变量的有效时间吗?session变量的有效时间该听谁的?

2:
session.cookie_lifetime=0 //说是浏览器关闭就无效了(如果没关闭,一天24小时都有效?)
但我把浏览器关闭后再登陆怎么还可以登陆呀?

3:
apache中的Timeout 300 //30分钟 这是什么意思?与上面的几个设置是什么关系的?


xuzuning 2003-12-27
  • 打赏
  • 举报
回复
你的操作系统是linux吧?
30秒太短了,默认的还1440秒呢
rahat 2003-12-27
  • 打赏
  • 举报
回复
reply字段加1
$sql="update 你的表名 set reply=reply+1 where 表中主健的列名=".$_POST["记录的ID"];
rahat 2003-12-27
  • 打赏
  • 举报
回复
http本身是无状态的.
请求和回应是一来一回就完事的.
所以无论浏览器开与否.
都在最后一次调用页面算起若干秒(你那设的是30秒)没有再用刚才的cockies发起请求就算超时
zhangyuanxu 2003-12-27
  • 打赏
  • 举报
回复
不好意思:问题太多了

sql语言有没有什么函数:出现下面的功能:

我在article表里有文章回复的次数reply这个字段:我想每次某个文章被回复时用sql语言自动在reply这个字段加1
即不要从数据库中取出reply字段这个值,把它加1后又得把它写入数据库,这不是很繁琐?
我想:用
$sql=" //不懂该怎么写 ";
$result=mysql_query($sql); //完成在reply这个字段值加1的功能
zhangyuanxu 2003-12-27
  • 打赏
  • 举报
回复
还一个问题:
我做了一个框架页面:由left.htm main.htm组成
用户登陆时在left.htm里显示象csdn这样web开发等等,main.htm里显示欢迎你的到来等
当用户点击web开发时,如何处理能在main.htm这个框架出现list.php页面(与csdn一样)
我list.php里的表单action="list.php" 即用户按“下一页”时又返回到本页面,我想把
list.php都定位在main.htm这个页面,该怎么处理呀?弄了一整天了,还不行,哎
zhangyuanxu 2003-12-27
  • 打赏
  • 举报
回复
我是楼主,这个id是别人的
我想问一下:
在php.ini设置30秒,用session注册后,是不是浏览器开与否时间过30秒后就得重新登陆了??

还 有问一下 ice_berg16(寻梦的稻草人) :
我的php版本是4.3.3,你说的
if (empty($_SESSION['name]))
//未注册!
else
$_SESSION = array();//注销变量
session_destroy(); //销毁session
就是用户注销??即换另一个用户名登陆
zoom9002 2003-12-26
  • 打赏
  • 举报
回复
稻草人,我的变量传不过来,我新开了一个贴子,你帮忙看看吧,谢谢
ice_berg16 2003-12-26
  • 打赏
  • 举报
回复
b.php

session_start();
$name = $_SESSION['name'];
zoom9002 2003-12-26
  • 打赏
  • 举报
回复
稻草人,
如果我在a.php里注册了name这个session,那我要是转到b.php页后,怎样读出name的值呢?
我自己试的时个发现Session注册的变量没有传到下一个页面上.
ice_berg16 2003-12-26
  • 打赏
  • 举报
回复
忘了,应该是这样
session_start();
$_SESSION['name'] = $name; //注册session
检查是否注册
if (empty($_SESSION['name]))
//未注册!
else
$_SESSION = array();//注销变量
session_destroy(); //销毁session
ice_berg16 2003-12-26
  • 打赏
  • 举报
回复
在新的PHP版本里建议不要使用原来的session函数
用下面的
session_start();
$_SESSION['name'] = $name; //注册session
检查是否注册
if (empty($_SESSION['name]))
//未注册!
else
unset($SESSION['name']); //注销
lijdking 2003-12-26
  • 打赏
  • 举报
回复
ice_berg16(寻梦的稻草人)

register global = on
关这什么事???我就是这样的?
还有请问一下:用session注销怎么写?
ice_berg16 2003-12-26
  • 打赏
  • 举报
回复
PHP.INI
register global = on
lijdking 2003-12-26
  • 打赏
  • 举报
回复
页面有开着,时间一过30秒就要你重新登陆,郁闷
lijdking 2003-12-26
  • 打赏
  • 举报
回复
用户登陆了
登陆后,页面有开着,以后应该就算登陆了
但怎么就只是php.ini里设置的30秒呢?

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧