PHP的简单跳转提示的实现详解

在PHP开发中,尤其是MVC框架或者项目中,会碰到很多跳转情况,比如:登录成功或失败后的跳转等等。

以下以MVC框架开发中为基础,示例讲解:

在基础控制器类中:Conrtoller.class.php

<?php

/**
 * 基础控制器类
 */
class Controller {
  /**
   * 跳转
   * $url 目标url
   * $info 提示信息
   * $time 等待时间(单位秒)
   */
  protected function jump($url,$info=NULL,$time=3) {
    //判断是立即跳转还是刷新跳转
    if(is_null($info)) {
      //立即跳转
      header('location:'. $url);
      die;
    } else {
      //刷新跳转,给出提示
      echo <<<TIAOZHUAN
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>提示信息</title>
<style type='text/css'>
  * {margin:0; padding:0;}
  div {width:390px; height:287px; border:1px #09C solid; position:absolute; left:50%; margin-left:-195px; top:10%;}
  div h2 {width:100%; height:30px; line-height:30px; background-color:#09C; font-size:14px; color:#FFF; text-indent:10px;}
  div p {height:120px; line-height:120px; text-align:center;}
  div p strong {font-size:26px;}
</style>
<div>
  <h2>提示信息</h2>
  <p>
    <strong>$info</strong><br />
    页面在<span id="second">$time</span>秒后会自动跳转,或点击<a id="tiao" href="$url" rel="external nofollow" >立即跳转</a>
  </p>
</div>
<script type="text/javascript">
  var url = document.getElementById('tiao').href;
  function daoshu(){
    var scd = document.getElementById('second');
    var time = --scd.innerHTML;
    if(time<=0){
      window.location.href = url;
      clearInterval(mytime);
    }
  }
  var mytime = setInterval("daoshu()",1000);
</script>
TIAOZHUAN;
    die;
    }
  }

}

在MVC的自动加载中,将Controller.class.php进行自动加载注册

通过不同控制器类继承上面的Controller.class.php基础控制器类后,就可以调用定义的跳转提示。

<?php

/**
 * 后台管理员控制器(登录、注销、管理员的增删改查等)
 */
class AdminController extends Controller {
  /**
   * 展示登录表单动作
   */
  public function loginAction() {
    // 载入当前的视图文件
    $this->display('login.html');
  }
  /**
   * 后台注销功能
   */
  public function logoutAction() {
    @session_start();
    // 删除相关会话数据
    unset($_SESSION['adminInfo']);
    // 删除会话数据区
    session_destroy();
    // 立即跳转到登录页面
    $this->jump('index.php?c=Admin&a=login','您已退出后台登录!');
  }
}

当然,这里是在MVC中实现的,你也可以把jump()单独提出来进行使用。

附上一个效果图:

以上所述是小编给大家介绍的PHP的简单跳转提示的实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • PHP-FPM的配置与优化讲解

    PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,用于管理 PHP 进程池.接收和处理 Web 服务器的请求.PHP-FPM 会创建一个主进程,控制何时以及如何把 HTTP 请求转发给一个或多个子进程处理. 全局配置 emergency_restart_threshold = 60(建议值) 如果子进程在 emergency_restart_interval 设定的时间内收到该参数设定次数的 SIGSEGV 或者 SIGB

  • PHP标准库(PHP SPL)详解

    什么是SPL? SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟.SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置. 似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻.究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」.SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海底.而现在它应该被我们捞起,并将它穿戴在应有的位置 ,而这也是这篇文章所要表述的观点.

  • php-fpm中max_children的配置

    现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置 首先,我们关注一个设置: pm = static/dynamic, 这个选项是标识fpm子进程的产生模式: static :表示在fpm运行时直接fork出pm.max_chindren个worker进程 dynamic:表示,运行时fork出start_servers个进程,随着负载的情况,动态的调整,最多不超过max_children个进程. 一般推荐用static,优点是不用动态的判断

  • 浅谈PHP无限极分类原理

    1.递归:程序调用自身的编程技巧称为递归 2.案例: /** * @param 递归 $[name] */ function deeploop(&$i=1){ echo $i; $i++; if($i < 10){ deeploop($i); } } deeploop(); 结果:123456789 3.global /** * @param 递归 $[name] */ $i = 1; function deeploop(){ global $i; //Global的作用是定义全局变量,但是

  • 详解PHP队列的实现

    队列是一种特殊的线性表,它只允许在表的前端,可以称之为front,进行删除操作:而在表的后端,可以称之为rear进行插入操作.队列和堆栈一样,是一种操作受限制的线性表,和堆栈不同之处在于:队列是遵循"先进先出"原则,而堆栈遵循的是"先进后出"原则.队列进行插入操作的端称为队尾,进行删除操作的称为队头,只允许在队尾进行插入操作,在队头进行删除操作. 队列的数据元素又称为队列元素,在队尾中插入一个元素称为入队,在队头删除一个元素称为出队.具体实现参考代码: <?p

  • 使用Zookeeper分布式部署PHP应用程序

    Zookper是一种分布式的,开源的,应用于分布式应用的协作服务.它提供了一些简单的操作,使得分布式应用可以基于这些接口实现诸如同步.配置维护和分集群或者命名的服务.Zookper很容易编程接入,它使用了一个和文件树结构相似的数据模型. 虽然ZooKeeper是一个Java应用程序,但C也可以使用.这里就有个PHP的扩展,你可以从PECL中下载,或从GitHub中直接获取PHP-ZooKeeper. 要使用该扩展你首先要安装ZooKeeper.可以从官方网站下载. $ tar zxfv zook

  • PHP PDO数据库操作预处理与注意事项

    PDO(PHP Database Object)扩展为PHP访问数据库定义了一个轻量级的.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据.在数据库操作方面更加安全更加高效! PDO为PHP访问各类数据库定义了一个轻量级一致性的接口,无论什么数据库,都可以通过一致的方法执行查询和获取数据,而不用考虑不同数据库之间的差异,大大简化了数据库操作.使用PDO可以支持mysql.postgresql.oracle.mssql等多种数据库. 什么是

  • PHP封装的数据库模型Model类完整示例【基于PDO】

    本文实例讲述了PHP封装的数据库模型Model类.分享给大家供大家参考,具体如下: <?php //引入配置文件 include "../Config/config.php"; class Model extends PDO { protected $tableName = "";//存储表名 protected $sql = "";//存储最后执行的SQL语句 protected $limit = "";//存储lim

  • php生成word并下载代码实例

    本文实例讲述了php如何生成word并下载的具体实例.分享给大家供大家参考,具体如下: 1.前端代码 <!DOCTYPE html> <html> <head> <title>PHP生成Word文档</title> <meta charset="utf-8"> </head> <body> <h1 style="text-align: center">xxx的

  • PHP精确到毫秒秒杀倒计时实例详解

    精确到毫秒秒杀倒计时PHP源码实例,前台js活动展示倒计时,后台计算倒计时时间.每0.1秒定时刷新活动倒计时时间. PHP: // 注意:php的时间是以秒算.js的时间以毫秒算 // 设置时区 date_default_timezone_set('PRC'); //配置每天的活动时间段 $starttimestr = date('Y-m-d H:i:s', strtotime(date('Y-m-d'))); $endtimestr = date('Y-m-d H:i:s', strtotim

随机推荐