本文通过一个简单的例子完成了完整的mysql成员系统功能,这是一个非常实际的应用:

一、会员制原则:



确定登陆>(cookie或会话>状态)>验证状态和权限

二、会员制的安全性:

1。学习使用常数提高MD5安全性

2、cookie /会话少使用明文信息

3,会话安全性大于cookie

4,使用cookie /会话尽可能多地阅读信息以添加判断信息。

5,cookie /会话内容应该精简

6。在错误信息中及时销毁cookie /会话

三。数据库、表和字段user_list,



UID m_id用户名密码

11行政291760f98414679e3fd3f9051b19b6f7

22 895785cfa5d8157f4d33c58ae0f55123 Admin2



密码:是MD5(admintest100)和MD5(admin2test100),即密码会不断test100然后加密数据库。这一步可以在注册时设置。

四。配置页面m_config.php:


< PHP
session_start();
数据库连接
美元mysql_connect conn =('localhost ','root ',');
mysql_select_db(测试,为CONN);
定义常量
定义(all_ps,test100 );
查看登录状态和权限
功能user_shell(美元美元美元的UID,外壳,m_id){
为SQL =SELECT * FROM user_list哪里` UID ` = $ UID;
查询= mysql_query美元($ SQL);
美元= is_array($行= mysql_fetch_array($查询));
美元美元美元壳壳= = = MD5($行{用户名},{ } $行密码。all_ps):假;
如果($){
小若($行{ m_id } <= m_id美元){ / / $行{ m_id }是,更高的权限,最高权限为1
返回$行;
其他{ }
您的权限不足,无法看到页面。
出口();
}
其他{ }
在登录后可以看到这个页面;
出口();
}
}
设置登录超时
功能user_mktime($ onlinetime){
new_time美元= mktime();
echo $ new_time onlinetime美元。不以秒为单位操作页面。
如果(new_time美元美元onlinetime > 10'){ / / 10秒的超时时间,测试
登录超时,请再次登录;
出口();
session_destroy();
其他{ }
_session { } = mktime美元时代();
}
}
>


五。登录页面m_user.php:


< PHP
包括(m_config .php);
/ /回声MD5(Admin2 。all_ps);
如果($ _post {提交}){
用户名= str_replace美元(
为SQL =SELECT * FROM user_list哪里`用户名` = $用户名;
查询= mysql_query美元($ SQL);
美元= is_array($行= mysql_fetch_array($查询));
PS =美元美元的MD5($ _post {密码}。all_ps)= = $行{密码}:假;
如果(ps){
_session { } =美元美元UID UID排{ };
_session美元{ user_shell } = MD5($行{用户名},{ } $行密码。all_ps);
($ _session {次} = mktime); / /实现时间登录忘记
登录成功;
其他{ }
用户名或密码错误;
session_destroy(会话); / /删除所有密码错误
}
}
>

用户名 uff1a
用户名 uff1a
验证码:5213






六。设置权限和超时的页面m_zhuangtai.php:


< PHP
包括(m_config .php);
美元($ _session user_shell ARR = { UID },{ user_shell _session美元},1); / /设置权限为1页只是获取最高权力

user_mktime($ _session {次}); / /确定10秒超时

/ / echo $ _session {次}。; / /登录时间
/ /回波(mktime); / /当前日期。
/ / echo ARR {用户名}。;
/ / echo ARR UID } {。;

>



权限可以查看的内容。

七。测试结果:



1、登录与SSS,sssssss,提示:用户名或密码错误。看m_zhuangtai.php,提示:您可以在登录后看到的页面。

2。登录后与行政,你能看到的m_zhuangtai.php页面内容因为权限1。

3、行政管理员登录,因为权限是1,所以你可以看到m_zhuangtai.php页面的内容,但刷新后10秒,提示:X秒不操作,页面登出超时,请重新登录。

4、与Admin2 Admin2登录,因为权限是2,所以它是不可能从m_zhuangtai.php页的内容。

希望本文中描述的示例有助于PHP程序的开发。