#author("2022-12-28T12:55:26+09:00","","")
#author("2022-12-28T12:55:49+09:00","","")
* counter.inc.php: plugin_counter_get_popular_list_db() 中で未定義変数へのアクセス [#ic99b37b]

- ページ: [[BugTrack]]
- 投稿者: [[ぬぺぺ]]
- 優先順位: 普通
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2022-12-28 (水) 12:51:28
- バージョン: 1.5.4

** メッセージ [#e1dd4745]
counter.inc.phpにおいて、関数 plugin_counter_get_popular_list_db() 中で未定義変数 $plugin_counter_db_options へのアクセスがあります。

global $plugin_counter_db_options の記述を忘れているようです。

ほかの関数でも3ヶ所 $plugin_counter_db_options へのアクセスがありますが、そちらはちゃんとglobal指定がされています。

DB全然わかんないんですけど、オプションが渡っていなくてあんまり良くないんじゃないでしょうか。

***該当コード [#td9b2012]

counter.inc.php
 global $plugin_counter_db_options;
 $plugin_counter_db_options = null;
 // For MySQL
 // $plugin_counter_db_options = array(PDO::MYSQL_ATTR_INIT_COMMAND =>
 //   "SET NAMES utf8mb4 COLLATE utf8mb4_bin");
 
 // :
 // 略
 // :
 
 function plugin_counter_get_popular_list_db($today, $except, $max) {
 	global $whatsnew;
 	$page_counter_t = PLUGIN_COUNTER_DB_TABLE_NAME_PREFIX . 'page_counter';
 	if ($today) {
 		$order_by_c = 'today_viewcount';
 	} else {
 		$order_by_c = 'total';
 	}
 	$counters = array();
 	try {
 		$pdo = new PDO(PLUGIN_COUNTER_DB_CONNECT_STRING,
 			PLUGIN_COUNTER_DB_USERNAME, PLUGIN_COUNTER_DB_PASSWORD,
 			$plugin_counter_db_options);
 		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 		$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 		$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
 		// :
 		// 略
 		// :

***修正案 [#j65264ad]

global指定を追加してみました。

 global $plugin_counter_db_options;
 $plugin_counter_db_options = null;
 // For MySQL
 // $plugin_counter_db_options = array(PDO::MYSQL_ATTR_INIT_COMMAND =>
 //   "SET NAMES utf8mb4 COLLATE utf8mb4_bin");
 
 // :
 // 略
 // :
 
 function plugin_counter_get_popular_list_db($today, $except, $max) {
 	global $plugin_counter_db_options, $whatsnew;
 	$page_counter_t = PLUGIN_COUNTER_DB_TABLE_NAME_PREFIX . 'page_counter';
 	if ($today) {
 		$order_by_c = 'today_viewcount';
 	} else {
 		$order_by_c = 'total';
 	}
 	$counters = array();
 	try {
 		$pdo = new PDO(PLUGIN_COUNTER_DB_CONNECT_STRING,
 			PLUGIN_COUNTER_DB_USERNAME, PLUGIN_COUNTER_DB_PASSWORD,
 			$plugin_counter_db_options);
 		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 		$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 		$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5);
 		// :
 		// 略
 		// :


--------

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.029 sec.

SourceForge