PHP制作登录注册页面
用PHP制作登录和注册页面,一共6个页面,三个可视页面:登录、注册、主页,三个处理页面:验证、添加用户、清除退出
注册
<!--这是注册页面d&z-2-z.php,用户可以提交用户名和密码进行注册,点击注册按钮提交给d&z-4-add.php页面处理--> <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <h1>注册</h1> <form action="d&z-4-add.php" method="post"> <!--from表单指定数据的接收文件为d&z-4-add.php,指定数据传输方式为post--> <div><label for="users">用户名</label><input type="text" name="users" id="users"></div><!--用户名栏--> <div><label for="pwd">密码</label><input type="password" name="pwd" id="pwd"></div><!--密码栏--> <div><label for="pwd2">确认密码</label><input type="password" name="pwdag" id="pwd2"></div><!--再次确认密码栏--> <input type="submit" value="注册" id="tj" onClick="return tiJiao()"><!--注册按钮,添加了点击事件,用来验证两次密码是否输入的相同--> </form> </body> <script type="text/javascript"> var pwd = document.getElementById("pwd"); //分别获取密码和确认密码的表单元素 var pwd2 = document.getElementById("pwd2"); var bool = false; //设置一个为非的变量 /* tiJiao()函数用来判断两次密码输入的内容是否相同,相同则返回是,不同则输出提示并返回非 */ function tiJiao(){ if(pwd.value==pwd2.value){ bool = true; }else{ alert("两次密码输入不同!"); } return bool; } </script> </html>
用户添加
<?php //这里是d&z-4-add.php,是d&z-2-z.php页面提交后跳转到的处理页面,处理结果又两种,添加数据成功则跳转到登录页面d&z-1-d.php,失败则输出提示“注册失败!” require_once("./DBDA.class.php"); //引入数据库连接类 $db = new DBDA(); //实例化数据连接 $users = $_POST["users"]; //接收传过来的用户名和密码数据 $pwd = $_POST["pwd"]; $arr = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","i","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","*","#","@","$","%","&");//这是一个自定义的字符串数组 $sjs0 = rand(0,41); //设置变量从0到9取10个随机数, $sjs1 = rand(0,41); $sjs2 = rand(0,41); $sjs3 = rand(0,41); $sjs4 = rand(0,41); $sjs5 = rand(0,41); $sjs6 = rand(0,41); $sjs7 = rand(0,41); $sjs8 = rand(0,41); $sjs9 = rand(0,41); //设置秘钥,秘钥是用来提高加密级别的,是由以上自定义字符串数组中随机取出的10个字符组成的字符串, $miyao = "{$arr[$sjs0]}{$arr[$sjs1]}{$arr[$sjs2]}{$arr[$sjs3]}{$arr[$sjs4]}{$arr[$sjs5]}{$arr[$sjs6]}{$arr[$sjs7]}{$arr[$sjs8]}{$arr[$sjs9]}" ; $pwdjm = md5($pwd.$miyao); //将秘钥拼接在传入的密码后面,然后用MD5方法进行加密 $sql = "insert into d_z values('{$users}','{$pwdjm}','{$miyao}')"; //sql语句为:将用户名、加密后的MD5码、秘钥存入数据库 $result = $db->query($sql,1); //执行sql语句,增语句加上第二参数1,用$result接收结果 if($result){ //执行成功,跳转到登录页面d&z-1-d.php echo "<script type='text/javascript'> window.location.href='d&z-1-d.php'; </script>"; }else{ //执行失败,输出提示“注册失败!” echo "注册失败!"; }
登录
<!--这是登录的主页面d&z-1-d.php,用户可以输入用户名和密码,点击登录时跳转到d&z-5-yan.php做验证处理,还可以点击注册按钮去跳转到注册页面d&z-2-z.php--> <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <body> <h1>登录</h1> <form action="d&z-5-yan.php" method="post"><!--from表单指定数据接收页面为d&z-5-yan.php,数据的传输方式为post--> <div><label for="users">用户名</label><input type="text" name="users" id="users"></div><!--用户名栏--> <div><label for="pwd">密码</label><input type="password" name="pwd" id="pwd"></div><!--密码栏--> <input type="submit" value="登录"><!--登录按钮--> <a href="d&z-2-z.php"><input type="button" value="注册"></a><!--注册按钮,添加a标签并指定跳转页面为d&z-2-z.php的注册页面--> </form> </body> </html>
验证
<?php //这里是d&z-5-yan.php,是登录页面d&z-1-d.php点击登录后跳转过来的处理页面 session_start(); //开启session require_once("./DBDA.class.php"); //引入数据库访问类 $db = new DBDA(); $users = $_POST["users"]; //接收传过来的用户名和密码数据 $pwd = $_POST["pwd"]; $sql = "select * from d_z where users='{$users}' "; //创建sql语句查询传入的用户名在数据库中的对应的数据 $arr = $db->query($sql); //执行sql语句并用$arr接收 if(!empty($arr)){ //判断$arr是否为空 $pwdjm = md5("{$pwd}{$arr[0][2]}"); //如果$arr不为空,重组MD5码 if($pwdjm==$arr[0][1]){ //如果重组的MD5码和数据库中提取是MD5码相同,则验证成功,跳转到主页d&z-3-index.php,并且把传入的用户名存入$_SESSION["users"]中 echo "<script type='text/javascript'> window.location.href='d&z-3-index.php'; </script>"; $_SESSION["users"] = $users; }else{ //如果MD5码不匹配,则提示用户名和密码输入错误 echo "用户名和密码错误!"; } }else{ //$arr为空说明没有对应的用户名,提示用户名不存在 echo "用户名不存在!"; }
主页
<!--这是主页页面d&z-3-index.php,是d&z-5-yan.php验证成功后跳转过来的页面,添加了防止绕过登录的方法--> <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> <?php
//用来防止绕过登录的方法 session_start(); //开启session if(empty($_SESSION["users"])){ //判断$_SESSION["users"]是否为空 echo "<script type='text/javascript'> window.location.href='d&z-1-d.php'; </script>"; //空则跳转回登录页面d&z-1-d.php exit; // 停止执行后面的代码 }
?> <body> <h1>欢迎光临</h1> <a href="d&z-6-qing.php"><input type="button" value="退出"></a><!--退出登录按钮,点击跳转到处理页面d&z-6-qing.php--> </body> </html>
退出清除
<?php //这里是d&z-6-qing.php,作用是用来清除$_SESSION["users"]值,即退出登录 session_start(); //开启session unset($_SESSION["users"]); //清除$_SESSION["users"]值 echo "<script type='text/javascript'> window.location.href='d&z-3-index.php'; </script>"; //跳转到主页d&z-3-index.php,但由于没有了$_SESSION["users"]的值,会触发防止绕过登录方法,直接跳转到登录页面d&z-1-d.php