上篇文章中分析了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>
经过以上的开发一个简单的广告路由器即完成了
时间: 2024-10-09 16:25:43