<marquee width=358>欢迎来到月影社区,希望这里可以成为您美丽的梦幻花园,如果你觉得这里好请分享给您的朋友!- wf66.com</marquee> 将月影社区设置为您的首页将月影社区地址加入到您的收藏栏
月影社区时尚音乐音乐查询IP手机许愿之瓶最新更新文件加密访客留言爱音乐
欢迎您,首页 >> 信息中心 >> 用Session对Web页面进行保护

请输入您关键字:


用Session对Web页面进行保护

推荐查看本文HTML版本


要求目的:同一站点,无权用户,一般授权用户和超级用户能看到和使用不同的页面。
实现办法:在要保护的页面 include 不同级别的安全检验摸板。
注意事项:
1 $#@62; 要避免用户浏览器不使用 cookie 而不能浏览受保护的页面(session 默认使用客户端的 cookie).
2 $#@62; 要防止权限被盗用。( PHP 4 的 session 的默认存活期间是从建立 session 开始到关闭浏览器为止。)
如何使用:
1 $#@62; 在需要一般保护的页面的代码最前边加上 include ("secturity2.php"); 就行了
2 $#@62; 在需要特殊保护的页面的代码最前边加上 include ("secturity1.php"); 和 include ("secturity2.php"); 就行了
(假设所有文件都在同一个文件夹里)[月影社区 http://wf66.com/]
程序代码及详细解释:
security1.php 特殊用户页面保护摸板
security2.php 一般用户页面保护摸板
login2.php 用户登陆页面
我们先来看 login2.php (用户登陆页面)的代码:
$#@60;?php
session_reGISter("user");#增加用户名变数
session_register("password"); #增加密码变数
session_register("tmLast"); #增加时间变数
if($user==""){#判断是否是第一次登陆
$error="Chooseyounameandinputthepasswordplease!";
}
$tmLast=date("U"); #记录登陆时间
if($user1)
$user=trim($user1); #记录用户名(引用user1变量是为什么?请读者自己思考。)
$password=trim($password1); #记录密码
if($user1&&$password1){
if($password1==888){ #判断登陆密码是否是默认密码888结束 PHP 程式
$sid="PHPSESSID=".session_id(); #保存当前session的ID号
$warning="Yourpasswordisstillthedefaultpassword888,pleasechangeit.";
header("Location:changePassword.php?$sid&warning=$warning"); #传递警告参数warning到changePassword.php 页面
exit(); #立刻结束 PHP 程式
}
if(strtolower($user)=="root"){ #判断登陆用户是否是超级用户,可以自行扩充用户
$fil me="backend_index.php";
}
else{
if(!$fileName) #判断进入登陆页面的上一页是否是受保护页面
$fileName="index.php";
}
$sid="PHPSESSID=".session_id(); #保存当前session的ID号
header("Location:$fileName?$sid); #登陆成功进入指定页面,传递当前session的ID号,防止用户不使用 cookie 而读不到 session 值
exit(); #立刻结束 PHP 程式
}
?$#@62;
$#@60;html$#@62;
$#@60;title$#@62;$#@60;/title$#@62;
$#@60;head$#@62;
$#@60;linkrel="stylesheet"href="class/style.css"$#@62;
$#@60;metahttp-equiv="Content-Type"content="text/html;charset=gb2312"$#@62;
$#@60;/head$#@62;
$#@60;h2$#@62;LoginPage$#@60;/h2$#@62;
$#@60;?php
echo"$error"; #显示登陆提示
?$#@62;
$#@60;formaction="$#@60;?phpecho$PHP_SELF;#提交到当前页?$#@62;"method=post$#@62;
$#@60;P$#@62;$#@60;b$#@62;Name:$#@60;/b$#@62;
$#@60;?php
include("class/dbclass.inc"); #调用dbclass.inc类,用法和 MySQL.inc 类一样
$q=newDB_Sql; #定义一个新的对象
$q-$#@62;connect($Host,$Database,$User,$Password); #连接 mysql数据库
$query="selectchrUserName,chrFirstName,chrLastName".
"fromUser".
"wherechrFirstName!=".
"orderbychrFirstName";
$q-$#@62;query($query); #执行sql语句
echo"$#@60;selectname=user1size=1$#@62;";
while($q-$#@62;next_record()){ #从数据库中调出一般用户
if($user==$q-$#@62;f(0)) #判断是否是当前用户
$select="selected"; #是当前用户则设置为默认值
else
$select="";
echo"$#@60;optionvalue=".$q-$#@62;f(0)."$select$#@62;".
ucfirst($q-$#@62;f(1))."". #用户名首字大写
ucfirst($q-$#@62;f(2))."$#@60;/option$#@62;";
}
echo"$#@60;/select$#@62;";
?$#@62;$#@60;/P$#@62;
$#@60;P$#@62;$#@60;b$#@62;Password:$#@60;/b$#@62;$#@60;INPUTname=password1type=password$#@62;$#@60;/P$#@62;
$#@60;INPUTname=tmLasttype=hiddenvalue=$#@60;?phpechodate("U")?$#@62;$#@62;
$#@60;INPUTname=fileNametype=hiddenvalue=$#@60;?phpecho$fileName?$#@62;$#@62;
$#@60;P$#@62;$#@60;INPUTname=submittype=submitvalue=确认$#@62;$#@60;/P$#@62;
$#@60;/form$#@62;
security2.php (一般用户页面保护摸板):
$#@60;?php
session_register("user"); #说明同上
session_register("password");
session_register("tmLast");
if($fileName=="")
$fileName=$PHP_SELF; #记录当前页面路径
if($durtime=="")
$durtime=300; #设置 session “失效”时间
$currtime=date("U");
if(($currtime-$tmLast)$#@62;$durtime){ #判断 session是否“失效”
//session_destroy();
$error=urlencode("Seesionexpired.Loginagainplease!");
header("Location:login2.php?fileName=$fileName&error=$error&user=$user"); #跳到重新登陆页
exit();
}
else{
$tmLast=$currtime; # session 没“失效”则更新最后“登陆”时间
}
include("class/dbclass.inc");
$q=newDB_Sql;
$q-$#@62;connect($Host,$Database,$User,$Password);
$query="selectidUserfromUser".
"wherechrUserName=$user".
"andchrPasswd=$password";
$q-$#@62;query($query);
if(!$q-$#@62;num_rows()){ #判断是否找到密码匹配的用户
$error=urlencode("PasswordiswrongorNoprivilegeuser.");
header("Location:login2.php?fileName=$fileName&error=$error&user=$user"); #跳到密码错误登陆页
}
else{
$sid="PHPSESSID=".session_id();
$q-$#@62;next_record();
$USERID=$q-$#@62;f(idUser); #保存通过验证用户的ID号,方便以后使用
}
?$#@62;
security1.php (特殊用户页面保护摸板):
$#@60;?php
session_register("user"); #说明同上
$privilege="root,macro,jackie"; #设置超级用户名单列表,用“,”隔开
$pieces=explode(",",$privilege); #取得单个超级用户名单
for($i=0;$i$#@60;count($pieces);$i++){
if(strtolower($user)==$pieces[$i]){ #判断是否是超级用户
$hASPrivilege=1;
break; #跳出判断循环
}
}
if(!$hasPrivilege){
if($fileName=="")
$fileName=$PHP_SELF;
$error=urlencode("Youhavenoprivilegetoviewthispage!");
header("Location:login2.php?fileName=$fileName&error=$error&id=$id");
exit(); #跳到无权用户登陆页面
}
?$#@62;

用Session对Web页面进行保护 2006-8-31
转到本主题第:[ 1 ]
相关评论

暂无评论

总计0页 [ ]上一页 下一页
发表评论(揪错)
呢称: * 您尚未登陆,请登录
来自: *
内容:
 

(为防止非法信息,您的言论提交后需要审核才能正常显示)

文学
精品文萃 情感天地 言情小说
网络小说 玄幻小说 悬疑恐怖
武侠小说 古典品谈 外国名著
儿童文学 会员原创 学习园地
杂谈其它
娱乐
爆笑网文 星座占卜 影音动漫
娱乐新闻 影视剧情
诗词
青竹诗歌 个人诗集 宋词雅赏
全唐诗录
新闻
国际新闻 国内新闻 科技新闻
体育新闻
图片
图文专区 艺术长廊 桌面壁纸
精品素材 像素图片
漫画
单幅漫画 爆笑四格 连环漫画
电脑
电脑入门 图形图像 编程开发
游戏
我爱Q宠 最新攻略 最新秘籍
游戏新闻 技巧心得
经济
帕格节电 财经资讯 股市证券
生活
百科知识 外语学院 潮流时尚
健康医疗 宠物花卉 汽车地带
行走天下
美食
面食甜点 家常菜品 药膳食疗
美食天下 烹饪技巧 松辽风味
燕京风味 巴蜀风味 滇黔风味
赣江风味 徽皖风味 闽台风味
齐鲁风味 中州风味 岭南风味
荆楚风味 三晋风味 淞沪风味
苏扬风味 潇湘风味 钱塘风味
民族风味 素斋仿荤
营销
管理杂谈 谈经论道 培训激励
经营战略 职场生涯 公关交际
关于我们版权声明本站导航友情连结作品演示 TOP↑
本论坛言论纯属发表者个人意见,与£月影社区£立场无关。 皖ICP备16024038号-1
禁止发布任何色情/政治/反动相关信息让我们共同来营造一个属于我们的梦幻家园
Copyright ©2001-2006 MoonShadow. All rights reserved.  Version 4.0  Licence 2006.4.2
建站天数:7252天 本站基于ASP+JS构建,完全自主开发,版权归属月影社区 管理员QQ:23165062 Time:453ms