php实现注册登陆验证

欢迎界面很简单,直接放上代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>php入门</title><style type="text/css">h1{color:BLUE;}c{color:#FC3;}i{float: right;}</style>
</head><body background="01fbf555440e780000019ae9e76690.jpg@1280w_1l_2o_100sh.jpg">
<h1>欢迎光临我的小窝</h1>
<i>
<form method="post" action="dengluhouduan.php"><input type="submit" value="登陆" />
</form>
<form method="post" action="Untitled-2.php"><input type="submit" value="注册" />
</form>
</i>
<br />
<br />
<br />
<img src="http://i1.bvimg.com/666989/6d164213b04944a6.jpg" alt="加载失败" title="图片"  width="473" height="258"/><form><a href="mailto:1771795643@qq.com">电子邮件</a></body>
</html>

放上效果图
在这里插入图片描述
然后是注册部分的代码
这一部分也很简单,都是基本语法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php入门</title><style type="text/css">h1{color:BLUE;}c{color:#FC3;}</style>
</head><body background="01fbf555440e780000019ae9e76690.jpg@1280w_1l_2o_100sh.jpg">
<h1>用户注册</h1>
<form method="post" action="new 2.php"><label for="usename" ><c>用户名:</c>&nbsp; &nbsp;</label><input type="text" name="usename" /><br /><br /><label for="pass"><c>密码:</c> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="password" name="pass" /><br /><br /><label for="aa" ><c>确认密码:</c></label><input type="password" name="pass2"/><br /><hr /><input type="submit" value="确定" /><input type="reset" value="清除" /></form><br /><br /><br /><img src="http://i1.bvimg.com/666989/6d164213b04944a6.jpg" alt="加载失败" title="图片"  width="473" height="258"/><form><a href="mailto:1771795643@qq.com">电子邮件</a></body>
</html>

用户输入注册信息后,需要对信息进行判断是否满足要求
我们可以通过$_POST['usename']函数来接受用户注册时输入的信息
其中usename就是

 <input type="text" name="usename" />

中name的值;具体用法参考PHP使用手册

判断用户名是否合法

规定用户名首字母必须是英文且长度必须在5-12个字符之间
1.取首字母有两种方法
(1)

$str="abcdef";
$str_first=$str{0};

(2)
使用substr(string $str,int $start[,int $length]);函数求子串,start为起始位置,length为字串长度

$first_usename=substr($usename,0,1);

详情参考php使用手册
2.判断首字母合法,可以使用ASCII表
通过 $ascii_usename=ord($first_usename);//第一个字母转换为ASCII值获得用户名第一个量的值
ord()函数的用法也可以参考php使用手册
使用if判断是否合法,不合法终止程序,并提示重新返回注册

if(!(($ascii_usename>=65&&$ascii_usename<=90)||($ascii_usename>=97&&$ascii_usename<=122))){exit('用户名首字母不合法.<a href="Untitled-2.php">重新注册</a>');}

判断长度是否合法

查看字符串长度使用函数strlen($str);

 if(!(strlen($usename)>=5&&strlen($usename)<=12)){exit('用户名长度不合法.<a href="Untitled-2.php">重新注册</a>');}

判断密码是否合法

与用户名合法类似

if(!(strlen($passname)>=5&&strlen($passname)<=12)){exit('密码长度不合法.<a href="Untitled-2.php">重新注册</a>');}if(!($passname==$passname2)){exit('两次密码不一致.<a href="Untitled-2.php">重新注册</a>');}

如若注册成功,返回登陆
最后新建一个文件,用来储存注册信息
用#把用户名和密码连接起来,方便登陆时判断,这个方法,emmmm…很简陋,应为我小白一个,只能想到这个;
新建文件和写入文件通过一下代码实现

 $myfile = fopen("username.txt", "a") or die("Unable to open file!");//新建文件夹用来储存usernamefwrite($myfile, $usename."#".$passname."#");//把注册的用户名和密码写入文件

其中,fopen()既可以新建也可以打开,前面的参数时文件名,后面的参数意思是增加,详情见手册。
发出完整代码

<?phpheader("Content-type: text/html; charset=utf-8");//接收数据$usename=$_POST['usename']; //接受用户名$passname=$_POST['pass'];//接受密码$passname2=$_POST['pass2'];//接受密码//判断用户名是否合法$first_usename=substr($usename,0,1);//取出用户名第一个字母$ascii_usename=ord($first_usename);//第一个字母转换为ASCII值if(!(($ascii_usename>=65&&$ascii_usename<=90)||($ascii_usename>=97&&$ascii_usename<=122))){exit('用户名首字母不合法.<a href="Untitled-2.php">重新注册</a>');}if(!(strlen($usename)>=5&&strlen($usename)<=12)){exit('用户名长度不合法.<a href="Untitled-2.php">重新注册</a>');}if(!(strlen($passname)>=5&&strlen($passname)<=12)){exit('密码长度不合法.<a href="Untitled-2.php">重新注册</a>');}if(!($passname==$passname2)){exit('两次密码不一致.<a href="Untitled-2.php">重新注册</a>');}$myfile = fopen("username.txt", "a") or die("Unable to open file!");//新建文件夹用来储存usernamefwrite($myfile, $usename."#".$passname."#");//把注册的用户名和密码写入文件exit('注册成功.<a href="dengluhouduan.php">返回登陆</a>');?>

效果如下
在这里插入图片描述
在这里插入图片描述

然后开始登陆界面了

前端界面很简单
直接放代码吧

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>php入门</title><style type="text/css">h1{color:BLUE;}c{color:#FC3;}</style>
</head><body background="01fbf555440e780000019ae9e76690.jpg@1280w_1l_2o_100sh.jpg">
<h1>用户登陆</h1>
<form method="post" action="DL-houduan.php"><label for="usename" ><c>用户名:</c>&nbsp; &nbsp;</label><input type="text" name="usename" /><br /><br /><label for="pass"><c>密码:</c> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="password" name="pass" /><hr /><input type="submit" value="确定" /><input type="reset" value="清除" />
</form>
<form method="post" action="welcome.php"><input type="submit" value="返回欢迎界面" />
</form>
<form method="post" action="Untitled-2.php"><input type="submit" value="注册" />
</form>
<br />
<br />
<br />
<img src="http://i1.bvimg.com/666989/6d164213b04944a6.jpg" alt="加载失败" title="图片"  width="473" height="258"/><form><a href="mailto:1771795643@qq.com">电子邮件</a></body>
</html>

同样的,使用POST传输数据,再使用file_get_contents('username.txt')把文件内容读成字符串,然后使用strpos($userpassfile,$userpass);查找输入的用户名密码是否为文件内容的字串,若是,则登陆成功,否则,返回注册,关于file_get_contents和strpos的具体用法,也可以在使用手册找到
放出完整代码

<?php
/*** Created by PhpStorm.* User: lenovo* Date: 2018/11/3* Time: 19:05*/
header("Content-type: text/html; charset=utf-8");
$myfile = fopen("username.txt", "r") or die("Unable to open file!");//打开username文件
$usename=$_POST['usename']; //接受用户名
$passname=$_POST['pass'];//接受密码
$userpass=$usename."#".$passname."#";
$userpassfile=file_get_contents('username.txt');//把文件中的内容读取为字符串echo "<br/>";
//fread($myfile,filesize("webdictionary.txt"));
$DL=strpos($userpassfile,$userpass);
if($DL===false)
{exit('用户不存在.<a href="Untitled-2.php">重新注册</a>');
}
else{exit('登陆成功.<a href="zhuye.php">开始旅行</a>');
}
?>

在这里插入图片描述
在这里插入图片描述
今天再加上验证码验证的环节
首先要产生一个四位的随机数字字母组合的字符串,使用{}截取字符串的功能,加上mt_rand()函数,可以产生一个随机字符,循环四次即可,为了美观,加上css样式,使用rgb颜色模式,可以产生随机颜色;通过&_post可以获取输入信息,二随机产生的信息可以使用隐藏域实现,由于我们添加了css样式,在随机产生的字符串和输入的字符串做对比时,会有影响,所以必须过滤掉样式,可以使用函数strip-tags();他的作用时从字符串中删除HTML和PHP标记,详情见手册
1.php

<from method="post",action="2.php">
<?php
$w="12345";
?>
<input type="hidden" name="w" value="$w"/>
</from>

2.php

<?php
$w1=$_POST['w'];
echo $w1;
?>
<?php$yanzheng="zbcdefghijklmnopqrstuvwxyz0123456789";$put='';for ($i=0;$i<4;$i++){$YZ = $yanzheng{mt_rand(0, strlen($yanzheng) - 1)};$put.= '<span style="color:rgb(' . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ')">' . $yanzheng{mt_rand(0, strlen($yanzheng) - 1)} . '</span>';}

ok

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS touch事件单击双击区分响应

如果您的 iPhone 应用里有个 view&#xff0c;既有单击操作又有双击操作。用户双击 view 时&#xff0c;总是先执行一遍单击的操作再执行双击的操作。所以直接判断时就会发现不能直接进入双击操作。下面是区分 touch 事件是单击还是双击的方法 -(void)singleTap{ NSLog(&quo…

搭建高可用的redis集群,避免standalone模式带给你的苦难

现在项目上用redis的话&#xff0c;很少说不用集群的情况&#xff0c;毕竟如果生产上只有一台redis会有极大的风险&#xff0c;比如机器挂掉&#xff0c;或者内存爆掉&#xff0c;就比如我们生产环境 曾今也遭遇到这种情况&#xff0c;导致redis内存不够挂掉的情况&#xff0c;…

python计算a的平方加b的平方_NumPy计算范数2的平方

老实说&#xff0c;没有比np.inner或np.dot更快的了。如果你觉得中间变量很烦人&#xff0c;你可以创建一个lambda函数&#xff1a;sqeuclidean lambda x: np.inner(x, x)np.inner和np.dot利用BLAS例程&#xff0c;几乎肯定比标准的元素乘法加和快。In [1]: %%timeit -n 1 -r …

php连接MySQL

先说一下我踩了三天的坑 我在这之前用mysql申请了一个数据库&#xff0c;然后用php连接一直连接不上&#xff0c;试了许多办法&#xff0c;都不行 下载MySQL时显示3306端口被占用&#xff0c;所以选了3307 一直报错&#xff0c;三天后&#xff0c;终于知道了&#xff0c;你用的…

SVG动画

动画原理 SVG动画&#xff0c;就是元素的属性值关于时间的变化。 如下图来说&#xff0c;元素的某个属性值的起始值&#xff08;from&#xff09;到结束值&#xff08;to&#xff09;在一个时间段&#xff08;duration&#xff09;根据时间函数&#xff08;timing-function&…

bootstrap弹出的模态框水平垂直居中的实现

学习javascript从入门到放弃&#xff01;&#xff0c;这是第一篇随笔&#xff0c;经验不足&#xff0c;如有不当之处&#xff0c;还望指出。好了废话不多说直接切入正题吧 1.bootstrap默认的model写法&#xff1a; //触发模态框的button <button data-toggle"modal&quo…

python开发实践教程_Python开发实践教程

前言第一章 通过求三角形面积步入Python程序世界 案例1-1 求三角形面积 导读 知识梳理与扩展 小结 练习一第二章 常用运算、使用自定义函数 案例2-1 用函数的方法计算三角形面积 导读 案例2-2 开发一个求三角形面积的工具包 知识梳理与扩展 小结 练习二第三章 分支、循环和列表…

正则表达式 PHP

正则表达式的常用函数&#xff1a; 先写一个函数show&#xff0c;用来输出数组&#xff0c;使代码看起来方便&#xff0c;且把经常重复用到的量放在前面 function show($varnull) {if(empty($var))//检测变量是否为空{echo null;}elseif (is_array($var)||is_object($var))//…

iis发布网站怎么支持.json文件

转载于:https://www.cnblogs.com/daizhipeng/p/5622839.html

PHP Cookie和Session

cookie cookle常用来识别用户&#xff0c;可以理解为浏览器留下的一种文件&#xff0c;cookie可以分为会话cookie和硬盘cookie两种&#xff0c;会话cookie生命周期短&#xff0c;浏览器关闭即销毁&#xff0c;硬盘cookie生命周期由开发者设定&#xff0c;可长可短 1.创建cook…

浏览器渲染机制

1. 明白浏览器渲染的目的 可访问性&#xff08;Accessability&#xff09;、加载性能和重构灵活性一直是前端工程师们关心的主题。 其中加载性能与浏览器的渲染机制深深挂钩&#xff0c;弄明白浏览器背后的渲染机制&#xff0c;才能在日常的前端的开发中明白如何进行性能优化。…

java中List Set Map使用

Testpublic void run(){ArrayList<String> list new ArrayList<String>();list.add( "美女");list.add( "帅哥");list.add( "芙蓉姐姐" );for (int i 0; i < list.size(); i) {String strlist.get(i);System. out.println(str);…

python免费开源工具推荐_年薪200万的程序员,推荐这10大Python免费开源工具!

原标题&#xff1a;年薪200万的程序员&#xff0c;推荐这10大Python免费开源工具&#xff01;毫无疑问&#xff0c;Python是最流行的语言之一&#xff0c;其成功的原因之一是它为科学计算提供了广泛的报道。 在这里&#xff0c;我们仔细研究用于机器学习和数据科学的十大Python…

通过Yeoman快速搭建AngularJS webapp应用的实践

这里主要记录关于使用yeoman快速构建angluarJS的前端应用的实践&#xff1a; 安装node、yeoman等过程略去 1、首页我们可以在公共的脚手架中找到自己想要的脚手架&#xff0c;官方脚手架库的地址 Yeoman generators: http://yeoman.io/generators/ 这里我们选择官方团队出的ang…

[Objective-C]编程艺术 笔记整理

看了《禅与 Objective-C 编程艺术》&#xff0c;发现不少平时不注意的或注意但没有系统总结的东西&#xff0c;特此记录一下。 这次没有整理完&#xff0c;后续更新会结合手里的一些其他资料整理。 新博客wossoneri.com传送门 完整的介绍看这两个链接Google开源项目风格指南禅与…

python大数据工程师 培训_大数据工程师学习之路

大数据的作用&#xff1a;发现过去事件的特征预测未来最优化选择职位划分&#xff1a;数据产品经理数据分析师->商业敏感性&#xff0c;产品经理的助手数据研发工程师数据挖掘工程师/数据科学家需要准备的技术知识&#xff1a;Linux操作系统与网络编程&#xff1a;进程/线程…

python序列

python序列 列表 python变量不存放值&#xff0c;之存放值的引用&#xff0c;所以列表中元素可以是不同类型 1.常用方法 1.1 增加元素 append,在末尾插入元素 extend&#xff0c;将一个列表整体插入到尾部 insert&#xff0c;将某个元素插入到特定位 /*&#xff0c;拼合…

前端资源(11)

移动端API 地址99移动端知识集合 https://github.com/jtyjty99999/mobileTech移动端前端开发知识库 https://github.com/AlloyTeam/Mars移动前端的一些坑和解决方法&#xff08;外观表现&#xff09; http://caibaojian.com/mobile-web-bug.html【原】移动web资源整理 http://w…

win10使用Composer-Setup安装Composer以及使用Composer安装Yii2最新版

1&#xff1a;下载 ca-bundle.crt和cacert.pem(见导航栏——文件) 将这两个文件放在php目录下 2:php.ini中添加上述两个文件的路径 curl.cainfoC:/xampp/php/ca-bundle.crtopenssl.cafileC:/xampp/php/ca-bundle.crt 写到最后一行就可以 3&#xff1a;下载Composer-Setup.exe h…

python离群点检测方法分几类_数据分析 第五篇:离群点检测

离群点(outlier)是指和其他观测点偏离非常大的数据点&#xff0c;离群点是异常的数据点&#xff0c;但是不一定是错误的数据点。确定离群点对于数据分析会带来不利的影响&#xff0c;比如&#xff0c;增大错误方差、影响预测和影响正态性。从散点图上可以直观地看到离群点&…