1、分析:

====不推荐这种========

<?php

function foo(){
//
global $message; if(empty($_POST['username'])){
echo "要先输入名字";
return;
}else{ if(empty($_POST['password'])){
echo "请输入密码";
return;
}else{ if(empty($_POST['confirm'])){
echo "请确认密码";
return;
}else{
if ($_POST['password'] !== $_POST['confirm']) {
$GLOBALS['message'] = '两次输入的密码不一致';
return;
}else{ if(!(isset($_POST['agree'])&&isset($_POST['agree'])=='on')){
echo "同意协议了吗";
return;
}else{ $username=$_POST['username'];
$password=$_POST['password']; file_put_contents('users.txt', $username.'|'.$password."\n",FILE_APPEND); } if ($_SERVER['REQUEST_METHOD'] === 'POST') {
foo();
} ?> ============================================================================= <?php function foo(){ //我们的目的是每次提交表单的时候,都要看看里面的内容是否为空,如果第一个为空,里面的文本框就不能输入,用(return)可以让程序停止,但是return 只能用在函数中,所以我们构建了一个函数
//
global $message; //这里一定要设置为全局变量,否则下面html代码中的$message不能使用 if(empty($_POST['username'])){
echo "要先输入名字";
return;
} if(empty($_POST['password'])){
echo "请输入密码";
return;
} if(empty($_POST['confirm'])){
echo "请确认密码";
return;
}
if ($_POST['password'] !== $_POST['confirm']) {
$GLOBALS['message'] = '两次输入的密码不一致';
return;
} if(!(isset($_POST['agree'])&&isset($_POST['agree'])=='on')){
echo "同意协议了吗";
return;
} $username=$_POST['username'];
$password=$_POST['password']; file_put_contents('users.txt', $username.'|'.$password."\n",FILE_APPEND); } if ($_SERVER['REQUEST_METHOD'] === 'POST') {
foo();
} ?> <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table>
<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" name="username"></td>
</tr> <tr>
<td><label for="password">密码</label></td>
<td><input type="password" name="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="on"> 同意注册协议</label></td>
</tr>
<?php if (isset($message)): ?>
<tr>
<td></td>
<td><?php echo $message; ?></td>
</tr>
<?php endif ?>
<tr>
<td><label for="button"></label></td>
<td><input type="submit" name="button"></td>
</tr>
</table>
</form>
</body>
</html>

php将用户信息提交到表单并且以txt文档打印出来的更多相关文章

  1. ajax提交form表单资料详细汇总

    一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味 ...

  2. formidable处理提交的表单或文件的简单介绍

    一般来说,客户端向服务端提交数据有GET和POST这两种方式,在之前的文章node.js当中的http模块与url模块的简单介绍当中我们可以知道通过req.url与url模块的配合处理可以快速得到客户 ...

  3. formidable处理提交的表单或图片文件的简单介绍

    一般来说,客户端向服务端提交数据有GET和POST这两种方式,在之前的文章node.js当中的http模块与url模块的简单介绍当中我们可以知道通过req.url与url模块的配合处理可以快速得到客户 ...

  4. 如何使用PHP验证客户端提交的表单数据

    PHP 表单验证 本章节我们将介绍如何使用PHP验证客户端提交的表单数据. PHP 表单验证 在处理PHP表单时我们需要考虑安全性. 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们 ...

  5. Jquery通过Ajax方式来提交Form表单

    今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...

  6. Ajax提交Form表单的一种方法

    待提交的表单 <form id="updatePublicKey" enctype="multipart/form-data"> <div c ...

  7. 按下回车默认提交form表单问题

    最近开发中碰到一个问题,项目中有几个列表展示页面,允许用户通过查询条件模糊查询数据.用户录入关键字后点击回车会调用查询方法根据关键字查询,原先功能没有问题,但是最近发现在查询输入框中按下回车会直接刷新 ...

  8. Button按钮为什么无缘无故会提交form表单?

    我的form表单里有好几个Button按钮,每个按钮有不同的功能,可是这些按钮居然都有提交功能,真是把我惊呆了 <button class="btn btn-info " o ...

  9. ajax 提交所有表单内容及上传图片(文件),以及单独上传某个图片(文件)

    我以演示上传图片为例子: java代码如下(前端童鞋可以直接跳过看下面的html及js): package com.vatuu.web.action; import java.io.File; imp ...

随机推荐

  1. c++ 实现哈夫曼树中遇见的问题

    为了提高效率求得 叶子 节点中权值最小的两个元素,我们需要使用堆数据结构,它可以以O(logn)的复杂度 取得n个元素中的最小元素.为了绕过堆的实现,我们可以使用标准模板库中相应的标准模板—优先队列. ...

  2. Spring Security 学习总结

    Spring Security Spring Security是基于Spring提供声明式安全保护的安全性框架.Spring Security提供了完整的安全性解决方案,能够在Web请求级别和方法调用 ...

  3. Sum of Consecutive Prime Numbers POJ - 2739 线性欧拉筛(线性欧拉筛证明)

    题意:给一个数 可以写出多少种  连续素数的合 思路:直接线性筛 筛素数 暴力找就行   (素数到n/2就可以停下了,优化一个常数) 其中:线性筛的证明参考:https://blog.csdn.net ...

  4. Data truncation: Data too long for column 'content' at row 1

    项目运行报错: Data truncation: Data too long for column 'content' at row 1 是由于字段长度太小导致的 搜索mysql 中text 字段长度 ...

  5. Linux block(1k) block(4k) 换算 gb

    输入 df  显示1k blocks  大小   再输入  df -h  显示 gb换算大小  结论 block(1k) 计算公式为:  block(1k)   /1024/1000  = xx gb ...

  6. [luogu5003]跳舞的线【动态规划】

    题目描述 线现在在一个地图上,它正在(1,1)上(左上角),最终要去到(M,N)上.它不但只能往下或往右走,还只能在整数格子上移动. Imakf有的时候想要炫技,又有时想偷懒,所以他会告诉你这张地图的 ...

  7. SAM练习记录

    SAM练习记录 洛谷 P1368 工艺 其实是最小表示法裸题 倍长后建SAM跑最小的边走|S|步即可 Code CF 235 C. Cyclical Quest 对主串建SAM 然后每个串倍长,跑的时 ...

  8. luogu5012 水の数列 (并查集+线段树)

    如果我们能求出来每个区间个数的最大分值,那就可以用线段树维护这个东西 然后出答案了 然后这个的求法和(luogu4269)Snow Boots G非常类似,就是我们把数大小排个序,每次都拿<=x ...

  9. [JSOI2008]Blue Mary的战役地图(二分+哈希)

    Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提高自己的水平. 由于Blue Mary的技术已经达到了一定的高度,因此,对于用同一种打 ...

  10. centos7/centos6修改系统默认语言

    应用环境: 一直在使用centos7.x,系统默认的语言也是英文环境,工作内容偶遇中文,顺便搜罗修改一番,小记如下. 测试环境: 测试步骤: CentOS 7.x 1. 查看当前语言环境 [root@ ...