控制器

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){ $this->display(); }
}

images放入public里

模板/index/里 images全部替换为__PUBLIC__/images

生成验证码函数

public function verify(){
import('ORG.Util.Image');
Image::buildImageVerify(4,5,'png',80,25); }

测试http://localhost/myapp/admin.php/Index/verify

模板中验证码的获取方法<img src={:U(verify)} id="valiCode"  onclick="document.getElementById('valiCode').src='{:U(verify)}'"/>

后台模板完成

验证原理检测,模板里改

<form action="{:U('login','','')}" method="POST">

控制器写入方法

public function login(){ dump($_POST); }

如果dump得到的值为空,可能是input里没有定义name赋值

后台登陆代码

<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){ $this->display(); }
public function login(){
if(!IS_POST) halt('页面不存在');//假如不是页面上提交的,而是直接输入的post地址
if (I('yzm','','md5') != session('verify')){//假如post验证码不等于session验证码
$this->error('验证码错误'); }
$username = I('username');//post到的username
$pwd = I('password','','md5');
$user = M('user')->where(array('username'=>$username))->find();//select $username where from user
//dump($user);
if (!$user || $user['password'] != $pwd ) {//假如$user不为真,或者post密码不等于数据库密码
$this->error('账号或密码错误!');
} dump($user);
$data = array(
'id'=>$user['id'],
'logintimes'=>time(),
'loginip'=>get_client_ip(),
);
dump($data); M('user')->save($data);
session('uid',$user['id']);
session('username',$user['username']);
session('logintimes',date('Y-m-d H:i:s',$user['logintimes']));
session('loginip',$user['loginip']);
$this->redirect('admin'); } public function admin(){
echo hahahaha; } public function verify(){
import('ORG.Util.Image');//引进验证码图片
Image::buildImageVerify(4,1,'png');//数量4个,数字型,png后缀 } }

直接输入http://localhost/myapp/admin.php/Index/admin.html的话就直接到后台了,绕过了验证

自动运行控制器,检测是否存在SESSION,防止通过输入后台地址直接进入后台,后台的功能都要继承它

<?php
Class CommonAction extends Action {
Public function _initialize(){//自动运行函数
if(!isset($_SESSION['uid']) || !isset($_SESSION['username'])){//假如SESSION没有被写入,即本地不存在cookie
$this->redirect('Index/index');//跳转
} } } ?>

后台登陆功能的实现 SESSION的更多相关文章

  1. 如何实现免登陆功能(cookie session?)

    Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能. Cookie的Domain和Path属性标识 ...

  2. 从零开始编写自己的C#框架(15)——Web层后端登陆功能

    对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置 ...

  3. Dedecms织梦后台登陆验证码不显示几种解决方法

    Dedecms织梦后台登陆验证码不显示几种解决方法,服务器所造成的验证码不显示问题看这里: 方法一:查看服务器的php版本是否与程序版本兼容(织梦程序PHP版本查看方法:打开www.96net.com ...

  4. SpringSceurity(5)---短信验证码登陆功能

    SpringSceurity(5)---短信验证码登陆功能 有关SpringSceurity系列之前有写文章 1.SpringSecurity(1)---认证+授权代码实现 2.SpringSecur ...

  5. [.NET领域驱动设计实战系列]专题七:DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能

    一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己的订单状态看到店家已经发货.从上面的业务逻辑可以看出,当用户 ...

  6. DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能

    DDD实践案例:引入事件驱动与中间件机制来实现后台管理功能 一.引言 在当前的电子商务平台中,用户下完订单之后,然后店家会在后台看到客户下的订单,然后店家可以对客户的订单进行发货操作.此时客户会在自己 ...

  7. JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现

    一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...

  8. [nodejs] nodejs开发个人博客(七)后台登陆

    定义后台路径 访问这个路径进入后台页面 http://localhost:8888/admin/login 在后台路由控制器里面(/admin/index.js)调用登陆控制器(/admin/logi ...

  9. ECshop后台新功能权限添加

    ecshop后台新功能权限的添加 1.在后台“推荐管理”里添加“推荐人分成”.“会员分成”两个操作功能以及权限 index.php?act=menu incluedes/inc_priv.php:权限 ...

随机推荐

  1. mvn 编译错误java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init>(Z)V

    Spring+struts2 +hibernate3集成,在后台测试时报的错,报错的这句话: Exception in thread "main" java.lang.NoSuch ...

  2. git config 的全局配置

    使用git的全局配置   .gitconfig 一:修改 用户下的.gitconfig 修改如图信息,添加你的信息 二: 命令添加 $ git config --global user.name   ...

  3. 软件调试工具——GDB

    1.GDB调试器概述 GDB是GNU开源组织发布的一个强大的程序调试工具,具有查看程序运行状态.设置断点.查看表达式.显示变量等众多功能,是程序员进行Linux编程必须要掌握的一种调试技术. GDB调 ...

  4. HDoj-2095-与众不同

    Problem Description In the new year party, everybody will get a "special present".Now it's ...

  5. 安装TeX及中文支持

    2014.7.19更新: 以下的笔记适用于在基于Ubuntu的发行版(比方LinuxMint)安装Texlive2013.2014: 第一步依据本机状况.可能不须要. Texlive2014已经能够下 ...

  6. STL之hashtable源代码剖析

    // Filename: stl_hashtable.h /////////////////////////////////////////////////////////////////////// ...

  7. taro 更新

    更新 Taro 提供了更新命令来更新 CLI 工具自身和项目中 Taro 相关的依赖 更新 Taro CLI 工具 # taro $ taro update self # npm npm i -g @ ...

  8. ssh-keygen - 生成、管理和转换认证密钥

    通常使用:[b]ssh-keygen -i -f 公密匙名>> authorized_keys[/b]语法详细介绍[code]ssh-keygen [-q] [-b bits] -t ty ...

  9. 查看80port是否被占用

    windows下命令: netstat -ano|findstr "0.0:80"

  10. pycharm 控制台字体背景颜色设定让你美到爆

    还在为你控制台字体颜色不入眼而发愁吗? 在某些特殊时刻想要改变下字体的颜色却无从下手而发愁吗? 那你就进来看一看,瞧一瞧,之需看2分钟,花2分钟理解,花3分钟练练手就能让你的控制能字体炫酷起来! 一. ...