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采集相关教程之一 CURL函数库
Feb 15 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
php实现的Captcha验证码类实例
Sep 22 PHP
php基础教程
Aug 26 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 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数字格式化
2006/12/06 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php explode函数实例代码
2012/02/27 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
js玩一玩WSH吧
2007/02/23 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
babel基本使用详解
2017/02/17 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
微信小程序表单验证form提交错误提示效果
2020/06/19 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
英文翻译的自我评价语句
2013/10/04 职场文书
卫生安全检查制度
2014/02/04 职场文书
商场主管竞聘书
2014/03/31 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书