<pre name="code" class="python">#

本节课大纲:
一、空模块和空操作
1、空操作
function _empty($name){
$this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>");
}
2.空模块
class EmptyAction extends Action{
function index(){
$city=M('City');
$arr=$city->select();
$this->assign('list',$arr);
$name=MODULE_NAME;
$this->display("City:$name");
}
} 二、前置操作和后置操作
1、前置操作: _before_操作名
2、后置操作: _after_操作名 方法代码重用: 类:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
$city=M('city'); //返回Model实例
//返回数组
$arr=$city->select();
//dump($arr);
$this->assign('list',$arr);
$this->display();
} public function next(){
$this->display();
}
} 调用Index 控制器的index方法: <?php
class CityAction extends Action{
function bj(){
// new一个对象
$oi=new IndexAction();
// 调用对象的方法
$oi->index();
} function sh(){
$oi=new IndexAction();
$oi->index();
} function gz(){
$oi=new IndexAction();
$oi->index();
} function _empty($name){
$this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>");
}
} ?> <!-- Login模块下的do_login处理 -->
<form action="__URL__/do_login" method='post'> 解析成: <!-- Login模块下的do_login处理 -->
<form action="/thinkphp3/index.php/Login/do_login" method='post'> ///用户访问菜单页面,必须登录,判断用户是否登录
<?php
class LoginAction extends Action{
function index(){
$this->display(); }
public function do_login() {
$username=$_POST['username'];
$password=$_POST['password'];
$user=M('user');
$where['username']=$username;
$where['passord']=$password;
$c=$user->where($where)->count(); if ($c>0){
//向SESSION里写数据
$_SESSION['username']=$username;
$this->redirect('Index/index');
}else{
$this->error('用户不能登录');
} }
}
?> <!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body> <!-- Login模块下的do_login处理 -->
<form action="__URL__/do_login" method='post'>
用户名:<input type='text' name='username'/><br/> 密码:<input type='password' name='password'/><br/> <input type='submit' value='登录'/>
</form>
</body>
</html> <?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function _before_index(){
//做判断,如果没有登录,跳转到登录页面
if(!isset($_SESSION['username']) || $_SESSION['username']=='')
{
$this->redirect('Login/index');
} }
public function index(){
$city=M('city'); //返回Model实例
//返回数组
$arr=$city->select();
//dump($arr);
$this->assign('list',$arr);
$this->display();
} public function next(){
$this->display();
}
}
												

php 用户访问菜单页面,必须登录,判断用户是否登录的更多相关文章

  1. 使用HTML5里页面可见性接口判断用户是否正在观看你的页面

    转自:http://www.webhek.com/page-visibility 长期以来我们一直缺少一个判断用户是否正在浏览某个指定标签页的方法.用户是否去看别的网站了?他们切换回来了么?现在,HT ...

  2. 【转】【可用】Android 登录判断器,登录成功后帮你准确跳转到目标activity

    我们在使用应用时肯定遇到过这样的情景,打开应用,并不是需要我们登录,你可以浏览应用中的大部分页面,但是当你想看某个详情页的时候,点击后突然跳转到了登录页面,好,我们输入账号密码,点击登录,登录成功,跳 ...

  3. MVC项目中如何判断用户是在用什么设备进行访问

    使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑) 现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为 ...

  4. (26)基于cookie的登陆认证(写入cookie、删除cookie、登陆后所有域下的网页都可访问、登陆成功跳转至用户开始访问的页面、使用装饰器完成所有页面的登陆认证)

    获取cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age ...

  5. 使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑)

    现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为手机设备专门准备一套前端的页面.这样当用户使用普通电脑来访问的时候,我们的应用就向用户展示普通电脑的页 ...

  6. WEB用户访问控制方法

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 一直以来,我对用户/权 ...

  7. 第二百六十九节,Tornado框架-Session登录判断

    Tornado框架-Session登录判断 Session需要结合cookie来实现 Session的理解 1.用户登录系统时,服务器端获取系统当前时间,进行nd5加密,得到加密后的密串 2.将密串作 ...

  8. CentOS 6下配置本地用户访问vsftpd并赋予写权限

    一.安装并测试可用性 1.安装命令 yum install vsftpd 2.配置防火墙,加入一行 -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT 在其它机测试 ...

  9. Java 利用监听器来实现记录用户访问网站次数

    假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话 ...

随机推荐

  1. eclipse修改编译路径

    右击项目--properties--java build path--点击source,修改最下方的路径即可

  2. linux:如何修改用户的密码

    1.首先,要用CRT软件连接Linux系统. 2.首选,确认是用root用户登录系统的. 输入命令: id ,查看登录用户信息. 3.若修改root自己的密码,直接输入 passwd . 输入两遍,新 ...

  3. BZOJ 1316: 树上的询问( 点分治 + 平衡树 )

    直接点分治, 用平衡树(set就行了...)维护. -------------------------------------------------------------------------- ...

  4. codeforces 609E. Minimum spanning tree for each edge 树链剖分

    题目链接 给一个n个节点m条边的树, 每条边有权值, 输出m个数, 每个数代表包含这条边的最小生成树的值. 先将最小生成树求出来, 把树边都标记. 然后对标记的边的两个端点, 我们add(u, v), ...

  5. poj 1269 计算几何

    /** 判断直线位置关系 **/ #include <iostream> #include <cmath> #include <cstdio> using name ...

  6. IOS 播放音频

    1,播放短音频 #import <AudioToolbox/AudioToolbox.h>#import "GLYViewController.h"static voi ...

  7. DC游戏《斑鸠》原创赏析[转载]

    游戏背景:      凤来之国本来只是边远地区的一个小国.但现在他们却自称为得到“神之力”的“神通者”,在“选民思想”“和平统一”之类的名义下开始了对各地的武力侵略.      事情的起因是因为凤来之 ...

  8. QQwry

    http://blog.runphp.net/archives/156 http://wenku.baidu.com/link?url=yvd3_EpMM66r6H4qkx3oqcaU2JZNAQv_ ...

  9. Strata 2014 上的 AzureCAT 粉笔会谈

     本周,AzureCAT 团队非常高兴在 Strata 会议上首次集体亮相.对于那些对 AzureCAT 团队不太熟悉的人来说,我们是 Microsoft 云与企业部门一个核心的国际性团队,由大约 ...

  10. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

     如果某企业在 Windows Azure 上托管某个应用程序,该应用程序会在某个特定时间暴露到 Internet,以用于商业用途.公共 Internet 带来 客户的同时也带来了攻击者. Tim ...