首先我们实现功能时,分析实现的步骤是什么,就这个而言,我们应该接收用户提交的数据并进行校验,然后保存在文件,最后给用户反馈。

这里需要注意的是为了避免嵌套过深,这里使用自定义函数来实现,其代码如下:

 <?php
function postback(){
//申明message是全局变量
global $message;
if (empty($_POST['username'])) {
//没有提交用户名或用户名为空
$message= "用户名不行";
return;
}
if (empty($_POST['password'])) {
$message= "请输入密码";
return;
}
if (empty($_POST['confirm'])) {
$message= "请输入确认密码";
return;
}
if ($_POST['password']!==$_POST['confirm']) {
echo "两次密码不一致";
return;
}
if (!(isset($_POST['agree'])&&$_POST['agree']==='true')) {
$message= "必须同意注册协议";
return;
}
//校验完成
$message= "注册成功";
$username=$_POST['username'];
$password=$_POST['password'];
//保存在文件
file_put_contents('注册.txt', $username.'|'. $password."\n",FILE_APPEND);
}
//接受用户提交的数据,保存到文件
//1.接受并校验
if ($_SERVER['REQUEST_METHOD']==='POST') {
postback();
}
//2.持久化
//3.响应(反馈)
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="1">
<tr>
<td><label for="username">用户名:</label></td>
<td><input type="text" name="username" id="username" value="<?php echo isset($_POST['username']) ? $_POST['username'] : ''; ?>"></td>
</tr>
<tr>
<td><label for="password">密码:</label></td>
<td><input type="password" name="password" id="password"></td>
</tr>
<tr>
<td><label for="confirm">确认密码:</label></td>
<td><input type="password" name="confirm" id="confirm"></td>
</tr>
<tr>
<td></td>
<td><label ><input type="checkbox" name="agree" value="true">同意注册协议</label></td>
</tr>
<?php if (isset($message)): ?>
<tr>
<td></td>
<td><?php echo $message ?></td>
</tr>
<?php endif ?>
<tr>
<td></td>
<td><button>注册</button></td>
</tr>
</table>
</form>
</body>
</html>

PHP实现用户注册并保存数据到文件的更多相关文章

  1. Android 中保存数据到文件中

    1.在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况 /** * 把数据存放到手机内存中 * * @param number * @param password * @return */ ...

  2. 保存数据到文件的模块(json,pickle,shelve,configparser,xml)_python

    一.各模块的主要功能区别 json模块:将数据对象从内存中完成序列化存储,但是不能对函数和类进行序列化,写入的格式是明文.  (与其他大多语言交互的类型) pickle模块:将数据对象从内存中完成序列 ...

  3. laravel中新建文件并保存数据到文件中

    //base_path()获取当前的绝对路径 $path=base_path().'\config\web.php'; $str='abcdefg'; //要声明的字符串 file_put_conte ...

  4. Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

    一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/fi ...

  5. 提取数据表保存为XML文件

    //连接数据库 SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********&qu ...

  6. matlab结构体形式保存数据生成.mat文件< 转>

    2015年 参加天池大数据竞赛     为了建立模型,打算基于matlab使用Random Forest Algorithm的工具包 该工具包我在此分享给大家,http://yunpan.cn/cVX ...

  7. iOS 写入文件保存数据的方式

     在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeye ...

  8. 八,ESP8266 文件保存数据

    应该是LUA介绍8266的最后一篇,,,,,,下回是直接用SDK,,然后再列个12345.......不过要等一两个星期,先忙完朋友的事情 前面几篇 用AT指令版本的 一,  http://www.c ...

  9. Java读取oracle数据库中blob字段数据文件保存到本地文件(转载)

    转自:https://www.cnblogs.com/forever2698/p/4747349.html package com.bo.test; import java.io.FileOutput ...

随机推荐

  1. Python OpenCV 图像相识度对比

    强大的openCV能做什么我就不啰嗦,你能想到的一切图像+视频处理. 这里,我们说说openCV的图像相似度对比, 嗯,说好听一点那叫图像识别,但严格讲, 图像识别是在一个图片中进行类聚处理,比如图片 ...

  2. 输入a,b,求a^b的所有因子之和

    题目 poj的1845 分解a的质因数a=p1^t1*p2^t1........ 每个质因数对sum的贡献: 当除去质因数p1时的因数和为sum,当计入p1时,因子和变成sum*p1^0+sum*p1 ...

  3. 从BAT这种公司平薪跳槽头条,是否值得?

    有一个朋友之前就职于阿里,之前交流关于跳槽的问题,具体是这样的:阿里工作3年,拿到了头条的offer.但是非常纠结要不要接的问题.于是几个朋友聚在了一起讨论了这个问题 而且最近好多读者也在参加面试,接 ...

  4. arrayList和vector的区别--2019-4-16

    1. Vector & ArrayList 1)  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的 ...

  5. unity runtime时导入fbx文件

    TriLib is a Unity model loader package designed to allow the user to load various 3D model formats i ...

  6. MySQL系列

    目录: 一.初识数据库 二.库相关操作 三.表相关操作 四.记录相关操作 五.数据备份.pymysql模块 六.视图.触发器.事务.存储过程.函数 七.ORM框架SQLAlchemy 八.索引原理与慢 ...

  7. [linux]CentOS安装pre-built Nginx

    官方文档:https://nginx.org/en/linux_packages.html Nginx安装分为软件包安装和pre-built安装.这里使用的pre-built安装,不用自己编译. 设置 ...

  8. 背包问题——dfs

    背包问题——dfs 问题描述   解决思路 采用DFS搜索 其实也是回溯法 代码实现 #include<iostream> #include<vector> using nam ...

  9. selenium 打开新标签页(非窗口)

    如何利用webdriver打开多个标签页和链接呢,到处查找得到的往往只是如何打开标签页. 打开标签页很简单,浏览器打开标签页的快捷键是ctrl+t,那把ctrl+t的按键事件传入即可,很多种实现方式, ...

  10. nginx.conf 中php-ftp配置

    location ~ .php$ { root /home/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_par ...