array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 php生成随机验证码 - 爱码网
1、创建一个code.php文件,来生成随机验证码图片
1
<?php 2 /** 3 * Created by PhpStorm. 4 * User: ping 5 * Date: 2018/9/19 6 * Time: 9:44 7 */ 8 session_start();//开启session 9 //定义要创建图片的类型为png 10 header ('Content-Type: image/png'); 11 //创建一个真彩色图像 12 $image=imagecreatetruecolor(100, 30); 13 //定义图片的颜色 14 $color=imagecolorallocate($image, 255, 255, 255); 15 //填充画布颜色 16 imagefill($image, 20, 20, $color); 17 $code=''; 18 //生成随机4个数 19 for($i=0;$i<4;$i++){ 20 $fontSize=8; 21 $x=rand(5,10)+$i*100/4;//生成横坐标位置,防止横向不重叠 22 $y=rand(5, 15); 23 $data='abcdefghijklmnopqrstuvwxyz123456789';//定义字符串 24 $string=substr($data,rand(0, strlen($data)),1);//使用substr随机截取一个字符 25 $code.=$string;//将截取出来的字符拼接成字符串 26 $color=imagecolorallocate($image,rand(0,120), rand(0,120), rand(0,120));//产生一个随机色 27 imagestring($image, $fontSize, $x, $y, $string, $color);//将字符放到画布上 28 } 29 30 $_SESSION['code']=$code;//将随机产生的字符串存储在session里 31 setcookie(session_name(),session_id(),time()+3600,"/");//设置session的过期时间和路径 32 //生成200个点 33 for($i=0;$i<200;$i++){ 34 $pointColor=imagecolorallocate($image, rand(100, 255), rand(100, 255), rand(100, 255));//生成一个随机色,作为点的颜色 35 imagesetpixel($image, rand(0, 100), rand(0, 30), $pointColor);//将点放到画布 36 } 37 //生成横线 38 for($i=0;$i<2;$i++){ 39 $linePoint=imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255));//生成随机色,作为横线的颜色 40 imageline($image, rand(10, 50), rand(10, 20), rand(80,90), rand(15, 25), $linePoint); 41 } 42 imagepng($image); //在浏览器上显示图片 43 imagedestroy($image);//销毁图片 44 ?>

2、login.php登录界面引入生成的随机验证码图片

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: ping
 5  * Date: 2018/9/17
 6  * Time: 14:10
 7  */
 8 include "header.php";
 9 ?>
10 <!doctype html>
11 <html lang="en">
12 <head>
13     <meta charset="UTF-8">
14     <meta name="viewport"
15           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
16     <meta http-equiv="X-UA-Compatible" content="ie=edge">
17     <title>Document</title>
18     <script src="../public/lib/jQuery/jquery-3.3.1.js"></script>
19 </head>
20 <body>
21 <!--action="../controller/handel.php"将登录界面传送到后台handel.php验证-->
22 <form action="../controller/handel.php" method="post">
23 <!--    传入一个隐藏的输入框,用于提交到后台,验证是哪个页面传来的值-->
24     <input type="hidden" value="login" name="methods">
25     <lable>用户名:</lable><input type="text" name="username"><br>
26     <lable>密 码:</lable><input type="password" name="pwd"><br>
27     验证吗:<input type="text" name="code" >
28 <!--            以插入图片的形式引入code.php-->
29     <img src="code.php" alt="" id="inputcode">
30     <span>点击图片刷新</span><br>
31     <input type="submit" value="登录">
32 </form>
33 <script>
34     //点击图片重新加载一个验证码图片
35     $("#inputcode").click(function () {
36        $(this).attr("src","captcha.php");
37     })
38 </script>
39 </body>
40 
41 </html>

3.在Handel.php里面接收登录界面传来的值进行验证

<?php
if ($route == "login"){
    $code = $_POST["code"];//接收login.php传过来的用户输入的代码
    if ($code == $_SESSION['code']){//判断session里存的code和用户输入的code是否一致
        echo "<script>window.location='../view/login.php';alert('验证码验证成功,请重新输入!!')</script>";
    }else{
        echo "<script>window.location='../view/login.php';alert('验证码不正确,请重新输入!!')</script>";
    }

}
?>

 

相关文章: