初学php做了一些比较常见且有用的页面,放在上面记录一下咯
我是用了bootstrap框架里面的模态框做注册登陆页面,这样页面比较美观
页面效果:


注册成功条件/功能:
1)用户名不能冲突

2)两次密码必须相同

3)用户注册数据添加进数据库
4)注册/登录成功之后,用户自动登录

HTML代码:

    <link rel="stylesheet" href="css/bootstrap.css"><li class="toggle"><a data-toggle="modal" href="#loginer">登录</a></li><li class="toggle"><a data-toggle="modal" href="#register">注册</a></li><li class="toggle hidden"><a id="nicheng" href="##"></a></li><li class="toggle hidden"><a id="logout" href="##">注销</a></li>
//登录模态框
<div id="loginer" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel1"aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button><h4 class="modal-title">请登录</h4></div><form id="form_login" class="form-horizontal"><div class="modal-body"><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="zh1">用户名:</label><div class="col-sm-9 require"><input type="text" class="form-control" name="username" id="zh1"pattern="\w{6,10}" required></div></div><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="pw1">密码:</label><div class="col-sm-9 require"><input type="password" pattern="\w{6,10}" class="form-control" name="pwd" id="pw1"required></div></div><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="yzm">验证码:</label><div class="col-sm-5 require"><input type="text" pattern="\d{4}" class="form-control" name="yzm" id="yzm"required></div><div class="col-sm-4"><img src="php/idcode.php" alt=""></div></div><div class="form-group has-feedback"><label id="info" class="col-sm-4 control-label pull-left"></label></div></div><div class="modal-footer"><button type="submit" class="btn btn-primary">登录</button><button type="button" class="btn btn-default" data-dismiss="modal">关闭</button></div></form></div></div>
</div>
//注册模态框
<div id="register" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabe2"aria-hidden="true"><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button><h4 class="modal-title">请注册</h4></div><form id="form_regist" class="form-horizontal"><div class="modal-body"><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="zh2">用户名:</label><div class="col-sm-9 require"><input type="text" class="form-control" name="username" id="zh2"pattern="\w{6,10}" required></div></div><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="pw2">密码:</label><div class="col-sm-9 require"><input type="password" pattern="\w{6,10}" class="form-control" name="pwd" id="pw2"></div></div><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="pw3">确认密码:</label><div class="col-sm-9 require"><input type="password" pattern="\w{6,10}" class="form-control" name="repwd" id="pw3"></div></div><div class="form-group has-feedback"><label class="col-sm-3 control-label" for="lc">昵称:</label><div class="col-sm-9 require"><input type="text" pattern="\S{2,10}" class="form-control" name="nc" id="lc"></div></div><div class="form-group has-feedback"><label id="wanner" class="col-sm-4 control-label pull-left"></label></div></div><div class="modal-footer"><button type="submit" class="btn btn-primary">注册</button><button type="button" class="btn btn-default" data-dismiss="modal">关闭</button></div></form></div></div>
</div>

JS代码:

<script src="js/jquery-2.1.3.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>function toggle(){$.getJSON("php/get.php",function (res) {//获取当前用户是否登录if(res['flag']){//用户已经登录,显示昵称和注销选项$('li.toggle').toggleClass('hidden');$('#nicheng').html(res['nc'])}});}$('#form_login').submit(function (e) {/*登录*/e.preventDefault();/*阻止表单默认事件,页面全局刷新*/var data=$('#form_login').serialize();/*将表单里的数据包装起来*/$.getJSON('php/login.php',data,function (res) {/*data:将表单里的数据传给php,回调函数接受php返回来的值*/if(res==3){//用户名、密码、验证码都输入正确toggle();/*修改首页选项菜单*/$('#loginer').modal('hide');/*关闭模态框*/}else if(res==2){$('#info').html('用户名或密码有误')}else {$('#info').html('验证码有误')}})});$('#logout').click(function () {confirm('确定要注销?');$.getJSON('php/logout.php',function (res) {if(res)toggle();})})$('#form_regist').submit(function (e) {e.preventDefault();var data=$('#form_regist').serialize();$.getJSON('php/regist.php',data,function (res) {if(res==3){toggle();$('#register').modal('hide');}else if (res==2) {$('#wanner').html('两次密码不一致,请重试!')}else if (res==1) {$('#wanner').html('用户名冲突,请重试!')}})});

connect.php(连接数据库):

<?php
$link=new PDO("mysql:host=localhost;port=3306;dbname=db","root","");
$link->query("set names utf8");

get.php(判断登录状态):未登录显示登录注册选项,用户登陆后切换显示成昵称和注销选项

<?php
include_once ("connect.php");
session_start();/*开启会话*/
if (isset($_SESSION['username'])){/* 判断用户会话里用户名是否存在,即用户是否登录*/$json['nc']=$_SESSION['nc'];/*把昵称存起来,一会返回给首页*/$json['flag']=true;/*用户已经登录,标志flag为true*/
}else$json['flag']=false;/*用户已经登录,标志flag为true*/
echo json_encode($json);/*返回json*/

regist.php(注册):根据设置标志flag的值判断注册的三种状态

<?php
include_once ("connect.php");
$user=$_GET['username'];//获取表单提交的数据
$pwd=$_GET['pwd'];
$repwd=$_GET['repwd'];
$nc=$_GET['nc'];
$row=$link->query("select * from `user` where username='$user'");
/*查询数据库中是否存在用户名相同的用户*/
if ($row->rowCount()){$flag=1;/*存在用户名相同,即用户名冲突*/
}else if ($pwd!=$repwd){$flag=2;/*两次密码不相同*/
}else{/*插入数据进数据库*/$row=$link->exec("insert into`user`( `username`,  `pwd`,`nc`) values ('$user','$pwd','$nc')");session_start();/*打开会话,将用户名和昵称存起来*/$_SESSION['username']=$user;$_SESSION['nc']=$nc;$flag=3;/*注册成功标志*/
}
echo $flag;

login.php(登录):根据标志flag判断登录操作是否成功或哪里出错

<?php
include_once ("connect.php");
session_start();/*开启会话*/
$user=$_GET['username'];/*获取登录表单提交过来的数据*/
$pwd=$_GET['pwd'];
$yzm=$_GET['yzm'];
if($yzm==$_SESSION['vCode']){/*当用户输入的验证码和图片验证码相同时*/$result=$link->query("select * from `user` where username='$user' and pwd='$pwd'");$link = null;$row = $result->fetch();/*读取从数据库获取的数据*/if ($row) {/*如果数据存在,即用户登录成功*/$_SESSION['username'] = $row['username'];/*将用户名和昵称存在服务器,可以多个页面使用*/$_SESSION['nc'] = $row['nc'];$flag=3;}else{/*用户名或密码错误*/$flag=2;}
}else{/*验证码输入错误*/$flag=1;
}
echo $flag;

logout.php(注销登录):直接销毁会话变量,然后get.php里面获取不到username和nc即判断用户已注销

<?php
session_start();
unset($_SESSION['username']);//销毁用户名
unset($_SESSION['nc']);//销毁昵称
echo json_encode(true);//返回结果

登录页面的自动生成验证码代码,在我的另一篇文里
https://www.cnblogs.com/xyyl/p/10901100.html

转载于:https://www.cnblogs.com/xyyl/p/10936788.html

PHP实现用户登录注册功能相关推荐

  1. java实现用户登录注册功能(用集合框架来实现)

    需求:实现用户登录注册功能(用集合框架来实现) 分析: A:需求的类和接口 1.用户类 UserBean 2.用户操作方法接口和实现类 UserDao UserDaoImpl 3.测试类 UserTe ...

  2. java wed登录面 代码_JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)...

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  3. php注册登录描述,基于PHP实现用户登录注册功能的详细教程

    教程前先给大家看看小编的实现成果吧! 图1: 图2: 图3: 教程: 实现这个功能我们需要五个php文件: login.php (登录界面,如图2) 登录 登录页面 用户名: required=&qu ...

  4. vue+node---使用element框架实现的前后台用户登录注册功能

    为了更进一步清晰地了解前台数据向后台提交的过程,更好地加强巩固前端开发学习,整理了基础的[前后台用户登录注册功能]实现代码.后台通过node.js开发,数据存储在sqlite中,前台vue+eleme ...

  5. MVC框架实现用户登录注册功能(连接数据库)

    目录 一.简单理解MVC框架 二.项目结构 三.项目源码 3.1 User 3.2 UserDao 3.3 RegisterDao 3.4 servletControll 3.5 servletCon ...

  6. 注册登录案例用MVC和mysql_用MVC模式实现简单用户登录注册功能

    Model2模式 Jsp+Servlet+JavaBean MVC:开发模式 M:Model 模型层 ----> JavaBean V:View 视图层 ----> Jsp C:Contr ...

  7. php登录注册连接数据库,利用PHP连接数据库——实现用户登录注册功能以及管理员对用户注...

    1.用户注册页面 页面效果: 代码如下: !DOCTYPE html html head meta charset="UTF-8" title/title script src=& ...

  8. java实现登录注册案例_Java基于IO版实现用户登录注册的案例

    下面小编就为大家带来一篇基于IO版的用户登录注册实例(Java).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 今天学的是用户登录注册功能. 4个包: itcast.c ...

  9. Codeigniter 用户登录注册模块

    Codeigniter 用户登录注册模块 以下皆是基于Codeigniter + MySQL 一.要实现用户登录注册功能,首先就要和MySQL数据库连接,操作流程如下: CI中贯彻MVC模型,即Mod ...

最新文章

  1. linux常见的命令
  2. linux tar包 追加
  3. linux中exit()和 _exit()说明
  4. SAP BPC最佳实践-如何配置和使用BPC的钻取Drill through
  5. Softmax 函数及其作用(含推导)
  6. Protobuf序列化的原理-protobuf的基本应用
  7. JavaFX UI控件教程(二十)之HTML Editor
  8. of方法:给集合一次性添加多个元素
  9. 搭建IBM z/OS 1.9(ADCD 1.9)
  10. Python面向对象程序设计中对象析构方法的调用时机
  11. java referencemap_Java中关于WeakReference和WeakHashMap的理解
  12. eTerm指令、民航指令大全、黑屏指令
  13. adb 如何提高到最高权限
  14. 福禄克FLUKE 9142/9143/9144/9170/9771/9173-A-P-256计量干井炉技术指标
  15. AOP名词解释Advice,Pointcut,Advisor,Joinpoint,Advised是什么?
  16. 在家月入5q+有手机就能赚米,推荐14个让你在家就能挣米的软件
  17. office xls Hyperlink
  18. Web网页尺寸(1)
  19. 计算机硬件 系统安装维护教程 01硬件篇-02:主板、内存、显卡、电源、硬盘(NGFF与nvme的关系)
  20. 图形学基础 | 基于物理的渲染理论(PBR)

热门文章

  1. 初始附着的流程(Call Flow of Initial Attach)
  2. Blastage未来科技无衬线英文字体
  3. android的webview控件载入网页显示速度慢的究极解决方案,【转】Android的WebView控件载入网页显示速度慢的究极解决方案...
  4. 如何使用微信收发企业邮箱邮件
  5. 西门子博图指令(定时器操作一)
  6. 云南农职《JavaScript交互式网页设计》 综合机试试卷①——实现购物车的结算
  7. css 输入框中文字水平居中,css水平居中,文字垂直居中
  8. 【得心应手_Typora】Typora安装教程
  9. kaliWEB渗透笔记
  10. iframe交互问题,浏览器存在差异