PHP制作用户注册系统


Posted in PHP onOctober 23, 2015

到目前为止,你已经了解了足够多的PHP了。该写个小程序练手了。

用户注册系统

写一个index.php页面,有用户名和密码表单,post提交到check.php,输出用户名和"用户名+密码"的md5值
本地建立一个mysql数据库,名叫segmentfault,建立一个表user,字段username password将上题check.php接收到的内容存入
我们先完成HTML部分:

<!DOCTYPE HTML>
<html>

<head>
<title>注册</title>
</head>

<body>

<h1>注册</h1>

<form action="check.php" enctype="application/x-www-form+xml" method="post">
 <p>
 <label for="name">邮箱</label>
 <input name="name" required type="email" placeholder="请填写有效邮箱"></input>
 </p>
 <p>
 <label for="passphrase">密码</label>
 <input name="passphrase" required type="passphrase"></input>
 </p>
 <p>
 <input type="submit" value="提交"></input>
</form>


</body>

</html>

注意,HTML5对表单的支持比以往版本的HTML好很多,可以直接指明各种type。比如制定了type="email",会检验用户提交的邮件地址是否合法。

然后是check.php。

<!DOCTYPE>

<html>

<head>
<title> 注册成功!</title>
</head>

<body>
<h1> 哇咔咔,你已经注册成功啦!</h1>

<p>呃……不过注册成功了好像也没什么用,因为本网站除了注册以外好像没有其他功能。</p>
<p>那么,作为补偿,我会告诉你,你的“邮箱+密码”的md5值。</p>
<p>你的邮箱是:

下面是PHP部分,直接嵌入HTML,这是PHP的优势:

<?php 
$username = htmlspecialchars($_POST["name"]);
echo $username;
?>
</p>
<p>你的“邮箱+密码”的md5值是:
<?php
$passphrase = htmlspecialchars($_POST["passphrase"]);
$md5sum = md5($username . $passphrase);
echo $md5sum;

注意我们用了htmlspecialchars,避免用户填入奇怪的东西。

然后是数据库操作,我们使用mysqli,(mysql已经废弃了,现在推荐用 mysqli,当然你也可以用 PDO。)

首先我们指明数据库的一些信息:

$db_server = "localhost";
$db_user = "db_user";
$db_pass = "password";
$db_name = "segmentfault";

连接到数据库,并且确保连接正常:

$conn = new mysqli($db_server, $db_user, $db_pass, $db_name);

if (mysqli_connect_errno()) {
 trigger_error("Database connection failed: " . mysqli_connect_error(), E_USER_ERROR);
}

使用SQL语句创建表

$sql = "CREATE TABLE user(username CHAR(140), password CHAR(140))";

添加记录

mysqli_query($conn, "INSERT INTO user (username, password) VALUES ($username, $md5sum)");

手写SQL不太爽,实际应用中,框架会为你提供各种方便。

关闭数据库:

mysqli_close($conn);

?>
</p>
</body>

</html>

好了,我们已经成功地写好了一个小应用,也顺带学习了如何访问 MySQL 数据库。今天就到这里了。

PHP 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
WordPress网站性能优化指南
Nov 18 PHP
Yii多表联合查询操作详解
Jun 02 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 PHP
php简单处理XML数据的方法示例
May 19 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 #PHP
PHP中文竖排转换实现方法
Oct 23 #PHP
浅谈php7的重大新特性
Oct 23 #PHP
php数字每三位加逗号的功能函数
Oct 22 #PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
Oct 22 #PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 #PHP
PHP实现无限级分类(不使用递归)
Oct 22 #PHP
You might like
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
Vue2几种常见开局方式详解
2017/09/09 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python中扩展包的安装方法详解
2017/06/14 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
土木工程专业个人求职信
2013/12/30 职场文书
美术课外活动总结
2014/07/08 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2014年科室工作总结
2014/11/20 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js