实现用户注册登录的功能,共需要8个页面:
1,login.php 登陆页面
2,check.php 验证页面
3,mysql_connect.php 数据库连接页面
4,ms_login.php 从数据库中提取数据验证
5,register.php 注册页面
6,register_1.php 是注册验证,并写入到数据库中
7,showing.php 图片验证码
8,huangying.html 是登陆成功的页面
下面我们逐一来实现。
1,login.php 登陆页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>php登录页面_www.jb200.com</title> </head> <style type="text/CSS"> .div { height:1000px; width:700px; text-align:center; margin:20px; } .text { } .button { font-size:10px; } </style> <body> <form method="post" action="check.php"> <div class="div"> 用户名<input type="text" name="name" > 密码:<input type="password" name="password"> <div class="button"> <input type="submit" value="提交"> <input type="reset" value="清除"> <a href="register.php" >注 册</a> </div> </div> </form> </body> </html>
2,check.php 登录验证页面
<?php /** * 登录验证 * edit www.jb200.com */ require_once("ms_login.php"); //require_once ("mysql_connect.php"); $name=$_POST['name']; $password=$_POST['password']; if($name == "") { echo "请填写用户名<br>"; echo"<script type='text/javascript'>alert('请填写用户名');location='login.php'; </script>"; } elseif($password == "") { //echo "请填写密码<br><a href='login.php'>返回</a>"; echo"<script type='text/javascript'>alert('请填写密码');location='login.php';</script>"; } else { $colum=collect_data(); if(($colum['name'] == $name) && ($colum['password'] == $password)) { //echo "验证成功!<br>"; echo"<script type='text/javascript'>alert('登陆成功');location='huanying.html';</script>"; } else //echo "密码错误<br>"; echo"<script type='text/javascript'>alert('密码错误');location='login.php';</script>"; //echo "<a href='login.php'>返回</a>"; } ?>
3,mysql_connect.php 数据库连接页面
<?php // 连接服务器,并且选择test数据库 function(){ $db = mysql_connect("localhost","root","123") or die("连接数据库失败!"); mysql_select_db("user") or die ("不能连接到user".mysql_error()); } ?>
4,ms_login.php 从数据库中提取数据验证
<?php //从test数据库中提取数据 function collect_data(){ require_once ("mysql_connect.php"); $sql = "select * from user"; $result = mysql_query($sql); $colum= mysql_fetch_array($result); return colum; } ?>
5,register.php 注册页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>php用户注册页面_www.jb200.com</title> </head> <style type="text/css"> .div { height:1000px; width:700px; text-align:center; margin:40px; } .text { font-size:20px; margin:20px; } .button { font-size:10px; } </style> <body> <h1>注册页面</h1> <form method="post" action="register_1.php"> <div class="div"> <div class="text"> 用户名<input type="text" name="name" ></div> <div class="text"> 密码:<input type="password" name="password"></div> <div class="text"> 再次输入密码:<input type="password" name="pwd_again"></div> <div class="text"> 验证码:<input type="text" name="check"><img src="showimg.php"></img></div> <div class="text"> <input type="radio" name="agree" value="是否同意我们的条款">同意我们的条款?</div> <input type="submit" value="提交"> <input type="reset" value="清除"> </div> </form> </body> </html>
6,register_1.php 是注册验证,并写入到数据库中
<?php /** * 用户注册验证 写入数据库 * edit www.jb200.com */ require_once 'mysql_connect.php'; $name=$_POST['name']; $password=$_POST['password']; $pwd_again=$_POST['pwd_again']; $code=$_POST['check']; if($name==""|| $password=="") { echo"用户名或者密码不能为空"; } else { if($password!=$pwd_again) { echo"两次输入的密码不一致,请重新输入!"; echo"<a href='register.php'>重新输入</a>"; } else if($code!=$_SESSION['check']) { echo"验证码错误!"; } else { $sql="insert into user values('105','$name','$password')"; $result=mysql_query($sql); if(!$result) { echo"注册不成功!"; echo"<a href='register.php'>返回</a>"; } else { echo"注册成功!"; } } } ?>
7,showing.php 图片验证码
<?php /* 网站验证码程序 * 运行环境: PHP5.0.18 下调试通过 * 需要 gd2 图形库支持(PHP.INI中 php_gd2.dll开启) * */ //随机生成一个4位数的数字验证码 $num=""; for($i=0;$i<4;$i++){ $num .= rand(0,9); } //4位验证码也可以用rand(1000,9999)直接生成 //将生成的验证码写入session,备验证页面使用 Session_start(); $_SESSION["check"] = $num; //创建图片,定义颜色值 Header("Content-type: image/PNG"); srand((double)microtime()*1000000); $im = imagecreate(60,20); $black = ImageColorAllocate($im, 0,0,0); $gray = ImageColorAllocate($im, 200,200,200); imagefill($im,0,0,$gray); //随机绘制两条虚线,起干扰作用 $style = array($black, $black, $black, $black, $black, $gray, $gray, $gray, $gray, $gray); imagesetstyle($im, $style); $y1=rand(0,20); $y2=rand(0,20); $y3=rand(0,20); $y4=rand(0,20); imageline($im, 0, $y1, 60, $y3, IMG_COLOR_STYLED); imageline($im, 0, $y2, 60, $y4, IMG_COLOR_STYLED); //在画布上随机生成大量黑点,起干扰作用; for($i=0;$i<80;$i++) { imagesetpixel($im, rand(0,60), rand(0,20), $black); } //将四个数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 $strx=rand(3,8); for($i=0;$i<4;$i++){ $strpos=rand(1,6); imagestring($im,5,$strx,$strpos, substr($num,$i,1), $black); $strx+=rand(8,12); } ImagePNG($im); ImageDestroy($im); ?>
有关php验证码的内容,大家还可以参考:
一个php验证码的封装类
php自定义大小验证码的实例代码
php生成扭曲及旋转的验证码图片的实例代码
php仿QQ验证码的实现代码
php5验证码类(简易实用型)
php验证码(GD库生成验证码)的例子
php GD库生成验证码的实例
一个比较稳定的php登陆系统验证码
用php生成带有雪花背景的验证码
8,huangying.html 登陆成功的页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>欢迎光临_www.jb200.com</title> </head> <body> <h1>脚本学堂,欢迎您的光临。</h1> </body> </html>