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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
关于Appserv无法打开localhost问题的解决方法
Oct 16 PHP
php printf输出格式使用说明
Dec 05 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
PHP重定向与伪静态区别
Feb 19 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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
收音机的保养
2021/03/01 无线电
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
php二维数组排序详解
2013/11/06 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
JS常用算法实现代码
2016/11/14 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
javascript this指向相关问题及改变方法
2020/11/19 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python中断多重循环的思路总结
2019/10/04 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
Python list运算操作代码实例解析
2020/01/20 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
2016春季小学开学寄语
2015/12/03 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
MySQL创建管理LIST分区
2022/04/13 MySQL