php如何把表单内容提交到数据库


Posted in PHP onJuly 08, 2019

一般朋友们逛一些网站的时候,想使用网站或者看到更多网站里的内容,网站会要求用户进行新用户的注册,网站会把新用户的注册信息存入数据库中,需要的时候再进行提取。

这样网站就会首先创建自己的数据库和对应的表,我们这里使用php创建一个简单的数据库和表,使用phpMyAdmin来创建MySql数据库和表。例如创建一个test数据库,其示例的代码如下所示:

<?php
// 创建连接
$conn = new mysqli("localhost", "uesename", "password");
// 检测连接
if ($conn->connect_error)
{ 
 die("连接失败: " . $conn->connect_error);}
 // 创建数据库
 $sql = "CREATE DATABASE test";
  if ($conn->query($sql) === TRUE)
  { 
  echo "数据库创建成功";
  } else { 
  echo "Error creating database: " . $conn->error;
  }
 $conn->close();
?>

然后使用CREATE TABLE 语句用于创建 MySQL 表,设置如下几个字段。

  • id : 它是唯一的,类型为 int ,并选择主键。
  • uesrname : 用户名,类型为 varchar, 长度为30。
  • password : 密码,类型为 varchar, 长度为30。
  • confirm:确认密码,类型为 varchar, 长度为30。
  • email : 邮箱,类型为 varchar, 长度为30。

接着使用sql语句来创建数据库表,其代码显示如下:

<?php
 // 创建连接
 $conn = new mysqli("localhost", "uesename", "password","test");
 // 检测连接
 if ($conn->connect_error)
 { 
 die("连接失败: " . $conn->connect_error);
 }
 // 使用 sql 创建数据表
 $sql = "CREATE TABLE login (
 id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 username VARCHAR(30) NOT NULL,
 password VARCHAR(30) NOT NULL,
 confirm VARCHAR(30) NOT NULL,
 email VARCHAR(30) NOT NULL,
 )ENGINE=InnoDB DEFAULT CHARSET=utf8 ";
 if ($conn->query($sql) === TRUE)
 { 
 echo "Table MyGuests created successfully";
 } else { 
 echo "创建数据表错误: " . $conn->error;
 }
 $conn->close();
?>

上面我们创建好了数据库和表,下面建立一个简单的表单注册的前端页面,这里的表单页面很简单,用户名,密码,密码确认,注册邮箱等等几个简单的文本框。其代码如下:

<!DOCTYPE html>
<html>
<head>
 <title>用户注册页面</title>
 <meta charset="UTF-8"/>
 <style type="text/css">
 *{margin:0px;padding:0px;}
 ul{
  width:400px;
  list-style:none;
  margin:50px auto;
 }
 li{
  padding:12px;
  position:relative;
 }
 label{
  width:80px;
  display:inline-block;
  float:left;
  line-height:30px;
 }
 input[type='text'],input[type='password']{
  height:30px;
 }
 img{
  margin-left:10px;
 }
 input[type="submit"]{
  margin-left:80px;
  padding:5px 10px;
 }
 </style>
</head>
<body>
<form action="zhuce.php" method="post">
 <ul>
 <li>
  <label>用户名:</label>
  <input type="text" name="username" placeholder="请输入注册账号"/>
 </li>
 <li>
  <label>密 码:</label>
  <input type="password" name="password" placeholder="请输入密码" />
 </li>
 <li>
  <label>确认密码:</label>
  <input type="password" name="confirm" placeholder="请再次输入密码" />
 </li>
 <li>
  <label>邮 箱:</label>
  <input type="text" name="email" placeholder="请输入邮箱"/>
 </li>
 <li>
  <input type="submit" value="注册" />
 </li>
 </ul>
</form>
</body>
</html>

接下来就需要使用php代码来实现新用户提交的信息给提交到数据库,使用POST方式进行值的传递和获取。

首先需要连接前面创建完成的数据库和表,因为新用户注册的用户名,密码等信息需要保存到表中的对应字段里面。存入数据库表之前先对提交的数据进行一些判断验证,比如不符合要求的用户名,邮箱等需要有过滤和错误的提示,还要防止用户名如果被其他用户注册,则需要提示您将不能再使用这个用户名,这是先读取数据库已经存在的用户名,然后进行判断。

简单来说就是将表单提交的数据都存入变量,然后进行密码和验证码的判断,都正确以后,将用户信息存入数据库并将数据库存放用户信息的表中所有数据提取打印出来。说白了,后半句就是数据存入和提取。其具体的代码如下所示:

<?php
session_start();
header("Content-type:text/html;charset=utf-8");
$link = mysqli_connect('localhost','root','root','test');
if (!$link) {
 die("连接失败:".mysqli_connect_error());
}
$username = $_POST['username'];
$password = $_POST['password'];
$confirm = $_POST['confirm'];
$email = $_POST['email'];
if($username == "" || $password == "" || $confirm == "" || $email == "")
{
 echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>";
} elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) {
 echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>";
 //判断用户名长度
}elseif(strlen($password) < 5){
 echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>";
 //判断密码长度
}elseif($password != $confirm) {
 echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>";
 //检测两次输入密码是否相同
} elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) {
 echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>";
 //判断邮箱格式是否合法
} elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){
 echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>";
} else{
 $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')";
 //插入数据库
 if(!(mysqli_query($link,$sql))){
 echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>";
 }else{
 echo "<script>alert('注册成功!)</script>";
 }
}
?>

朋友们可以自己动手进行各种操作和尝试,熟练以后就会对表单操作,数据库的操作有一定深入的理解,为以后的开发打下良好的基础。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
自定义PHP分页函数
Oct 09 PHP
header跳转和include包含问题详解
Sep 08 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
Java中final关键字详解
Aug 10 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
PHP微信支付开发实例
Jun 22 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
php简单截取字符串代码示例
Oct 19 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 #PHP
php实现获取近几日、月时间示例
Jul 06 #PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 #PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 #PHP
php中isset与empty函数的困惑与用法分析
Jul 05 #PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 #PHP
php无限极分类实现方法分析
Jul 04 #PHP
You might like
文件上传程序的全部源码
2006/10/09 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
js实现1,2,3,5数字按照概率生成
2017/09/12 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
js实现缓动动画
2020/11/25 Javascript
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
数组越界问题
2015/10/21 面试题
精通CAD能手自荐书
2014/01/31 职场文书
教学改革实施方案
2014/03/31 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
课题研究阶段性总结
2015/08/13 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python