十日冲刺(第二阶段)
一、说在前面
今天没有开发安卓的相关内容,实验报告还有大作业压得快喘不过气来了。
二、完成情况
administrators.php:
<?php /** * Created by PhpStorm. * User: 杨雄豪 * Date: 2020/5/17 * Time: 17:43 */ error_reporting(0); header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式 include_once("conn/conn.php"); $sql = "select * from administrators WHERE name = '".$_GET['name']."' and password = '".$_GET['password']."'"; $result = mysqli_query($conn,$sql) or die("数据查找失败!"); $row = mysqli_fetch_row($result); echo $row[0]; if($row[0]){ echo "<script> alert('登录成功'); </script>"; echo "<meta http-equiv='Refresh' content='0;URL=text.php'>"; }else { if($_GET["name"]!=null) { echo "<script> alert('用户名或者密码错误!'); </script>"; } } ?> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>管理员登录</title> <style> #in{ padding-bottom: 10px; } </style> </head> <body> <div style="text-align: center"> <form method="get" action="administrators.php" > <div><h3>管理员登录</h3></div> <div id="in">用户名: <input type="text" name="name" id="name"></div> <div id="in">密码: <input type="password" name="password" id="password"></div> <div id="in"> <input type="submit" value="确定" style="width: 130px" ></div> </div> </form> </body> </html>
directlogin.php:
<?php /** * Created by PhpStorm. * User: 杨雄豪 * Date: 2020/5/13 * Time: 21:13 */ if (isset($_REQUEST['code'])){ session_start(); if ($_REQUEST['code'] != $_SESSION['code']){ echo "<script>alert('验证码错误!');</script>"; echo "<meta http-equiv='Refresh' content='0;URL=directlogin.php'>"; exit(); } } error_reporting(0); header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式 include_once("conn/conn.php"); $sql = "select * from shop WHERE username = '".$_GET['username']."' AND password = '".$_GET['password']."'"; $result = mysqli_query($conn,$sql) or die("数据查找失败!"); $row = mysqli_fetch_row($result); session_start(); if($row[0]){ echo "<script>alert('登陆成功!');</script>"; echo "<meta http-equiv='Refresh' content='0;URL=text.php'>"; return; }else{ if($_GET['username']!=null) { $sql1 = "select * from shop WHERE username = '".$_GET['username']."'"; $result1 = mysqli_query($conn,$sql1) or die("数据查找失败!"); $row1 = mysqli_fetch_row($result1); if($row1[0]){ $_SESSION['username']=$row1[0]; echo "<script>alert('密码错误!');</script></a>"; }else{ echo "<script> alert('用户名不存在,请先进行注册'); </script>"; echo "<meta http-equiv='Refresh' content='0;URL=zhuce.php'>"; } } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>登录</title> <!--用百度的静态资源库的cdn安装bootstrap环境--> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript" src="js/jquery.validate.min.js"></script> <script type="text/javascript" src="js/messages_zh.js"></script> <!-- Bootstrap 核心 CSS 文件 --> <link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"> <!--font-awesome 核心我CSS 文件--> <link href="//cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> <!-- 在bootstrap.min.js 之前引入 --> <script src="http://apps.bdimg.com/libs/jquery/2.0.0/jquery.min.js"></script> <!-- Bootstrap 核心 JavaScript 文件 --> <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--jquery.validate--> <script type="text/javascript" src="js/jquery.validate.min.js" ></script> <script type="text/javascript" src="js/message.js" ></script> <style type="text/css"> body{background: url(img/1.jpg) no-repeat;background-size:cover;font-size: 16px;} .form{background: rgba(255,255,255,0.2);width:400px;margin:100px auto;} #login_form{display: block;} .fa{display: inline-block;top: 27px;left: 6px;position: relative;color: #ccc;} input[type="text"],input[type="password"]{padding-left:26px;} .checkbox{padding-left:21px;} input.error { border: 1px solid red; } label.error { font-weight: bold; color: red; } /*.form-group{*/ /*border: 1px solid red;*/ /*}*/ </style> <script> $(function () { $("#login_form").validate({ rules:{ username:{ required:true, }, password:{ required:true, }, code:{ required:true } }, messages:{ username:{ required:"账号不能为空!", }, password:{ required:"密码不能为空!", }, code:{ required:"验证码不能为空" } } }); }); </script> </head> <body> <!-- 基础知识: 网格系统:通过行和列布局 行必须放在container内 手机用col-xs-* 平板用col-sm-* 笔记本或普通台式电脑用col-md-* 大型设备台式电脑用col-lg-* 为了兼容多个设备,可以用多个col-*-*来控制; --> <div class="container"> <div class="form row"> <form class="form-horizontal col-sm-offset-3 col-md-offset-3" id="login_form" action="directlogin.php" method="get"> <h3 class="form-title">用户登录</h3> <div class="col-sm-9 col-md-9"> <div class="form-group"> <i class="fa fa-user fa-lg"></i> <input name="username" class="form-control required" type="text" placeholder="Username" name="username" autofocus="autofocus" maxlength="20"/> </div> <div class="form-group"> <i class="fa fa-lock fa-lg"></i> <input name="password"class="form-control required" type="password" placeholder="Password" name="password" maxlength="8"/> </div> <div class="form-inline" > <input name="code"class="form-control" placeholder="Verification Code" name="yzm" maxlength="8" style="width: 90px"/> <img src="yanzhengma.php" onClick="this.src='yanzhengma.php?nocache='+Math.random()" style="cursor:hand" alt="点击换一张"/> </div> <div class="form-group"> <label class="checkbox"> <input type="checkbox" name="remember" value="1"/>记住我 <a href="findingmima.php">密码找回</a> </label> <hr /> <a href="zhuce.php" id="register_btn" class="">注册</a> <a href="#" id="register_btn" class="">游客</a> <a href="administrators.php" id="register_btn" class="">管理员登录</a> </div> <div class="form-group"> <input type="submit" class="btn btn-success pull-right" value="Login "/> </div> </div> </form> </div> </body> </html>
findingmima.php:
<?php /** * Created by PhpStorm. * User: 杨雄豪 * Date: 2020/5/31 * Time: 11:26 */ header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式 include_once("conn/conn.php"); session_start(); $name = $_SESSION['username']; $sql = "select * from shop WHERE username = '".$name."'"; $result = mysqli_query($conn,$sql) or die("数据查找失败!"); $row = mysqli_fetch_row($result); echo "您的密码为: "; echo $row[1];
yanzhengma.php:
<?php /** * Created by PhpStorm. * User: 杨雄豪 * Date: 2020/5/17 * Time: 18:10 */ session_start(); //设置session,一定要在顶部 $width = 100; //设置图片宽为300像素 $height = 30; //设置图片高为40像素 $image = imagecreatetruecolor($width, $height); //设置验证码大小的函数 $bgcolor = imagecolorallocate($image, 255, 255, 255); //验证码颜色RGB为(255,255,255)#ffffff imagefill($image, 0, 0, $bgcolor); //区域填充 $cap_code = ""; for($i=0;$i<4;$i++){ $fontsize = 7; //设置字体大小 $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120)); //数字越大,颜色越浅,这里是深颜色0-120 $fontcontent = rand(0,9); $cap_code.=$fontcontent; //.=连续定义变量 $x = ($i*100/4)+rand(5,10); $y = rand(0,5); //设置坐标 imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor); } $_SESSION['code'] = $cap_code; //存到session //设置干扰元素,设置雪花点 for($i=0;$i<300;$i++){ $inputcolor = imagecolorallocate($image, rand(50,200), rand(20,200), rand(50,200)); //设置颜色,20-200颜色比数字浅,不干扰阅读 imagesetpixel($image, rand(1,149), rand(1,39), $inputcolor); //画一个单一像素的元素 } //增加干扰元素,设置横线(先设置线的颜色,在设置横线) for ($i=0;$i<4;$i++) { $linecolor = imagecolorallocate($image, rand(20,220), rand(20,220),rand(20,220)); //设置线的颜色 imageline($image, rand(1,149), rand(1,39), rand(1,299), rand(1,149), $linecolor); } //因为有些浏览器,访问的content-type会是文本型(乱码),所以我们需要设置成图片的格式类型 header('Content-Type:image/png'); imagepng($image); //建立png函数 imagedestroy($image); //结束图形函数,消除$image ?>
zhuce.php
<?php /** * Created by PhpStorm. * User: 杨雄豪 * Date: 2020/5/13 * Time: 22:35 */ error_reporting(0); header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式 include_once("conn/conn.php"); $sql = "select * from shop WHERE username = '".$_GET['username']."'"; $result = mysqli_query($conn,$sql) or die("数据查找失败!"); $row = mysqli_fetch_row($result); if($row[0]){ echo "<script>alert('用户名已存在!');</script>"; }else { if($_GET["username"]!=null) { $sql = "INSERT INTO shop( `username`, `password`, `phone`,`email`,`salt`, `type`) VALUES ('" . $_GET["username"] . "','" . $_GET["password"] . "','" . $_GET["phone"] . "','" . $_GET["email"] . "','0','user')"; $result = mysqli_query($conn, $sql) or die("数据插入失败!"); echo "<script>alert('注册成功!');</script>"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>用户注册</title> <!--用百度的静态资源库的cdn安装bootstrap环境--> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <!-- Bootstrap 核心 CSS 文件 --> <link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"> <!--font-awesome 核心我CSS 文件--> <link href="//cdn.bootcss.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet"> <!-- 在bootstrap.min.js 之前引入 --> <script src="http://apps.bdimg.com/libs/jquery/2.0.0/jquery.min.js"></script> <!-- Bootstrap 核心 JavaScript 文件 --> <script src="http://apps.bdimg.com/libs/bootstrap/3.3.0/js/bootstrap.min.js"></script> <!--jquery.validate--> <script type="text/javascript" src="js/jquery.validate.min.js" ></script> <script type="text/javascript" src="js/message.js" ></script> <style type="text/css"> body{background: url(img/1.jpg) no-repeat;background-size:cover;font-size: 16px;} .form{background: rgba(255,255,255,0.2);width:400px;margin:100px auto;} .fa{display: inline-block;top: 27px;left: 6px;position: relative;color: #ccc;} input[type="text"],input[type="password"]{padding-left:26px;} .checkbox{padding-left:21px;} input.error { border: 1px solid red; } label.error { font-weight: bold; color: red; } </style> <script> $(function () { $.validator.addMethod("isMobile", function(value, element) { var length = value.length; var mobile =/^1\d{10}$/; return this.optional(element) || (mobile.test(value)); }, "请正确填写您的手机号码"); $.validator.addMethod("isPassword", function(value, element) { var length = value.length; var mobile =/^1\d{5}$/; return this.optional(element) || (mobile.test(value)); }, "请设置六位以上的密码"); $.validator.addMethod("isEmail", function(value, element) { var length = value.length; var mobile = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; return this.optional(element) || (mobile.test(value)); }, "请正确填写您的邮箱"); $("#register_form").validate({ rules: { username: "required", password: { required: true, isPassword:true }, rpassword: { equalTo: "#register_password" }, phone:{ required:true, isMobile:true }, email: { required: true, isEmail:true }, }, messages: { username: "请输入姓名", password: { isPassword:"请设置六位以上的密码", required: "请输入密码" }, rpassword: { equalTo: "两次密码不一样" }, phone:{ required:"请输入手机号", isMobile:"请输入有效手机号" }, email: { required: "请输入邮箱", isEmail:"请正确填写您的邮箱" } } }); }); </script> </head> <body> <!-- 基础知识: 网格系统:通过行和列布局 行必须放在container内 手机用col-xs-* 平板用col-sm-* 笔记本或普通台式电脑用col-md-* 大型设备台式电脑用col-lg-* 为了兼容多个设备,可以用多个col-*-*来控制; --> <div class="container"> <div class="form row"> <form class="form-horizontal col-sm-offset-3 col-md-offset-3" id="register_form" action="zhuce.php"> <i><h3 class="form-title">用户注册</h3></i> <div class="col-sm-9 col-md-9"> <div class="form-group"> <i class="fa fa-user fa-lg"></i> <input class="form-control required" type="text" placeholder="Username" name="username" autofocus="autofocus"/> </div> <div class="form-group"> <i class="fa fa-lock fa-lg"></i> <input class="form-control required" type="password" placeholder="Password" id="register_password" name="password"/> </div> <div class="form-group"> <i class="fa fa-check fa-lg"></i> <input class="form-control required" type="password" placeholder="Re-type Your Password" name="rpassword"/> </div> <div class="form-group"> <i class="fa fa-tty" aria-hidden="true"></i> <input class="form-control required" type="text" placeholder="Phone" name="phone"/> </div> <div class="form-group"> <i class="fa fa-envelope fa-lg"></i> <input class="form-control eamil" type="text" placeholder="Email" name="email"/> </div> <div class="form-group"> <input type="submit" class="btn btn-success pull-right" value="确定"/> <input type="button" class="btn btn-info pull-left" id="back_btn" onclick="window.location.href='http://localhost:63342/Shopping/directlogin.php?_ijt=7tdnegg1npd1jm79hh76k4el1e'" value="登录"/> </div> </div> </form> </div> </body> </html>