PHP小试牛刀,为Imagevue相册添加登陆验证机制。

号称学PHP也有一阵子了,总是看教程什么的,总感觉不能上手,干脆做点东西出来。前几天看到小爱在研究ImageVue加密,用的是JS,虽然对普通的网友也有一定的作用,但是实际上JS并不能做到对网页的加密,因为JS只是浏览器端的脚本语言,需要对网页加密的话,还是要用更高级的语言,服务器端的语言。

正好ImageVue就是PHP的,就借着小爱的思路,做了个登陆验证的补丁。

效果请看我的ImageVue页面http://babesun.co.cc/photo/

加密补丁下载地址:Rayfile

因为已经会ASP了,所以对验证机制已经有了完整的思路:就是要在服务器端的程序上添加限制,在输入正确的用户名和密码时,才输出相册代码,否则页面在浏览器上只输出未加密的页面或者跳转到登陆页。

验证的手段通常都选用Session的方式。当然,也可以使用Cookie,但是,在PHP开发中对比起Cookie,Session 是存储在服务器端的会话,相对安全,而且不像 Cookie 那样有存储长度限制。由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,连FTP都不能修改,所以安全得多。

Session用于验证的机制:在Session中储存一个变量,设置Session为True或为某一个值的时候,为登陆成功。以后只要判断Session的值,就可以验证用户是否已经登陆。每个用户的Session储存于服务器端单独的文件中,不存储在数据库中,可以减少数据库的读写,也提高了效率。

分享一下关于PHP的Session使用技巧和常见问题的解决办法

PHP5中,用 $_SESSION["变量"]="值" 的方式声明一个变量,并给它赋值。服务器端就会生成一个 sess_ 为前缀的文件名来储存这个Session。Session的值可以是布尔,也可以是String。

与ASP随意声明Session和调用Session不同的时,每次使用 Session,或者某 PHP 文件要调用 Session 变量,那么就必须在调用 Session 之前启动它,使用 session_start() 函数。

使用session_start()函数需要注意的是:在此函数之前,不能有任何的HTML内容输出,包括PHP的echo和print函数。否则,会提示以下错误:
Warning: Cannot send session cookie – headers already sent
Warning: Cannot send session cache limiter – headers already sent

4 Comments
  1. 兔兔已经提供2.5版本了,支持单个相册加密,不需要手动进行啦

    中文包也在昨天发布了

    Imagevue X2.5.2 Retail xtu2.com/374.html
    ImageVue X2.5.2 简体中文语言包 xtu2.com/378.html

    1. 嗯,不错。我这个只是用来练习一下PHP的,呵呵。

  2. 虽然我不是很看得明白,不过真的好厉害啊,比我那些个菜鸟方法不知道强多少倍~

    1. 其实也很简单的,没什么神奇的,呵呵。不过做这个的时候学到了新知识,挺好的。

Leave a Reply