欢迎界面很简单,直接放上代码
<!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> </label><input type="text" name="usename" /><br /><br /><label for="pass"><c>密码:</c> </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> </label><input type="text" name="usename" /><br /><br /><label for="pass"><c>密码:</c> </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>';}