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.MVC的模板标签系统(五)
Sep 05 PHP
php中的时间处理
Oct 09 PHP
PHP伪造referer实例代码
Sep 20 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
分享一个php 的异常处理程序
Jun 22 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
PHP文件上传类实例详解
Apr 08 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 PHP
PHP7 windows支持
Mar 09 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php获取目录所有文件并将结果保存到数组(实例)
2013/10/25 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
js代码实现随机颜色的小方块
2015/07/30 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
2018/06/04 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
python Crypto模块的安装与使用方法
2017/12/21 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python中修改字符串的四种方法
2018/11/02 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
博士生入学考试推荐信
2013/11/17 职场文书
店长岗位职责
2013/11/21 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
党员转正大会主持词
2015/07/02 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
2019年工作总结范文
2019/05/21 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers