感谢张老师的视频教程,我把我所学到的知识与大家共享一下。
时间:2009-12-29
来源:互联网
以下程序是我学习了张老师的前几节课后写出来的用户注册模块
因为初学php,对代码驾驭能力不足,但也算是交个作业,感谢一下辛勤无私的张老师对我的付出
让他看到他的工作得到了肯定。
谢谢。
/*********************************/
/*程序说明 */
/*author:Chatop */
/*Date:2009-12 */
/*程序用途:用户注册模块 */
/*********************************/
由于程序后来改过,所以数据结构有所不同,但程序改动不多,所以说明就不再做修改了
1.图型验证码机制,自动随机进行数字,字母,中文验证码生成,中文验证码,随机选用一种字体文件。
2.防恶意刷新机制,网页与验证码部分已实现发现有用户恶意刷新页面,而停止对其服务。
3.表单提交前JS验证表单内容是否全法。
4.对用户名进行时实检查,该用户名是否允许注册,分为 字节长度检查,已存在用户检查,禁止注册用户检查。(使用JQuery)
5.提交表单后,使用PHP再次检查表单内容是否合法,目前只完成了验证码检查,如果不符合,用户退回表单时,将保留除密码外的其他已填内容。
6.SQL注入验证,过滤Select 时带进来参数的 = ' " 等符号。
目录、文件作用说明
./css //CSS目录
/main.css //页面CSS文件
./images //系统图片目录
/emote //系统表情图片目录
/0.jpg //表情图片0
/1.jpg //表情图片1
./inc //功能文件目录
/adodb5 //PHP ADODB类库
/*.* //以下文件不做说明
/checkimage.php //图片验证码生成文件
/config.php //系统信息配置文件
/*.ttf //4个系统字体文件
/myfunction.php //我的函数库,暂时只有二个函数
/timecheck.php //防刷新控制文件
/timecheckimg.php //图片验证码防刷新控制文件
./js //Js目录
/area.js //省市区三级联动Select JS文件
/jquery.js //JQuery库
/regcheck.js //表单验证文件,暂时无用
./upload //用户上传内容目录
/emote //用户上传头像目录
./check.php //php检查表单内容与入库文件
./reg.php //注册页面文件
./reg.php_Old //老版本注册页面,失效
./lfweb.sql //mysql数据库导出文件,整个文件导入时会出错,我不知道是为什么,一段段SQL执行确是正常的。
文件方法说明
checkimage.php?type=num //产生数字验证码
checkimage.php?type=word //产生字母验证码
checkimage.php?type=chinese //产生中文验证码
checkimage.php?type=rand //随机产生以上几种验证码之一
验证码的燥点算法应该改进一下,现在的有点浪费资源,主要是前期用来测试过GD库的生成效率,结果令人满意
6000个燥点生成,不占用cpu时间。
include_once("$dirname./inc/timecheck.php"); //载入文件timecheck.php,可有效防止用户恶意刷新页面。
include_once ("timecheckimg.php"); //载入文件timecheckimg.php,可有交防止用户恶意刷新验证码
config.php文件说明
$mypath = $_SERVER['PHP_SELF']; //暂时无用
$hostname = "127.0.0.1"; //Mysql服务器地址
$username = "root"; //Mysql数据库用户名
$password = "xxxxxx"; //Mysql数据库用户密码
$lan = "gb2312"; //Mysql使用的字符集
$dbname = "lfweb"; //Mysql数据库名
$useremotesdir = '/upload/emote/'; //用户上传头像目录
include_once ("adodb5/adodb.inc.php"); //Adodb类库引用
include_once ("myfunction.php"); //我的函数库引用
$db = NewADOConnection('mysql'); //初始化Adodb类实例
$db->Connect($hostname, $username, $password, $dbname); //进行数据库连接
$db->execute("set names `gb2312`"); //执行语句,使用gb2312字符集
函数说明
myfunction.php文件内,目前只有二个函数
function filtersqlin($str) //此函数用与过滤SQL语句中的参数里的危险字符,如=,',"。
用法
$name = filtersqlin($str);
function checknameright($str) //此函数用与检查用户输入的用户名,是否被系统接受。
用法
checknameright($_GET['name']);
此函数返回 0,1,2,3 数值,交给Jquery库来做相应处理
返回0时,表示数据库中已存在该用户名,系统不予注册。
返回1时,表示数据库不存在该用户名,该用户名长度也大于4,并且不是被限制注册的,系统允许注册。
返回2时,表示该用户名长度不足4位,系统不予注册。
返回3时,表示该用户名,被系统限制注册,系统不允许注册。
数据库结构说明
数据库名:lfweb
库内目前有三个表 (新版,数据库有变化,具体恢复一下lfweb.sql)
1.users //用户表
/ `id` int(11) NOT NULL auto_increment, //ID 自增 主键
/ `username` varchar(20) NOT NULL, //用户名
/ `password` varchar(20) NOT NULL, //密码
/ `realname` varchar(20) default '未输入', //真实姓名
/ `email` varchar(35) NOT NULL, //email地址
/ `qq` varchar(20) NOT NULL, //QQ号码
/ `shen` varchar(26) NOT NULL, //所在省
/ `city` varchar(26) NOT NULL, //所在市
/ `area` varchar(26) NOT NULL, //所在区
/ `address` varchar(90) default '未输入', //详细地址
/ `postcard` varchar(18) default '未输入', //身份证号码
/ `emote` varchar(40) NOT NULL default '/images/emote/default.jpg', //头像,默认为default.jpg
/ `gold` smallint(6) NOT NULL default '0', //拥有金币数
/ `tel` varchar(20) default '未输入', //电话号码
/ `postnum` smallint(6) NOT NULL default '0', //发表内容数量
/ `isdisplay` tinyint(1) NOT NULL default '0' COMMENT '是否显示隐私信息', //是否显示隐私信息,如QQ,Email,电话等
/ `memo` tinytext, //自我说明
2.emote //系统头像表
/ `id` int(11) NOT NULL auto_increment, //ID 自增 主键
/ `url` varchar(40) NOT NULL, //url 头像的图片路径
/ `eid` tinyint(4) NOT NULL, //头像图片实际编号
3.unuser //限制注册用户名表
/ `id` int(11) NOT NULL auto_increment, //ID 自增 主键
/ `username` varchar(20) NOT NULL, //被限制注册的用户名
程序使用说明
本程序在php5+mysql5+windows2003+iis6环境下编写,一般情况下同时兼容linux系统。
请在调试本模块时,修改config.php文件内的必要参数。
由于学PHP时间较短,所以代码写的比较基础,望谅解!!
chatop
2009-12-20
作者: chatop 发布时间: 2009-12-29
作者: chatop 发布时间: 2009-12-29
作者: xiaohufei 发布时间: 2009-12-30
作者: xujing3344 发布时间: 2009-12-30
我也学习张老师的教程快两个月了,正在做自己的留言本,把你的下下来借鉴借鉴
作者: yilander 发布时间: 2009-12-30

作者: aluo 发布时间: 2009-12-30
作者: dhanyu 发布时间: 2009-12-30
作者: php100亚洲象 发布时间: 2009-12-30
作者: 石光启 发布时间: 2009-12-30
作者: dhanyu 发布时间: 2009-12-30
作者: will 发布时间: 2009-12-31
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28