匿名用户设计

匿名用户设计:网站用户不需要登录可以实现登录用户的操作(除去扣费的功能外)

Java代码  

  1. mail varchar(60) #用户名     
  2. istemp  tinyint(1) #是否是匿名  

假设登录用户是邮箱账号,匿名用户设计能保证唯一的非邮箱字符。匿名用户的操作数据产生和登录用户的业务流程一样,用户登录后只需要替换掉用户名(mail),标识符(istemp)清空匿名cookie/session即可,登录用户session和匿名session只能存在一个。匿名的数据用session或cookie存储(存mail即可)当产生一个匿名的session或cookie后就不产生新的匿名cookie/session值了。如登录是$_SESSION['user'] 匿名是$_SESSION['tmpuser'];

Java代码  

  1. <?php  
  2. @session_start();  
  3. include_once 'inc/Users.class.php';  
  4. if (isset($_COOKIE['users']) && !empty($_COOKIE['users'])) {  
  5.     $user = new Users();  
  6.   
  7.     $userdata = authcode(urldecode($_COOKIE['users']), 'DECODE', APPKEY);  
  8.   
  9.     $arr = explode(':', $userdata, 2);  
  10.   
  11.     $data = unserialize($arr[1]);  
  12.     $mail = $data['mail'];  
  13.     if (strpos($mail, '@') > 0) {  
  14.         $userdetail = $user->getUserInfoByMail($mail);  
  15.         $tmpmail = $user->getSiteTmpUser($mail, $_GET ['sid']);  
  16.         if ($tmpmail) {  
  17.             $userdetail['tmpmail'] = $tmpmail;  
  18.             $mail = $tmpmail;  
  19.         }  
  20.         $user = $_SESSION['users'] = $userdetail;  
  21.     } else {  
  22.         $_SESSION['tmpusers'] = $data;  
  23.         $_SESSION['tmpusers']['isguest'] = 1;  
  24.         $user = $_SESSION['tmpusers'];  
  25.     }  
  26. }  
  27.   
  28. if (!isset($_SESSION['tmpusers']) && !isset($_SESSION['users'])) {  
  29.     $mail = getsalt() . random(30);  
  30.     $key = authcode(serialize(array('mail' => $mail)), 'ENCODE', APPKEY, time() + 30);  
  31.     setcookie('users', $key, time() + 3600, '/');  
  32. }  

2 如果用户故意不登录清掉cookie后,再访问回产生新的cookie。之前的匿名数据成垃圾数据了.可以根据标识符和时间写定期清理脚本

 

常见应用:匿名购物车功能

时间: 2024-10-27 10:43:00

匿名用户设计的相关文章

什么是Web设计-为用户设计

web|设计 正如上面所说的,在Web开发中经常犯的一个错误是为设计者而设计站点,所考虑的是设计者的需求而不是实际用户的需求.如果设计者忽略用户的需求,进程模型就不能保障一个站点的质量.一定要记住Web设计的重要原则:规则:设计者不是用户. 设计者所理解的并不是用户所理解的.作为一个设计者,你拥有Web站点的直接知识.你知道信息在哪里以及如何安装插入件.你有最优的屏幕分辨率及浏览器的设置等等.你必须接受以下的事实,很多用户并不像你一样理解你认真设计的站点,他们的兴趣甚至也与你不尽相同.考虑到用户

Web设计核心问题3:为用户设计(1)

web|设计|问题   正如在第1章中所讨论的,各个Web站点经常是根据各自特定的哲学观点来进行设计的.有时这种观点是以内容为中心,有时它又是以技术为中心.更经常的是,它是以视觉效果为中心.但是,设计Web站点时的真正重点应该是用户.时刻想着用户,并千方百计地满足他们的要求是以用户为中心的设计的关键.但是理解用户并不是一件很容易的事.虽然所有的用户都有一些共同的能力如记忆力和响应时间,但不同的用户仍然是不同的个体.网站应该为共同的用户进行设计,而不是为个别的新用户或老用户.网站应该能被所有的人所

Web设计核心问题3:为用户设计(9)

web|设计|问题  3.12 建设可用的站点 可用站点开发的关键在于早期就关注应用程序的用户.记住用户的目标不是使用计算机或访问站点.用户的目标是完成某个任务-购买某个物品或寻找支付账单的中心,投诉等.你应该尽量接触用户,或者倾听.不要掉进了认为你应该直接询问用户的需求或者用户会为你设计站点的圈套.用户不是设计者,他们会提出不合逻辑和不现实的要求.因为这些,你可能会设计实现自己想法的站点,而不考虑用户的需求.然而,以用户为中心的设计的核心是始终记住我们是为用户设计而不是为我们自己设计.回忆以下

Web设计核心问题3:为用户设计(6)

web|设计|问题  3.9 用户的一般类型 依据使用Web的能力来衡量,存在三种一般类型的用户:初学者.一般能力的用户.专家或能力强的用户.一个初学者需要特别的帮助,可能更喜欢以特别的点击获得反馈信息的方式来完成简单的任务.一种适合新手的用户界面例子是完成一般任务的自动化向导.相反,专家是那些能很好理解站点的用户.能力强的用户应该分为两类:经常访问站点的和不经常访问站点的.经常访问站点的能力强的用户会利用站点的高级特性如复杂的搜索,直接形成他们自已的 U R L,并且可能记住站点中某个对象的位

Web设计核心问题3:为用户设计(5)

web|设计|问题  3.8 用户的世界 从以自己的观点理解这个世界的意义出发,人确实是他们世界的中心.考虑一下人们理解 Web站点的方式,如图3 - 4所示.用户生活在真实的世界里.他们受到外界环境的影响,如他们所在位置的物理条件.周围的噪音.他们所使用的监视器的外观质量.在他们的世界里,他们使用因特网及包括网络链接设备.服务器和浏览器在内的Web.一旦接近Web,他们浏览和访问站点,也正是在这里他们开始注意站点的内容.如果他们决定与站点交互,他们就会开始浏览内容并对表达的这些内容做出反应.

MySQL安全问题(匿名用户)的一点心得

mysql|安全|问题|心得 前两天在帮朋友整理他的主页空间时候,发现的一点关于MySQL可能大家都会忽略的问题:我们知道,在安装完MySQL后,它会自动创建一个root用户和一个匿名用户,其初始密码都是空,对于前者,很多参考资料上都会提醒大家要注意及时设定一个密码,而忽略了后者,大概是因为后者默认设定为只能在本机使用的缘故吧. 但如果你的MySQL是要提供给Web服务器作数据库服务的,忽略这个匿名用户的代价可能相当惨重,因为在默认设置下,这个匿名用户在localhost上几乎拥有和root一样

“Web 匿名用户”帐户密码的位置

web 问:我们希望向"Web匿名用户"帐户授予从其他系统上读取信息的访问权:可是,我们不知道该帐户的密码.怎样才能获得该密码呢? 答:IUSR_<计算机名>帐户就是"Web匿名用户"帐户,它是在IIS的安装过程中创建的.该密码存储在本地SAM中(对于2000域控制器而言存储在ActiveDirectory中),Metabase中也存储着该密码.由于该密码存储在Metabase中,您就可以使用一个.vbs脚本将IUSR和IWAM这两个帐户的密码提取出来,

Vsftp匿名用户不能下载的原因及解决方法

近期在群里,坛子里,包括自己做练习的时候都遇到了上面的问题,搜索网络也没找到比较确切的答案:后又查看了大量的相关文章和资料,现把这个问题拿出来分析解决,供广大vsftp学习新人参考:(这个问题和防火墙无关,关闭iptables) vsftp中的和匿名用户有关的参数: 1)主配置文件:/etc/vsftpd/vsftpd.conf -------------------------------------------------- [root@station ~]# cat /etc/vsftpd

教你如何删除mysql匿名用户

安装完MySQL以后会自动创建一个root用户和一个匿名用户,对于root大家都非常注意,而这个匿名用户很多人都会忽略,大概是因为匿名用户默认设定为只能在本地使用的缘故吧. 但如果MySQL要作为数据库提供给Web服务器使用的话,忽略这个匿名用户的代价可能相当惨重.因为在默认设置下,这个匿名用户在localhost上几乎拥有和root一样的权限.很可能因为访问者上传一个PHP文件,用这个PHP文件创建一个新用户,并给他一个较高的权限,然后用这个新用户连接到服务器的MySQL,对该服务器的MySQ