- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-12-28T12:51:28+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 へのアクセスがあります。
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);
// :
// 略
// :
--------
#comment