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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP设计模式 注册表模式
Feb 05 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
深入解析fsockopen与pfsockopen的区别
Jul 05 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
php探针使用原理和技巧讲解
Sep 17 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依赖注入(DI)和控制反转(IoC)详解
2017/06/12 PHP
JS的replace方法详细介绍
2012/11/09 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
layui文件上传实现代码
2017/05/20 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
微信小程序多音频播放进度条问题
2018/08/28 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
SQL语言面试题
2013/08/27 面试题
自行车广告词大全
2014/03/21 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
文明生主要事迹
2014/05/25 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书