我不得不说自己是名副其实的笨笨

chenbinggan 2003-08-23 05:36:19
学PHP也有一段时间了,但是一直不大明白session函数的真正用法
像www.163.com邮箱登录那样,当超过一段时间后就会出现一个:你的帐号闲置过久请重新登录。这样的效果闷得我心慌。
请问各位前辈,有谁能提供一个有关session的例子让小弟我参考、学习一下吗?谢谢!
...全文
30 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ustb 2003-08-26
  • 打赏
  • 举报
回复
是否你进行了登录验证,
比如判断用户名是否为空,密码是否为空,用户名,密码是否合法……在进行了一堆有效性验证之后才能让用户进到页面。如果仅仅是一个action="XXXX",当然什么人都能进了。关于身份验证又是一段代码。我就不写了。如果你对php很有兴趣的话,那么这刚好是一个机会学习最基本的程序,这里面可能会用到的东西有函数,类,正则表达式,各种语句,sql。建议你自己写一个。当你完成的时候你已经把php的基础的东西浏览过一遍了,这比你看十本书都要强。

上面的兄弟说得不错,session是可以放到数据库中的。等你熟了之后再说吧。
程序是写出来的,不是说出来的。努力吧。
wa1ker1ee 2003-08-26
  • 打赏
  • 举报
回复
例子:
<?php

session_start();

$_SESSION['AGE'] = 18;

?>

当你运行了上面的代码后,PHP就会自动在你的SESSION存放目录下(默认是虚拟目录同盘根目录下的tmp文件夹)建立一个类似 sess_0e535469deba6a36762c74596f8bd0e1 的文件。

里面有 类似这样的内容 AGE|i:0 很明显,这也就是你的SESSION变量名和值了。

然后PHP会产生一个SESSION 的 ID 这样ID默认是存放在客户端的COOKIE中。如果客户端的COOKIE关闭,则由PHP自动转换为URL的GET方式传递。

使用SESSION确实会创建文件并存储,但是这不是你说操心的,你只去用相关的函数就可以了。剩下的,PHP会帮你做。

不过,通过上面,可以看出,SESSION 变量以及其值是存放在文本中的。所以,如果大量使用SESSION,效率不会很高 (比如千人在线的论坛) 这时候,你可以考虑用数据库来存储 SESSION。
chenbinggan 2003-08-26
  • 打赏
  • 举报
回复
非常谢谢你,偶然
认证方向的问题我已经知道了,但我现在又碰到了一个新的问题,当我通过登录进入另一页面后,再使用后退回到登录页面,在没有输入用户名和密码的情况下,直接点提交,也可以进入另一个页面。请问这是为什么呢?
ustb 2003-08-26
  • 打赏
  • 举报
回复
看来你还需要知道如下的一些东西:
1)php的安装
2) session的原理
安装就不说了,自己去找吧,到处都是,到这里问的人也不少,通常是一篇帖子被人转了千百次。
session是存放在服务器端的,他会记录下当前用户所注册进去的信息,此信息会随着用户带到相对链接的有session_start()的每一个页面。使用时不用建什么session文件。如果是初次安装的php,且是windows平台,那么在与你所设置的虚拟目录相同的盘的根目录下应当建一个新文件夹tmp,或者是更改php.ini里的session存放路径。如果没有此目录,应当可能会报warning:tmp/……之类的错。在你要用到session的php页面的头部加上session_start().注册的session就会被引入。
不说了,再有不明白就看书。
wa1ker1ee 2003-08-26
  • 打赏
  • 举报
回复
看你这样说,应该是SESSION起作用。
不过 这还是要看你的程序是如何写,才能下结论。
chenbinggan 2003-08-26
  • 打赏
  • 举报
回复
TO:偶然
我有一个页面是用来认证密码是否为空,用户名,密码是否合法……。现在的问题就是当我使用后退回到login.php文件后,再点击提交,它就跳过了认证页,直接进入另一页面。但是,我再使用后退命令回到login.php文件,实行登录,这时就需要用户输入合法的用户名和密码方可成功登录。我一直是认为这是不是session在起的作用
ustb 2003-08-25
  • 打赏
  • 举报
回复
/**
* 程序编写:偶然
* 编写时间:2003.8
* 本页说明:简述session
*/
//初始化session
session_start();//最好写在每页的开头

//注册一个变量name
$name="good";
$_SESSION['name']=$name;

//查看一下是否session已经注册
if(isset($_SESSION['name'])) {
echo "这里是最初的session=>";
echo $_SESSION['name'];
}


//如果要清除session,用unset
//在这里用一个链接来做出处理
echo "<BR><a href=session.php?action=delsession>删除session</a>";
if(isset($_GET['action'])&&$_GET['action']=='delsession') {
unset($_SESSION['name']);
}

//看一下session是否还存在
if(isset($_SESSION['name'])) {
echo "<BR>还有session么?=>";
echo $_SESSION['name'];
}
chenbinggan 2003-08-25
  • 打赏
  • 举报
回复
大家能不能帮我看看我的代码,(login_ok.php是login.php的认证页)我不知道我这样的做法是否正确,在我登录进入login_ok.php后,点击《用户列表》进入另一页面,再后退时出现网页过期请按刷新等提示。这样是不是我的session在起作用。但是
if($bothtime>300)
{
$info="你的帐号闲置过久,请重新登录!";
session_destroy;
header("location:login.php?info=$info");
exit;
}
这段代码却没有达到想要的效果。请大家帮忙,谢谢
chenbinggan 2003-08-25
  • 打赏
  • 举报
回复
能不能给我举个简单的例子呢?我现在被SESSION咔得好难受,我真诚地希望各位前辈高人能指点在下,在下将万分感谢!!
chenbinggan 2003-08-25
  • 打赏
  • 举报
回复
TO:偶然,先说声谢谢,但我还是不知道SESSION是怎么用在一个文件之中。是不是我先建一个SESSION文件,然后在需要用的SESSION的文件中使用SESSION-START()就可以啦??
bonniewater 2003-08-24
  • 打赏
  • 举报
回复
session在你你不刷新页面或者是不访问页面的任何链接的时候,就会过期,时间是在PHP.INI里面设定的。
phpro 2003-08-24
  • 打赏
  • 举报
回复
session就是你登录之后记录在服务器端你的一些信息,或由时间中止,关闭浏览器也中止。
chenbinggan 2003-08-23
  • 打赏
  • 举报
回复
以下是我写的三个文件
以下为may.inc

<?
if(!isset($name))
{
$info="你还没有登录,请登录!";
header("location:login.php?info=$info");
exit;
}
else
{
$endtime=time();
$bothtime=$endtime-$starttime;//$starttime 在session.php中已定义
if($bothtime>300)
{
$info="你的帐号闲置过久,请重新登录!";
session_destroy;
header("location:login.php?info=$info");
exit;
}
$starttime=time();
}
?>

以下为session.php文件

<?
require("may.inc");
session_start();
session_register(s_name);
session_register(starttime);
$s_name=$name;
$starttime=time();
?>

以下是login_ok.php文件也是要衽保护的文件

<?
require("db.inc");
//require("may.inc");//may.inc要不要调用??
?>
<?
session_start();
if(sumbit)
{
if(($name=="")||($password==""))
{
$info="信息不全,";
header("location:login.php?info=$info");
exit;
}
else
{
//$connect=mysql_connect($local,$root,$pas);
//mysql_select_db($db);
$query="select * from biscuit where name='$name'";
$result=mysql_query($query);
if($result)
{
$row=mysql_num_rows($result);
if($row>0)
{
echo"<center><font size=2 color=red>";
echo"<br><br><br><br>登录成功!<br><br>";
include("session.php");
echo"<a href=\"userlist.php\">用户列表</a> 大话西洲 产品介绍";
echo"</font></center>";
exit;
}
else
{
$info="用户名或密码错误!";
header("location:login.php?info=$info");
exit;
}
}
}
}
?>

21,886

社区成员

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

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