アイデア分析: ユーザーの 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'=>$item_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');
}
}
}
?>