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用数组返回无限分类的列表数据的代码
Aug 08 PHP
PHP include_path设置技巧分享
Jul 03 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
Nov 09 PHP
PHP解决中文乱码
Apr 28 PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 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
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
Python多线程实例教程
2014/09/06 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python清空文件并替换内容的实例
2018/10/22 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
keras slice layer 层实现方式
2020/06/11 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
EJB的基本架构
2016/09/22 面试题
九年级语文教学反思
2014/02/04 职场文书
法制宣传标语集锦
2014/06/25 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
2015年班干部工作总结
2015/04/29 职场文书
车位出租协议书范本
2016/03/19 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书