脚本巴巴 www.jiaoben88.com

广告路由器开发实践

发布时间:2014-09-25 19:41:08编辑:脚本巴巴
本篇文章主要分享广告路由器开发实践,以下示例代码使用了phalcon框架进行书写(只是演示用而已),有需要的朋友可以了解下。

  上篇文章中分析了wifidog下authpuppy之间的数据流这篇文章中我就介绍一下如何书写一个简单的广告路由器

  经过以上分析不难看出 实现一个广告路由器还是非常简单的

  由于我本人对symfony框架不感冒 故以下示例代码使用了phalcon框架进行书写(只是演示用而已)


<?php

namespace controllers;

class InterfaceController extends \Phalcon\Mvc\Controller
{

 public function initialize( )
 {
 
 }

 public function indexAction( )
 {
 }

 public function loginAction( )
 {
  if( $this->request->isGet() && null == $this->request->getQuery( 'advs' ) )
  {
   $strDebug = var_export( $_SERVER, true );
   
   $this->view->setVar( 'iRefreshTime', 10 ); //广告时间10秒
   $this->view->setVar( 'url', $this->request->getServer( 'REQUEST_URI' ) . '&advs=advs' );

   $this->view->pick( 'interface/advs' );//这里展示广告
  }
  else
  {
   $this->view->disable();
   
   $strToken = sha1( rand() . time() );
   $this->persistent->set( 'redirectUrl', $this->request->getQuery( 'url' ));
   $this->response->redirect( 'http://' . $this->request->get( 'gw_address' ) . ':' . $this->request->get( 'gw_port' ) . '/wifidog/auth?token=' . $strToken, true );
  }
 
 }

 public function logoutAction( )
 {
  echo 'Auth:0';
 }

 public function portalAction( )
 {//广告过后在此函数内进行跳转
  $this->view->disable();
  if( null != $strUrl = $this->persistent->get( 'redirectUrl' ) )
  {
   $this->response->redirect( $strUrl, true );
  }
  else 
  {
   $this->response->redirect( 'http://blog.csdn.net/qzfzz', true );
  }
 }

 public function pingAction( )
 {
  echo 'Pong';
 }

 public function msgAction( )
 {
 }

 public function authAction( )
 {
  echo 'Auth: 1';
 }

}


  以下为视图

<!--advs.phtml-->
<!doctype html
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $iRefreshTime;?>;url=<?php echo $url;?>"/>
<title>Login</title>
</head>
<body>
<p>这里可以展示广告等信息</p>
</body>
</html>

  经过以上的开发一个简单的广告路由器即完成了

上一篇:广告路由器开发数据流
下一篇:HSRP技术在MDCN网中的应用

相关文章