+ -
当前位置:首页 → 问答吧 → 感谢张老师的视频教程,我把我所学到的知识与大家共享一下。

感谢张老师的视频教程,我把我所学到的知识与大家共享一下。

时间:2009-12-29

来源:互联网

非常感谢张老师的激情讲义,也很感谢php提供的良好平台
以下程序是我学习了张老师的前几节课后写出来的用户注册模块

因为初学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