1. 添加主编、编辑、记者类型主页和session赋值
简单范例中,只有系统管理员和注册用户两个类型的用户,在后面我们还将用到添加主编、编辑、记者三个类型的用户。需要在login.php中加入这三种用户的判断和转向语句。
另外,分别为主编、编辑、记者建立主页homepage_chief.php、homepage_editor.php、homepage_reporter.php。
修改每个主页前面的类型判断:
2. 添加用户注册程序
(1)管理员注册程序
用户注册有两种情况,一种是用户自己注册,另一种是管理员帮助用户注册。如果是用户自己注册,用户类型只能是user不能是别的类型,否则如果外面的用户随便就可以把自己注册成系统管理员(admin)或领导(chief),整个系统就乱了。
程序1 系统管理员注册首页(admin_reg.php)
程序2 系统管理员注册存储程序(admin_reg_save.php)
程序讲解:
(a)下拉式菜单
Input传值变量名在name中,值在用户填的文本框中。而下拉式菜单传值变量名在select的name中,值在option的value中,至少五个value,传哪个到下一页,要看用户选择哪个了。
(b)管理员的权限判断
由于管理员的用户注册程序绝对不能让外面的用户使用,所以管理员的这两个用户添加程序前面必须加上权限的判断。
(c)在管理员用户首页加上添加用户的链接
(2)普通用户注册
如果是普通用户的注册程序,由于用户还没有注册,自然在程序前不可以加任何session判断,不然还没有注册的用户就无法完成注册的过程了。
普通用户的注册页(reg.html)与管理员注册页还有一个不同点,就是用户类型的部分,管理员用的是下拉框,普通用户则应删掉。
在注册接收存储界面(reg.php)
$usertype = $_POST['input_usertype'];
应改为:
$usertype = 'user';
就是说,所有自己在网上注册的用户,用户类型只能是'user',不能是别的。
另外,在用户登录页的登录按钮后面,应该加一个注册按钮:(www.xing528.com)
链接普通用户的注册程序。
(3)注册时重名的判断
在两个注册程序中,都存在重名的判断问题。
在打开数据库后,加入以上程序就可以完成重名的判断。
(4)注册时输入内容验证
输入内容验证有两种方法,一种是在客户端使用JavaScript验证,另一种是在服务器端通过PHP进行验证。以下程序就是使用JavaScript验证输入是否为空的简单范例。实际上JavaScript还有更细的验证功能,如验证字符串长度、验证数据类型等,此范例是在数据提交时验证,JavaScript还有在输入的同时进行验证的功能,在此不加赘述。
前面讲过用html5对输入内容进行验证,这里用的是JavaScript进行数据验证的方法,还可以采用以下服务器端验证的方法,程序应放在接收程序reg_save.php和admin_reg_save.php程序中。
判断用户名$u字符串长度要在3~15个字符,并且只能含有英文数字和下画线。
判断密码$p字符串长度不能小于6。
3. MD5密码再加密
MD5是一种流行的加密算法,经常应用于密码的加密存储,一般在密码存入数据库前用MD5对数据进行加密,等取出来时再用MD5来解密。
$password = MD5($password);
通过以上算法就实现了密码的加密。
密码111111加密后的结果是个32位的字符串:96e79218965eb72c92 a549dd5a330112。
4. 对所有用到SQL的地方使用防注入处理
在用户登录时,有必要将与SQL相关的语句改为预处理模式。
5. 使用conn.php统一打开数据库
我们运行的程序只要有数据库,就会有以下连接数据库的语言。
专业开发者的习惯是,把这个连接数据库的语言写在一个conn.php文件中,用文件包含的方法引入到程序文件中。
conn.php可以写成这样:
可以看出,其中包含错误判断等完整的程序,在程序文件中只需要加入:
include('conn.php');
这样大大简化了程序,如果数据库更名,则不用一个个程序去改,效率非常高。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。