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:[email protected]">电子邮件</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:[email protected]">电子邮件</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!");//新建文件夹用来储存username
  fwrite($myfile, $usename."#".$passname."#");//把注册的用户名和密码写入文件

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


 <?php
 header("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!");//新建文件夹用来储存username
  fwrite($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:[email protected]">电子邮件</a>

</body>
</html>

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

<?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

猜你喜欢

转载自blog.csdn.net/zjbyough/article/details/83692035