一个注册、登陆系统的实现


本文git源码链接https://github.com/x-Long/Web

最终站点文件如图


注册及登录页面实现

首先新建index.php文件,因为在Apache配置文件默认打开文件顺序中index.php优先级最高,这点读者可在Apache安装目录中打开php.ini找到相关配置项验证,并且可以进行必要修改。

下面我们开始静态注册及登录窗口的实现:我们可以先为整个窗口加上一张背景图片,以突出整个页面的层次感,在这里可以参考下文代码,需要强调的是,我们所找到的图片可能尺寸并不能完全契合窗口,所以我们需要在相关样式文件中加入background-size:cover;这行代码,使背景图片可以完全自适应窗口。

关于注册框与登陆框我们可以在form表单中放入一对table标签以完成主体布局,这种布局在表单页面实现中相对于传统div布局非常便捷实用,详细实现过程参照下文代码。在form表单中我们需要分别指定提交页面,并采用post提交方法,相关post与get方法提交的区别相对较为简单不在赘述,读者可以查阅相关资料自行了解。

另外,为了使读者对实现的过程一目了然,本站点文件并没有使用样式与html分离的写法,而是在头部嵌入。但在具体项目中还是希望大家本着分离的原则。

下面是布局部分代码(样式代码请于git源码站查看):

实现效果如图所示


链接数据库文件的建立

前台注册页面表单提交过来的内容我们需要进行写入数据库操作,登陆时同样需要将填入内容与从数据库中取出的字段记录进行对比。可以说凡是与后台有动态交互的页面,我们都必要的需要链接数据库。所以我们可以建立一个connect.php的页面,然后在需要的页面通过include()或require()将其引入。

include()与require()两者的用途是一样的,都是将文件引入,他们最根本的区别在于错误处理的方式不一样。 require一个文件存在错误的话,那么程序就会中断执行了,并显示fatalerror ,include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个warning。 关于两者的选择,我这里建议在一般情况下可以选择include()。特殊情况需要综合考虑。

链接数据库文件的代码如图


注册与登录验证页面

在数据库链接部分知识已经提到过,在完成前台的表单填写后需要将其提交给后台进行写入数据库或者对比判断的相关操作。验证页面主要相关的知识为数据库的增删改查,如对此部分知识读者不是太了解则需要先查阅掌握此部分知识。

在注册验证页面,我们需要将前台提交过来的写入数据库,在这之前我们需要规划好相关的数据库,表,字段。然后我们可以将与数据库增删改查的对应sql语句赋给变量并传递给mysql_query(),mysql_query()是php操作数据库中必要最常用的语句之一。另外相关的验证还需要javascript/jquery的配合,因为站点与js验证相关的内容相对较少,所以也做嵌入页面处理,具体读者可以参照站点源码。

关于登录验证页面的实现思想可以参考注册验证,此页面主要涉及的操作为将登录页面传来的username与passwod与数据库中已有的表记录对比,代码见下文图。在登录验证页面还涉及到一个非常重要的知识点:session会话管理。这部分内容在后文讲解。

针对本教程,我们可以为其规划6个对应字段,分别为:id,username,password,email,phonenum,name。读者可以根据具体项目添加或删除字段。在这六个字段中,我这里着重强调id字段,在具体项目中,我们需要为必要每张表添加id字段,并设为主键自增,因为本站点只用到了一张表,但是在后期项目中必将涉及到多张表的关联,这样我们在为待关联表写入数据是即可将id值传给uid(这里不做强制规定)字段,以完成表之间的关联。

注册登录验证页面代码如图


用户中心与相关验证页面

这部分主要为从数据库中取出用户个人信息,并放入个人信息的静态页面中,这里出于代码分离的原则,我用了两个页面来完成,分别为my.php与home.php。在my.php中主要完成用户信息的查询,并将其赋给对应的session全局数组变量,设置好跳转链接后给home.php使用。

session会话管理在上文已提到过一次,session现在主要被我们运用在登录验证上,与它对应的还有cookie,但是出于安全等因素(session存在服务器端,而cookie存在客户端)cookie并不常用,用session设置的数组变量可以用在站点目录相对路径的任何文件中,这也方便了实现个人信息页面时代码的分离,具体读者可以参照代码。这里还需要注意的是session的必须在文件的开头,用session_start()语句,并且一个文件中只能出现一次,要不会报错,这一点可能许多书中不会提及,但是读者需要注意,尤其是咋html中嵌入php代码时,比如home.php文件。因为home.php主要为静态实现的相关代码,与上文实现过程相似,这里不再贴出。

my.php主要代码如图


注销退出页面

上文提到session主要被用来做登录验证,那么本页面(loginout.php)主要功能就是删除之前设置的session全局数组变量,以实现退出并跳转至登录页面重新登陆。

loginout.php部分代码

个人信息页面如图所示


以上为注册登录页面全部内容,还有一些知识点如正则可能没有提到,后期继续完善。

西安理工大学
电子152
梁小龙

Thanks for reading.

一个注册、登陆系统的实现相关推荐

  1. c mysql注册登录_C语言实现注册登录系统

    本文实例为大家分享了C语言实现注册登录系统的具体代码,供大家参考,具体内容如下 /* Note:Your choice is C IDE */ #include "stdio.h" ...

  2. python 搭建登陆系统,用Python连接操作MySQL数据库,做一个简单的用户登录注册系统...

    我们可以很容易地用Python实现一个用户登录系统,相信这即使是对编程新手来说也是小菜一碟. 作为Python的小萌新,今天我想记录下来的是如何实现一个连接了MySQL数据库的用户登录注册系统,它的效 ...

  3. django完成一个可重用注册登录系统

    目录 可重用注册登录系统 项目开始前的思考 搭建项目环境 设计数据库模型 数据库模型文件 设置数据库后端 注册app 生成迁移脚本并写入数据库 测试是否成功 数据库模型后台管理 路由与视图函数框架构建 ...

  4. 用VUE实现一个具有登陆、注册等功能的网站【详细步骤】

    用VUE实现一个具有登陆.注册等功能的网站[详细步骤] 用VUE实现一个具有登陆.注册等功能的网站[详细步骤] 一.主要功能 二.实现思路 1.页面设计 2.功能设计 3.重点和难点 三.代码实现 1 ...

  5. 用Python基础创建一个简单的注册登录系统

    在学完Python基础后,是不是有一点想法去做一点好玩的程序呢?如果想可以看看这个注册登录系统,会带给你一些思路. 大家都对登录注册系统司空见惯了吧,我们周围的许多东西都需要登录注册系统,例如很受大众 ...

  6. 现欲设计一个电子商务网站系统,该系统需要记录如下信息,其中下划线为标识信息: •客户有客户名、联系电话、配送地址; •商品有商品名、类别; •店铺有店铺名、信誉度、注册地址; •同一商品会在不

    题目要求 现欲设计一个电子商务网站系统,该系统需要记录如下信息,其中下划线为标识信息: 客户有客户名.联系电话.配送地址: 商品有商品名.类别: 店铺有店铺名.信誉度.注册地址: 同一商品会在不同的店 ...

  7. 我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展

    声明:部分代码参考与网络,如有侵权请联系博主删除,博主本着学习的态度和大家一起成长. 项目github地址:https://github.com/sunmenglei/sunmengleiwangsh ...

  8. php写的注册登录系统吗,php注册登录系统简化版_php技巧

    登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若哪里有误,请见谅. 所用语言:php 数据库 :mysql 本次实现功能: 1.用户注册 2.用户登录 主要文件: 完整代码 ...

  9. Django 可重用注册登录系统

    文章目录 一.可重用注册登录系统 1.项目开始前的思考 2.搭建项目环境 3.设计数据库模型 1)数据库模型文件 2)设置数据库后端 3)注册app 4)生成迁移脚本并写入数据库 5)测试是否成功 6 ...

最新文章

  1. [转载]python optionparser1
  2. 如何做好Code Review:思考、方法和实践
  3. Pycharm 配置 Anaconda中解释器
  4. mycat 10 分钟轻松入门
  5. Node.js缓冲模块Buffer
  6. 数据库-MySQL-SQL语句
  7. 查看SQL执行计划的方法及优劣
  8. java空白页,[求教]JSP页面显示为空白页,请高手赐教!
  9. jquery 扩展ajax请求,jQuery如何管理、扩展AJAX请求
  10. the jacobian matrix and the gradient matrix
  11. 【Hadoop Summit Tokyo 2016】中型组织的数据基础设施架构:收集、存储和分析的技巧...
  12. mathtype 公式字体
  13. 多项目公共代码库该如何管理
  14. 东北大学数理统计 2019-2020 年试题答案
  15. 详解apply的用处
  16. 【项目管理案例】第九期:如何做好项目整合管理
  17. 用什么工具可以免费下载720云VR全景图
  18. 很多程序员都没搞明白的时间与时区知识 - 24时区/GMT/UTC/DST/CST/ISO8601
  19. WIFI6:WLAN 组播转单播原理与测试
  20. 2020 最好的Linux网络监控工具(翻译)

热门文章

  1. FPGA实现ADC采样芯片ADS8688的采样
  2. Java项目:医院管理系统(java+Springboot+ssm+mysql+maven)
  3. Android深度开发第8章随笔感悟
  4. SDUT 来淄博旅游
  5. JavaSE 接口与内部类
  6. python mask_python_mask_array的用法
  7. 安全大讲堂 | 陈屹力:未来云原生安全能力建设将强调体系化的安全防护
  8. win7做网站服务器数据库,win7做网站服务器
  9. IntellJ IDEA 基础之 常用快捷键的简单整理
  10. 富士色彩配方咖啡馆在上海开业;万代南梦宫娱乐加入玩游戏,救地球联盟 | 全球TMT...