ホームページ  >  記事  >  php教程  >  ZendFrame は投票モジュールを実装します

ZendFrame は投票モジュールを実装します

WBOY
WBOYオリジナル
2016-06-21 08:48:47865ブラウズ

アイデア分析: ユーザーの IP を取得し、IP が無効になっているかどうかを判断し、今日投資があるかどうかを判断し、対応する操作を実行します。

主な手順は次のとおりです:

プロジェクトが指定されたデータベースに接続できるように application.ini を構成します

[mysql]

db.adapter = PDO_MYSQL

db.params.host = localhost

db.params.username = root

db.params.password =

db.params.dbname=votedb

データベースアダプターを初期化します

// 他のコントローラー専用の親クラスを作成して

から継承します

クラス BaseController extends Zend_Controller_Action{

パブリック関数 init(){

//データベースアダプターを初期化します

$url = constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';

$dbconfig = new Zend_Config_Ini($url,"mysql");

$db = Zend_Db::factory($dbconfig->db);

Zend_Db_Table::setDefaultAdapter($db);

}

}

//テーブルモデルを作成

//これは Zend_db_Table を継承する必要があります。そうでない場合はテーブル モデルになりません

クラス項目は Zend_Db_Table を拡張します{

protected $_name = 'item';

}

//投票コントローラ

require_once 'BaseController.php';

require_once APPLICATION_PATH.'/models/Item.php';

require_once APPLICATION_PATH.'/models/Filter.php';

require_once APPLICATION_PATH.'/models/VoteLog.php';

クラス VoteController は BaseController を拡張します{

パブリック関数 voteAction(){

$item_id = $this->getRequest()->getParam('itemid','no'); // ID を取得します

//IP アドレスの取得に使用 $_SERVER['REMOTE_ADDR']

$ip = $this->getRequest()->getServer('REMOTE_ADDR');

//この IP が禁止されているかどうかを確認します

$filterModel = new Filter();

$filters = $filterModel->fetchAll("ip='$ip'")->toArray();

if(count($filters)>=1){

$this->view->info="あなたは警察に利用されています!";

//成功しました。グローバル ビューにジャンプします

$this->_forward('err','global');

戻る;

}

//まず、voteLOG テーブルが今日 1 回通過したかどうかを確認します

$today=date('Ymd');//今日の時刻

$voteLogModel = new VoteLog();

$where = "ip='$ip' AND vote_date=$today";

$res = $voteLogModel->fetchAll($where)->toArray();

if(count($res)>0){ //0 より大きい場合は、すでに投票済みであることを意味します

$this->render('error');

戻る ;

}その他{

//アイテムの vote_count を更新し、更新ログを追加します

$data = array(

'ip' => $ip,

'vote_date'=>$today、

'item_id'=>$ite​​m_id

);

if($voteLogModel->insert($data)>0){ //更新に成功したら、アイテムテーブルを変更します

$itemModel = 新しいアイテム();

//主キーを介して対応する項目を直接取得します

$item = $itemModel->find($item_id)->toArray();

$newvote = $item[0]['vote_count']+1;

$set = array(

'vote_count'=>$newvote

);

$where = "id=$item_id";

$itemModel->update($set, $where);

}

$this->render('ok');

}

}

}

?>



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。