原创 请勿转载

PHP 登录注册页面

  • 前言
  • 一、配置数据库文件
  • 二、登录注册代码段
    • 1.登录
    • 2.注册
    • 3.主页
    • 4.注销
  • 总结

前言

php简单的登录页面与注册页面(有邮箱手机号验证)
源码在github上:https://github.com/XYFAE/php-


一、配置数据库文件

导入数据库信息

<?php
//数据库信息
define('DB_HOST','localhost');//Mysql数据库服务器
define('DB_USER','root');//Mysql数据库用户名
define('DB_PASSWORD','666');//Mysql数据库密码
define('DB_DATABASE','userlogin');//Mysql数据库名
define('DB_PORT','3306');//Mysql数据库端口
?>

配置数据库使用函数

<?phpfunction Connect($host=DB_HOST,$user=DB_USER,$password=DB_PASSWORD,$database=DB_DATABASE,$port=DB_PORT){$link = @mysqli_connect($host, $user, $password, $database, $port);if(mysqli_connect_errno()){exit(mysqli_connect_error());}mysqli_set_charset($link,'utf8');return $link;
}
function Execute($link,$query){$result=mysqli_query($link,$query);if(mysqli_errno($link)){exit(mysqli_error($link));}return $result;
}
?>

二、登录注册代码段

1.登录

登录的代码段(login.php):

<?php
require_once 'dbconfig/mysql_PDO.php'; //导入上面写好的配置文件
require_once 'dbconfig/mysql.php';
$conn=Connect();
header('Content-type:text/html; charset=utf-8');
session_start();if(isset($_POST['login'])){$username = trim($_POST['username']); $password = trim($_POST['password']);if(($username == '') || ($password == '')){echo "用户名或密码不能为空,3秒后跳转到登录页面,请重新登录";header('refresh:3;url=login.html');exit;}$password = md5($password);$sql ="select * from users where users = '{$username}' and pass = '{$password}'";$exec = Execute($conn,$sql);//$result = mysqli_fetch_array($exec);if (mysqli_num_rows($exec) !== 1) {echo "<script>alert('账号或密码错误');</script>";header('refresh:0;url=login.html');exit;}$_SESSION['username'] = $username;$_SESSION['islogin'] = 1;echo "登录成功,3秒后跳转到个人中心,请稍等";header('refresh:3;url=index.php');exit;//$_SESSION['id'] = $result['id'];if ($_POST['remember'] == "yes") {setcookie('username', $username, time() + 7 * 24 * 60 * 60);setcookie('code', md5($username . md5($password)), time() + 7 * 24 * 60 * 60);}  else {// 没有勾选则删除Cookiesetcookie('username', '', time() - 999);setcookie('code', '', time() - 999);} header('location:index.php');}

2.注册

注册代码段(register.php):

<?php
require_once 'dbconfig/mysql_PDO.php'; //导入上面写好的配置文件
require_once 'dbconfig/mysql.php';
$conn = Connect();
header('Content-type:text/html; charset=utf-8');
session_start();if (isset($_POST['reg'])) {$username = $_POST['username'];$password = $_POST['password'];$rpassword = $_POST['rpassword'];$email = $_POST['email'];$phone = $_POST['phonenumber'];// 判断输入内容是否为空if (($username == '') || ($password == '') || ($rpassword == '') || ($phone == '')) {echo "<script>alert('用户名、密码、邮箱、手机号、不能为空,请重新注册')</script>";header('refresh:1;url=register.html');exit;}//判断邮件是否合法&是否被注册if (preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $_POST['email'])) {$sql = "select * from users where email ='{$email}'";$exec = Execute($conn, $sql);if (mysqli_num_rows($exec) > 0) {echo "<script>alert('邮箱已被注册');</script>";header('refresh:1;url=register.html');exit;}} else {echo "<script>alert('邮箱格式不正确,请重新注册')</script>";header('refresh:1;url=register.html');exit;}//判断手机号是否合法&是否被注册if (preg_match("/^1[34578]\d{9}$/", $phone)) {$sql = "select * from users where phone='{$phone}'";$exec = Execute($conn, $sql);if (mysqli_num_rows($exec) > 0) {echo "<script>alert('手机号已被注册');</script>";header('refresh:1;url=register.html');exit;}} else {echo "<script>alert('手机号格式不正确,请重新注册')</script>";header('refresh:1;url=register.html');exit;}//验证两次密码是否一致if ($password != $rpassword) {echo "<script>alert('两次输入的密码不一致'</script>";header('refresh:1;url=register.html');exit;}//手机号验证function checkPhoneNumber($phone_number){//@2017-11-25 14:25:45 https://zhidao.baidu.com/question/1822455991691849548.html//中国联通号码:130、131、132、145(无线上网卡)、155、156、185(iPhone5上市后开放)、186、176(4G号段)、175(2015年9月10日正式启用,暂只对北京、上海和广东投放办理),166,146//中国移动号码:134、135、136、137、138、139、147(无线上网卡)、148、150、151、152、157、158、159、178、182、183、184、187、188、198//中国电信号码:133、153、180、181、189、177、173、149、199$g = "/^1[34578]\d{9}$/";$g2 = "/^19[89]\d{8}$/";$g3 = "/^166\d{8}$/";if(preg_match($g, $phone_number)){return true;}else  if(preg_match($g2, $phone_number)){return true;}else if(preg_match($g3, $phone_number)){return true;}return false;}if(checkPhoneNumber($phone)!==true){echo "<script>alert('手机号码格式不正确,请重新注册')</script>";header('refresh:1;url=register.html');}// 判断用户名是否存在$sql = "select * from users where users='{$username}'";$exec = Execute($conn, $sql);$pass = mysqli_fetch_row($exec);if ($pass) {echo "<srcipt>alert('用户已存在')</script>";header('refresh:1;url=register.html');exit;}// 创建用户$password = md5($password);$sql = "insert into users(users,pass,email,phone) values('{$username}','{$password}','{$email}','{$phone}')";$exec = Execute($conn, $sql);if ($exec) {echo "<script>alert('注册成功')</script>";header('refresh:1;url=index.php');$_SESSION['username'] = $username;$_SESSION['islogin'] = 1;exit;}else{echo "?";}}

3.主页

主页代码段(index.php)

<?php
header('Content-type:text/html; charset=utf-8');
// 开启Session
session_start();// 首先判断Cookie是否有记住了用户信息
if (isset($_COOKIE['username'])) {# 若记住了用户信息,则直接传给Session$_SESSION['username'] = $_COOKIE['username'];   $_SESSION['islogin'] = 1;
}
if (isset($_SESSION['islogin'])) {// 若已经登录echo "你好! " . $_SESSION['username'] . ' ,欢迎来到个人中心!<br>';echo "<a href='logout.php'>注销</a>";
} else {// 若没有登录echo "您还没有登录,请<a href='login.html'>登录</a>";
}

4.注销

<?php
header('Content-type:text/html; charset=utf-8');
// 注销后的操作
session_start();
// 清除Session
$username = $_SESSION['username']; //用于后面的提示信息
$_SESSION = array();
session_destroy();// 清除Cookie
setcookie('username', '', time() - 999);
setcookie('code', '', time() - 999);// 提示信息
echo "欢迎下次光临, " . $username . '<br>';
echo "<a href='login.html'>重新登录</a>";

总结

如果代码有问题 欢迎评论 ,所有代码都在github上

PHP 登录注册附带邮箱手机号验证相关推荐

  1. SSM登录注册和邮箱激活

    1:首先是html1的样式 <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  2. struts2的登录注册 验证码 邮箱验证_Python+tkinter模拟京东登录时拖动图片式验证码...

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

  3. 使用 Java Mail 实现注册时邮箱激活验证功能

    最近在做毕设中实现注册功能时使用到了邮箱激活验证,在此总结下. 简介 JavaMail 是提供给开发者处理电子邮件相关的编程接口,它是 SUN 发布的用来处理 email 的 API ,它可以方便地执 ...

  4. java发送QQ邮箱验证码实现登录注册、邮箱验证码防刷校验

    文章目录 一:前台功能实现 1.1 页面编写 1.2 发送验证码--sendEmailCode 1.2.1 远程调用发送接口 1.2.1 接口防刷校验--60s内只能发送一次 二:获取QQ邮箱授权码 ...

  5. 尚医通项目101-123:前台用户系统、登录注册、邮箱登录

    开始时间:2022-05-30 课程链接:课程链接:[尚医通] 前端页面 需要完成医院等级.地区查询.医院列表.医院名称模糊查询等功能 按等级查询 按地区查询 模糊查询 并能跳转到具体详情页面 跳转到 ...

  6. 前端JS邮箱手机号验证

    <script type="text/javascript">//手机号格式验证var checkPhone = function (rule, value, call ...

  7. React + nodemailer + koa-jwt 实现登录注册邮箱验证

    完整源码在github,下载server和react部分 最近在做一个JSPatch后台管理系统.起初只是自己内部用,后来买了阿里云的免费服务器,用docker+jenkins完成了一个自动化部署,于 ...

  8. 登录邮箱怎么填,企业个人邮箱登录注册

    大学毕业后就和室友们各奔前程了,基本没怎么聚会,今年放假就在母校所在的城市和其他五个室友相约聚会,一起吃顿饭. 期间,我们几人谈到各自的工作状况,几人无一例外都说是越来越好,明年准备升职加薪了,越说越 ...

  9. 最新注册gmail邮箱收不到验证码解决方法

    最新注册gmail邮箱收不到验证码解决方法 最近因为要注册ChatGPT所以需要准备一个邮箱,我个人是非常喜欢使用gmail邮箱的,非常方便,注册一个gmail邮箱就相当于是注册了一整个谷歌生态,一个 ...

  10. PHP中手机注册、邮箱注册的功能实现

    通常在使用手机号注册时需要发送短信验证码,在修改密码等敏感操作时也需要验证手机号发送短信验证码.在项目代码中发送短信,通常要调用第三方短信商的短信发送接口. 可以将接口地址和appkey放在配置文件中 ...

最新文章

  1. CentOS 8 安装图解
  2. 30万字,“保姆级”可视化视觉设计优质学习攻略推荐
  3. 测试无线节能信标与主控器之间的控制功能
  4. Python爬虫(十二)_BeautifulSoup4 解析器
  5. 使用ABAP事务码STAD分析Asynchronous RFC call性能
  6. 昆西·拉森的净资产是多少?
  7. Spark家族:Win10系统下搭建Scala开发环境
  8. 数智德州,创新未来 | 智慧城市赛题上线山东大赛德州分赛场
  9. Java:JDBC(Mysql)
  10. WPF 重定向DLL stdout
  11. Mysql语句字符串拼接
  12. win10设置电池养护模式
  13. c语言 电阻器的分类,电阻器的分类与特点
  14. 从VISTA到WIN 7 揭秘全球软件开发模式的变迁
  15. 3D深度传感ToF技术的基本原理解析
  16. 音视频开发--音视频基础
  17. scrapy shell 调试报错TypeError: module.__init__() takes at most 2 arguments (3 g iven)
  18. Thread类的interrupt(),interrupted(),isInterrupted()
  19. Java 儒略历和公历的换算
  20. 网站域名在微信端被封禁了怎么办?这样几步就能解封!

热门文章

  1. 如何给word文档添加注释
  2. java爬虫爬取天眼查_Java爬虫爬取京东商品信息
  3. 截止失真放大电路_【电子干货377】晶体三极管的一些常见应用电路
  4. 微信小程序内置在线客服
  5. GATK-HaplotypeCaller 变异检测详解
  6. 简洁好用的数据库表结构文档生成工具screw
  7. 字节二面、三面面经及内推
  8. coreldraw的线条怎么变成圆头_CDR将照片变线条的三种方法
  9. 气功修炼常识之:调息、丹田呼吸、脐呼吸、体呼吸
  10. 移动跨平台框架ReactNative文本组件Text【06】