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脚本

<script language="javascript">

function IsDigit(cCheck)

{

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

}

function IsAlpha(cCheck)

{

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

}

function IsValid()

{

var struserName=reg.UserName.value;

for(nIndex=0;nIndex<struserName.length;nIndex++)

{

cCheck=struserName.charAt(nIndex);

if(!(IsDigit(cCheck)||IsAlpha(cCheck)))

{

return false;

}

}

return true;

}

function chkEmail(str)

{

return str.search(/[\w\-]{1,}@[\w\-]{1,}\.[\w\-]{1,}/)==0?true:false;

}

function docheck()///////////////This place has a very important problem.MF can't do as wo expect!

{

if(reg.UserName.value=="")

{

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

return false;

}

else if(!IsValid())

{

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

return false;

}

else if(reg.UserPassword.value=="")

{

alert("请填写密码");

return false;

}

else if(reg.UserPassword.value!=reg.CUserPassword.value)

{

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

return false;

}

else if (reg.NickName.value=="")

{

alert("请填写昵称");

return false;

}

else if (reg.Email.value=="")

{

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

return false;

}

else if (!chkEmail(reg.Email.value))

{

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

return false;

}

else return true;

}

</script>

响应js脚本的方法:<form name="reg" action="user_login_check.php" method="post" target="_self" onSubmit="return docheck()">

在提交表单时候响应(有的浏览器在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) or die("Could not connect MySQL:".mysql_error());

mysql_select_db($database_name,$link) or die("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 ("<input type='button' name='btn' value='返回' onClick='window.history.go(-1)' />")

PHP用户登录与注册页面的更多相关文章

  1. Django用户登录与注册系统

    一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...

  2. Django实战(一)-----用户登录与注册系统7(邮件确认)

    通常而言,我们在用户注册成功,实际登陆之前,会发送一封电子邮件到对方的注册邮箱中,表示欢迎.进一步的还可能要求用户点击邮件中的链接,进行注册确认. 下面就让我们先看看如何在Django中发送邮件吧. ...

  3. Django实战(一)-----用户登录与注册系统5(图片验证码)

    为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...

  4. Django实战(一)-----用户登录与注册系统2(数据模型、admin后台、路由视图)

    使用Django开发Web应用的过程中,很多人都是急急忙忙地写视图,写前端页面,把最根本的模型设计给忽略了. 模型中定义了数据如何在数据库内保存,再直白点说就是数据表的定义.这部分工作体现在Djang ...

  5. 使用PHP实现用户登录和注册的功能

    登陆界面 login.php <form action="logincheck.php" method="post"> 用户名:<input ...

  6. Spring Security默认的用户登录表单 页面源代码

    Spring Security默认的用户登录表单 页面源代码 <html><head><title>Login Page</title></hea ...

  7. Java入门:用户登录与注册模块1(实践项目)——分析

    任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...

  8. MFC 用户登录、注册、工作主窗体

    创建项目由向导生成的窗体作为工作的主窗体.用户登录.注册窗体添加对话框来实现. [具体功能] 1.主窗体应该出现在登录窗体成功之后. 2.登录窗体关闭(右上角❌),程序直接退出. 在App.cpp的I ...

  9. Django实战(一)-----用户登录与注册系统3(前端页面、登录视图)

    基本框架搭建好了后,我们就要开始丰富页面内容了.最起码,得有一个用户登录的表单不是么?(注册的事情我们先放一边.) 一. 原生HTML页面 删除原来的login.html文件中的内容,写入下面的代码: ...

随机推荐

  1. javaScript 工作必知(三) String .的方法从何而来?

    String 我们知道javascript 包括:number,string,boolean,null,undefined 基本类型和Object 类型. 在我的认知中,方法属性应该是对象才可以具有的 ...

  2. node.js(四)path优化(路径优化)

    1.normalize函数的基本用法 normalize函数将不符合规范的路径经过格式化转换为标准路径,解析路径中的.与..外,还能去掉多余的斜杠. 如下示例: var path = require( ...

  3. @property和@synthesize

    main.m #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, cons ...

  4. JAVA Stop The World 第八节

    JAVA Stop The World 第八节 小伙伴还记得上一篇中我们留下的一个问题吗?什么是停顿类型!经过上几章的学习,我们知道垃圾回收首先是要经过标记的.对象被标记后就会根据不同的区域采用不同的 ...

  5. php curl详解用法[真的详解]

    目前为目最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正 则,一定就是个采集高手了. 通用函数: function curl_file_get_conte ...

  6. Programming C#.Interfaces

    类实现一个接口时,它必须实现该接口的所有部分(方法和属性等),效果相当于类要表明:“我同意履行这个接口所定义的协定.” 从抽象类继承实现了“is-a(是一种)”关系,实现接口时一种“implement ...

  7. win8VPN

    上一章已经讲过Windows2008RT搭建VPN服务器搭建过程,接下来说一下win8的VPN登录 这里是win2008的VPN连接过程 先说win8的VPN登录过程.同样也很简单步骤和2008的差不 ...

  8. 开发框架CIIP

    github开源:企业级应用快速开发框架CIIP WEB+WIN+移动端   简介 CIIP是基于XAF开发的开源信息系统框架.CIIP最常见的应用场景是基于数据库的企业级应用程序,例如供应链系统,E ...

  9. J2SE知识点摘记(十六)

    1.         IO包中的类层次 ┌BufferedInputStream ├DataInputStream ┌FilterInputStream┼LineNumberInputStream ├ ...

  10. 数组Magic Index

    Question A magic index in an array A[1...n-1] is defined to be an index such that A[i] = i. Given a ...