php mysql登录模块_PHP用户登录注册模块实现

项目包含的功能脚本:

login.php//登录

reg.php//注册用户

user_add.php//注册校验脚本

user_login_check.php//登录校验脚本

image.php//验证码图片生成脚本

流程:

设计数据库:

包含用户uid,用户名,密码,昵称,性别,邮箱,注册时间

sql语句如下

create table users (uid bigint(20) not null auto_increment primary key unique key,username varchar(100) default null, userpassword varchar(100) default null, nickname varchar(100) default null, sex tinyint(1) default 0,email varchar(100) default null, regtime timestamp(14) default 0);

注册模块:

reg.php填写注册信息,通过js脚本判断所填写信息是否合法

如果合法,那么提交表单,通过user_add.php进行用户的注册

user_add.php脚本实现的功能如下:

判断输入的信息是否合法,这个js可以实现,但是为了浏览器兼容这里用php再实现一遍js的功能

如果合法并且以前没有注册过,那么可以注册,否则提示错误信息

登录模块:

login.php填写登录信息,js判断输入信息是否合法

如果合法提交表单,通过user_login_check.php登录

user_login_check.php实现功能如下:

判断输入信息是否合法,与js功能相同

如果合法并且用户名密码都对的话保存session变量,允许用户登录

验证码模块:

防止恶意注册生成验证码,生成的是png格式的5位数字验证码

需要用到session变量,服务器需要安装gd库

具体注意事项:

1、JavaScript脚本

{return(('0'<=cCheck)&&(cCheck<='9'));

}functionIsAlpha(cCheck)

{return((('a'<=cCheck)&&(cCheck<='z'))||(('A'<=cCheck)&&(cCheck<='Z')));

}functionIsValid()

{varstruserName=reg.UserName.value;for(nIndex=0;nIndex

{

cCheck=struserName.charAt(nIndex);if(!(IsDigit(cCheck)||IsAlpha(cCheck)))

{returnfalse;

}

}returntrue;

}functionchkEmail(str)

{returnstr.search(/[/w/-]{1,}@[/w/-]{1,}/.[/w/-]{1,}/)==0?true:false;}functiondocheck()///This place has a very important problem.MF can't do as wo expect!{if(reg.UserName.value=="")

{

alert("请填写用户名");returnfalse;

}elseif(!IsValid())

{

alert("用户名只能使用数字和字母");returnfalse;

}elseif(reg.UserPassword.value=="")

{

alert("请填写密码");returnfalse;

}elseif(reg.UserPassword.value!=reg.CUserPassword.value)

{

alert("两次密码输入不一样");returnfalse;

}elseif(reg.NickName.value=="")

{

alert("请填写昵称");returnfalse;

}elseif(reg.Email.value=="")

{

alert("请填写邮箱地址");returnfalse;

}elseif(!chkEmail(reg.Email.value))

{

alert("请填写有效的邮箱地址!");returnfalse;

}elsereturntrue;

}

响应js脚本的方法:

在提交表单时候响应(有的浏览器在docheck()返回错误的时候任然继续提交表单,这就是为什么要在表单处理脚本里任然继续使用php进行输入信息再次验证的原因)

登陆时候可以只验证用户名和密码

2、数据库连接

$strSql="";$database_username="root";$database_password="ssklzs";$database_name="userlog";$s_UserName=$_POST["UserName"];$s_UserPassword=$_POST["UserPassword"];$strSql="select * from users where username like '".$s_UserName."' and userpassword like '".$s_UserPassword."'";//$strSql="insert into users(username,userpassword,nickname,sex,email,regtime)values('".$s_UserName."','".$s_UserPassword."','".$s_NickName."','".$s_Sex."','".$s_Email."',now())";//now()当前系统时间

//连接数据库$link=mysql_connect("localhost",$database_username,$database_password) ordie("Could not connect MySQL:".mysql_error());mysql_select_db($database_name,$link) ordie("Can not use userlog:".mysql_error());$result=mysql_query($strSql);//sql执行完毕if($row=mysql_fetch_object($result)){···}else{···}

3、session变量设置

session是不同php脚本间参数进行传递的通道

session变量大致需要两个,一个用来保存验证码,一个用来记录登录的用户

一般情况下php.ini文件的session.auto_start = 0表示session没有自动开启,所以在使用session时候需要将此数值设为1

注意session变量的初始化和注销

4、返回按钮

echo ("")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值