站点在进行新用户注冊时,都会将用户的注冊信息存入数据库中,须要的时候再进行提取。今天写了一个简单的实例。

主要完毕下面几点功能:

(1)用户进行注冊,实现password反复确认,验证码校对功能。

(2)注冊成功后,将用户进行插入数据库中进行保存。

(3)将数据库表中数据进行提取,并打印。

1.注冊表单

在曾经的几篇博客中,分享过注冊及登录表单的代码。这次的代码,大致同样,仅仅是略有变化。仅作为实例探讨


表单页面实在没什么可讲的,除了格式对齐上加几个&nbsp(空格)。

<html>
<head>
<title>注冊页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head> <body>
<h1>新用户注冊</h1>
<hr> <form method="post" action="regsubmit.php">
<table>
<tr>
<td>请输入用户名:<input type="text" name="username"></td>
</tr> <tr>
<td>请输入密码:    <input type="password" name="password"></td>
</tr> <tr>
<td>请确认密码:    <input type="password" name="repassword"></td>
</tr> <tr>
<td>请输入验证码:<input type="text" name="vcode"><img src="regauth.php"></td>
</tr> <tr>
<td><input type="submit" value="注冊">    <input type="reset" value="重置"></td> </tr>
</table>
</form>
</body>
</html>

效果图:

2.验证码页面

<strong><span style="font-family:KaiTi_GB2312;font-size:18px;"><?php
header("content-type:text/html charset=utf-8"); //开启session
session_start(); //准备画布
$im=imagecreatetruecolor(50,25); //准备颜料
$black=imagecolorallocate($im,0,0,0);
$gray=imagecolorallocate($im,200,200,200); //背景填充
imagefill($im,0,0,$gray); //文字居中
$x=(50-10*4)/2;
$y=(25-5)/2+5; //加入�干扰素
for($i=0;$i<50;$i++){
imagesetpixel($im,mt_rand(0,50),mt_rand(0,25),$black);
} //准备文字
$arr=array_merge(range(0,9),range('a','z'),range('A','Z'));
shuffle($arr);
$str=implode(array_slice($arr,0,4)); //把$str放入session中,方便全部页面中调用
$_SESSION['vstr']=$str; $file="../fonts/simsun.ttc";
imagettftext($im,15,0,$x,$y,$black,$file,$str); //输出到浏览器上或保存起来
header("content-type:image/png");
imagepng($im); //关闭画布
imagedestory($im);
?></span></strong>

对于验证码功能,在曾经的一篇博客中,曾进行具体的解说过。这次代码也基本直接拿过来用了,唯一升级了一点就是加入�了干扰素,使得验证码没有干巴巴的四个字符在哪里。用到了imagesetpixel()函数,用于制造一些干扰点。具体用法请查看php手冊。

3.提交页面(数据提取页面)

<?php
header("content-type:text/html;charset=utf-8"); //开启session
session_start(); //将验证码与输入框中字符串都转为小写
$code=strtolower($_POST['vcode']);
$str=strtolower($_SESSION['vstr']); //接收表单传递的username与password
$name=$_POST['username'];
$pwd=$_POST['password'];
$repwd=$_POST['repassword']; //推断密码是否一致
if($pwd!=$repwd){
echo"<script>alert('两次密码输入不一致,请又一次输入');</script>";
echo"<script>location='regform.html'</script>";
}else{
//推断验证码是否正确
if($code!=$str){
echo "<script>alert('验证码输入错误,请又一次输入');</script>";
echo"<script>location='regform.html'</script>";
}else{
//通过php连接到mysql数据库
$conn=mysql_connect("localhost","",""); //选择数据库
mysql_select_db("test"); //设置client和连接字符集
mysql_query("set names utf8"); //通过php进行insert操作
$sqlinsert="insert into t1(username,password) values('{$name}','{$pwd}')"; //通过php进行select操作
$sqlselect="select * from t1 order by id"; //加入�用户信息到数据库
mysql_query($sqlinsert); //返回用户信息字符集
$result=mysql_query($sqlselect); echo "<h1>USER INFORMATION</h1>";
echo "<hr>";
echo "<table width='700px' border='1px'>";
//从结果中拿出一行
echo "<tr>";
echo "<th>ID</th><th>USERNAME</th><th>PASSWORD</th>";
echo "</tr>";
while($row=mysql_fetch_assoc($result)){
echo "<tr>";
//打印出$row这一行 echo "<td>{$row['id']}</td><td>{$row['username']}</td><td>{$row['password']}</td>"; echo "</tr>";
}
echo "</table>"; //释放连接资源
mysql_close($conn); }
}
?>

这个页面的主要作用完毕了最重要的几个功能。将表单提交的数据都存入变量,然后进行password和验证码的推断,都正确以后,将用户信息存入数据库并将数据库存放用户信息的表中全部数据提取打印出来。说白了,后半句就是数据存入和提取。代码中凝视写的相当的清楚了,基本每一个用处都涉及到了。但还是有些easy疏忽的点要指出来:<1>连接数据库的函数mysql_connect("localhost","username","password")。当中的用户名和password,根据大家自己的配置进行编写,我的数据库懒得加密所以就都为空了。

<2>数据插入数据库时

$sqlinsert="insert into t1(username,password) values('{$name}','{$pwd}')";

values('','')一定要加单引號(外层加了双引號,里面仅仅能用单引號),由于本身数据就是字符串,不能直接写个变量就完事了。假设不加单引號,$name和$pwd变量解析以后变成几个字符,不在引號内,谁认识谁呀。必定会报错。

<3>打印提取数据时,用到了while循环。里面的mysql_fetch_assoc()函数提取后返回的数组,下标就是数据所属字段名。相似功能的函数还有mysql_fetch_array(),mysql_fetch_row(),mysql_fetch_field()。详细使用请看需求,一般来说mysql_fetch_assoc()比較的经常使用。

效果图:



PHP+Mysql————表单数据插入数据库及数据提取的更多相关文章

  1. PHP实例 表单数据插入数据库及数据提取 用户注册验证

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  2. PHP+Mysql-表单数据插入数据库及数据提取完整过程

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  3. SSM获取表单数据插入数据库并返回插入记录的ID值

    以下指示插入操作以及获取记录值的ID的部分操作代码!!! 首先是简单的表单实现 <%@ page language="java" contentType="text ...

  4. MySQL基础(2) | 数据库、数据表

    MySQL基础(2) | 数据库.数据表 基本语法 数据库 #创建 CREATE DATABASE IF NOT EXISTS test_db_char DEFAULT CHARACTER SET u ...

  5. mysql命令行批量插入100条数据命令

    先介绍一个关键字的使用: delimiter 定好结束符为"$$",(定义的时候需要加上一个空格) 然后最后又定义为";", MYSQL的默认结束符为" ...

  6. 解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题

    https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id ...

  7. 关于Mysql表InnoDB下插入速度慢的解决方案

    最近做了 server_log 日志数据库记录,仅仅插入,由平台来获取数据进行分析的需求. 但是内部反馈插入数据库记录非常耗时,我就很纳闷了,一个insert怎么会 30-50ms 呢?按说应该在 0 ...

  8. MySQL 表的约束与数据库设计

    DQL 查询语句 排序 # 单列排序 * 只按某一个字段进行排序,单列排序 # 组合排序 * 同时对多个字段进行排序,如果第1个字段相等,则按照第2个字段排序,依次类推 * 语法: # 具体操作 * ...

  9. mysql去除严格模式/插入数据库遇到重复保证唯一

    1.找到mysql目录下的数据库的my.ini文件.找到sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION ...

随机推荐

  1. 做一个牛XX的身份证号验证类(支持15位和18位)

    原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...

  2. java泛型 之 入门(interface)

    一:泛型简单介绍: (1)所谓泛型,就是变量类型的參数化. 泛型是JDK1.5中一个最重要的特征.通过引入泛型,我们将获得编译时类型的安全和执行时更小的抛出ClassCastException的可能. ...

  3. RabbitMQ消息队列应用

    RabbitMQ消息队列应用 消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是 ...

  4. SVNKIT的SVNCommitClient的doMkDir的操作

    package com.repositoryclient.svnoptions; import java.io.File; import org.tmatesoft.svn.core.SVNCommi ...

  5. TextView中如何支持html标签,放置图片和动作标签

    TextView文本框和输入框几乎是一个正常的带界面的可交互的Android应用的基本组成 TextView主要作用是显示文本内容,其实还可以显示图片,当然有必要的话还可以为文本内容添加动作相应用户的 ...

  6. [置顶] hdu 4699 2个栈维护 or 伸展树

    hdu 4699  Editor 题意:对一个数列进行操作,光标位置后面插入一个权值为x的数,删除光标前的那个数,光标左移一位,光标右移一位,求到k位置的最大的前缀和.. 注意这里的k是在光标之前的, ...

  7. 牛逼的验证码,printf返回值

    牛逼的验证码,如下图, 结果是4321,为什么呢,主要是printf返回值问题?那么printf到底返回什么? 经查阅,printf的返回值是打印的字符个数,因此结果是4321就很明显了.

  8. Android之查看外部依赖jar的源代码_android private libralies does not allow modifications to source

    在Eclipse中开发android的应用程序时,有时想查看函数的内部实现.可是当在函数上点击ctrl和鼠标左键的时候. 往往出现例如以下提示: Class File Editor Source no ...

  9. 在spring MVC的controller中获取ServletConfig

    在使用SmartUpload进行文件上传时,须要用到srevletConfig: 假设是在servlet中写当然是非常easy实现的: private ServletConfig config; // ...

  10. 第一章 andrid visdio 安装

    第一章   andrid visdio 安装与环境搭建 一.Android Studio简介 Android Studio是Google新发布的Android应用程序开发环境,Android Stud ...