php mysql登录模块_web编程之注册以及登录验证模块(PHP+mysql)

                                              注册以及登录验证模块

一,用户信息表的设计

1,设计用户表user表如下:
2, 此处注册页面有一个form表单,用JS函数做一个有效性的检验。
 
  

..............

function check()

{

if (document.getElementByName(username).value=="")

{

alert("请输入用户名");

return false;

}

if(document.getElementByName(email).value.indexOf("@")==-1)

{

alert("请输入有效地Email");

return false;

}

}

3,用户登录页面同上,一个form 表单,再用js做有效性检验。

简略代码如下:

function check()

{

if(document.send.pwd.value=="")

{

alert("密码为空");

return false;

}

}

4,对表单提交信息做验证有两种方式,一种是在服务器端验证,一种是客户端验证。由于服务器端验证需要往返于服务器与客户端之间,所以大都是在浏览器端排除很多输入错误,减轻服务器负担。而,很多页面基本都有表单的输入,所以可以写一个通用的JS过滤函数文件,需要时只需加载该文件即可。

代码如下(去掉字符串头部和尾部的空格):

class MyString(str)

{

this .str=str;

//去掉串头部空格

function ltrim(str)

{

var i=0;

while(str.charAt(i)==" ")

{

i++;

}

return str.substring(i,str.length);

}

//去掉串尾部空格

function rtrim(str)

{

var i=str.length;

while(str.charAt(i)==" ")

{

i--;

}

return str.substring(0,i+1)

}

//去掉串头尾部空格

function trim(str)

{

return ltrim(rtrim(str));

}

}

5,服务端的数据有效性验证:包括:正则表达式判断,用户名排重检测,SQL注入验证

1)正则表达式判断(PHP)

PHP中常用的正则表达式判断函数有以下几个:

1,规则匹配 int preg_match('/ hello/', $string)  当有符合的匹配时返回1,否则返回0

2,规则替换  preg_replace()  详见http://www.php100.com/cover/php/1927.html

以上例程会输出:

April1,2003

3,规则分割 preg_split()可以将整段字符串按匹配的正则表达式分割成一两个或更多字符的多段,该函数返回一个子串数组。注意与explode(),str_split()区分

以上例程会输出:

Array

(

[0] => hypertext

[1] => language

[2] => programming

)

2) SQL注入验证,需要注意以下两点:1,遵循最小权限原则,即赋予连接数据库的用户尽可能小的权限。2,尽可能的过滤有客户端提交的可疑的非法数据。要防范SQL注入,实际上只要屏蔽一些SQL命令以及关键字即可。

function checkIlleagalWord()

{

//定义不允许提交的SQL命令以及关键字

$words=array() ;

$words[]="add";

$words[]="count";

$words[]="create";

$words[]="delete";

$words[]="drop";

$words[]="from";

$words[]="grant";

$words[]="insert";

$words[]="select";

$words[]="update";

//判断提交的数据中是否存在以上关键字,$_REQUEST中含有所有提交数据

foreach($_REQUEST as $strGot)

{

$strGot=strtolower($strGot); //专为小写

foreach($words as $word)

{

if(strstr($strGot,$word))

{

echo "您输入的内容含有非法字符";

exit();

}

}

}

}

checkIlleagalWord(); //在本文件被包含时即自动调用

3)标记登录状态:用户登录成功后,利用session设置一个全局变量,如:

$_SESSION['login']="true";$_SESSION['user']=$username;

这样判断用户是否登录只需判断

$_SESSION['login']是否存在。

if(empty($_SESSION['login']))

{echo "您还没有登陆。";exit();}

6,常用正则表达式 (摘自http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html)

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值