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 相关文章推荐
用Flash图形化数据(一)
Oct 09 PHP
php4的session功能评述(三)
Oct 09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
关于BIG5-HKSCS的解决方法
Mar 20 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php生成RSS订阅的方法
Feb 13 PHP
php文件扩展名判断及获取文件扩展名的N种方法
Sep 12 PHP
PHP内核探索之变量
Dec 22 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php实现中文转数字
2016/02/18 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
python异步Web框架sanic的实现
2020/04/27 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
艺术学院毕业生自我评价
2014/03/02 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
单位租车协议书
2015/01/29 职场文书
2015年暑期见闻
2015/07/14 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技