PHP用户登录与注册页面
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用户登录与注册页面的更多相关文章
- Django用户登录与注册系统
一.创建项目 1.1.创建项目和app python manage.py startproject mysite_login python manage.py startapp login 1.2.设 ...
- Django实战(一)-----用户登录与注册系统7(邮件确认)
通常而言,我们在用户注册成功,实际登陆之前,会发送一封电子邮件到对方的注册邮箱中,表示欢迎.进一步的还可能要求用户点击邮件中的链接,进行注册确认. 下面就让我们先看看如何在Django中发送邮件吧. ...
- Django实战(一)-----用户登录与注册系统5(图片验证码)
为了防止机器人频繁登录网站或者破坏分子恶意登录,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序. 可以防止恶意破解密码.刷票.论坛 ...
- Django实战(一)-----用户登录与注册系统2(数据模型、admin后台、路由视图)
使用Django开发Web应用的过程中,很多人都是急急忙忙地写视图,写前端页面,把最根本的模型设计给忽略了. 模型中定义了数据如何在数据库内保存,再直白点说就是数据表的定义.这部分工作体现在Djang ...
- 使用PHP实现用户登录和注册的功能
登陆界面 login.php <form action="logincheck.php" method="post"> 用户名:<input ...
- Spring Security默认的用户登录表单 页面源代码
Spring Security默认的用户登录表单 页面源代码 <html><head><title>Login Page</title></hea ...
- Java入门:用户登录与注册模块1(实践项目)——分析
任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...
- MFC 用户登录、注册、工作主窗体
创建项目由向导生成的窗体作为工作的主窗体.用户登录.注册窗体添加对话框来实现. [具体功能] 1.主窗体应该出现在登录窗体成功之后. 2.登录窗体关闭(右上角❌),程序直接退出. 在App.cpp的I ...
- Django实战(一)-----用户登录与注册系统3(前端页面、登录视图)
基本框架搭建好了后,我们就要开始丰富页面内容了.最起码,得有一个用户登录的表单不是么?(注册的事情我们先放一边.) 一. 原生HTML页面 删除原来的login.html文件中的内容,写入下面的代码: ...
随机推荐
- PHP自学2——将用户提交表单存储到外部普通文件中
在上一节中我们已经实现了将用户的订单信息提交到服务器端,然后服务器端将提交信息返回并显示到页面上.这一节将把上一节用户的订单信息保存到外部的普通文件中(即.txt文本文件中). 本节代码将用户提交的订 ...
- 此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行
错误提示:此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行.若要将此服务器连接到服务器场,请使用 SharePoint 产品配置向导,该向导可从 ...
- win32 消息说明
WM_NULL = $0000; WM_CREATE = $0001; 应用程序创建一个窗口 WM_DESTROY = $0002; 一个窗口被销毁 WM_MOVE = $0003; 移动一个窗口 W ...
- ORA-600[kcratr_scan_lastbwr]逻辑坏块解决
数据库版本: 11.2.0.3 问题现象: 今天在启动一台测试数据库的时候,发现db不能open,报错如下: ERROR at line 1: ORA-00600: internal error co ...
- poj2459 Treasure Exploration (闭包+二分)
这道题是让求派出机器人的最少数量,乍一看以为是简单的求最小路径覆盖,后来发现错了,因为有的点可以走多次,而二分中每个点只能走一次,所以要先用floyd进行传递闭包,然后用二分 #include< ...
- python 学习笔记 9 -- Python强大的自省简析
1. 什么是自省? 自省就是自我评价.自我反省.自我批评.自我调控和自我教育,是孔子提出的一种自我道德修养的方法.他说:“见贤思齐焉,见不贤而内自省也.”(<论语·里仁>)当然,我们今天不 ...
- view里文书删除时报错的解决案
- Moutain Tai notes
rest 40shaxian 18 drumsticks 13零食 11.5+21车费5门票62大衣10面14 > 194.5 notes :::: 岗位职责:1.基于Drupal系统的产品功 ...
- #pragma anon_unions, #pragma no_anon_unions
#pragma anon_unions, #pragma no_anon_unions 这些编译指示启用和禁用对匿名结构和联合的支持. 缺省设置 缺省值为 #pragma no_anon_unions ...
- 从零开始学 iOS 开发的15条建议
事情困难是事实,再困难的事还是要每天努力去做是更大的事实. 因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发.跟粉丝群的朋友交 ...