Исправления ошибок

Мусорный файл, исправление ошибки с начислением сидбонусов (строгая типизация), изменение метода поисковой строки (заработает "поисковость" в Яндекс.Браузер и т.п.).
This commit is contained in:
Exile 2014-11-23 00:42:41 +03:00
commit 740eb64a51
4 changed files with 21 additions and 191 deletions

View file

@ -411,12 +411,6 @@ function hide_bb_path ($path)
return ltrim(str_replace(BB_PATH, '', $path), '/\\'); return ltrim(str_replace(BB_PATH, '', $path), '/\\');
} }
function tr_drop_request ($drop_type)
{
if (DBG_LOG) dbg_log(' ', "request-dropped-$drop_type");
dummy_exit(mt_rand(60, 600));
}
function sys ($param) function sys ($param)
{ {
switch ($param) switch ($param)
@ -511,7 +505,7 @@ else if (defined('IN_TRACKER'))
// Exit if tracker is disabled via ON/OFF trigger // Exit if tracker is disabled via ON/OFF trigger
if (file_exists(BB_DISABLED)) if (file_exists(BB_DISABLED))
{ {
dummy_exit(mt_rand(60, 2400)); # die('d14:failure reason20:temporarily disablede'); dummy_exit(mt_rand(60, 2400));
} }
} }
} }

View file

@ -71,15 +71,15 @@ if ($tr_cfg['update_dlstat'])
// Set "only 1 seeder" bonus // Set "only 1 seeder" bonus
DB()->query(" DB()->query("
UPDATE UPDATE
". NEW_BB_BT_LAST_TORSTAT ." tb, ". NEW_BB_BT_LAST_TORSTAT ." tb,
". BB_BT_TRACKER_SNAP ." sn ". BB_BT_TRACKER_SNAP ." sn
SET SET
tb.bonus_add = tb.up_add tb.bonus_add = tb.up_add
WHERE WHERE
tb.topic_id = sn.topic_id tb.topic_id = sn.topic_id
AND sn.seeders = 1 AND sn.seeders = 1
AND tb.up_add != 0 AND tb.up_add != 0
AND tb.dl_status = ". DL_STATUS_COMPLETE ." AND tb.dl_status = ". DL_STATUS_COMPLETE ."
"); ");
// Get SUMMARIZED user's dlstat // Get SUMMARIZED user's dlstat
@ -154,7 +154,7 @@ DB()->query("DROP TABLE IF EXISTS ". NEW_BB_BT_LAST_USERSTAT .", ". OLD_BB_BT_LA
DB()->expect_slow_query(10); DB()->expect_slow_query(10);
if($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['seed_bonus_release']) if ($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['seed_bonus_release'])
{ {
DB()->query(" DB()->query("
CREATE TEMPORARY TABLE tmp_bonus ( CREATE TEMPORARY TABLE tmp_bonus (
@ -163,7 +163,7 @@ if($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['see
) ENGINE = MEMORY ) ENGINE = MEMORY
"); ");
$tor_size = ($bb_cfg['seed_bonus_tor_size'] * 1073741824); $tor_size = ($bb_cfg['seed_bonus_tor_size'] * 1073741824);
DB()->query("INSERT INTO tmp_bonus DB()->query("INSERT INTO tmp_bonus
SELECT bt.user_id, count(bt.seeder) AS release_count SELECT bt.user_id, count(bt.seeder) AS release_count
@ -174,18 +174,18 @@ if($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['see
GROUP BY user_id GROUP BY user_id
"); ");
$seed_bonus = unserialize($bb_cfg['seed_bonus_points']); $seed_bonus = (float) unserialize($bb_cfg['seed_bonus_points']);
$seed_release = unserialize($bb_cfg['seed_bonus_release']); $seed_release = (int) unserialize($bb_cfg['seed_bonus_release']);
foreach($seed_bonus as $i => $points) foreach($seed_bonus as $i => $points)
{ {
if(!$points || !$seed_release[$i]) continue; if (!$points || !$seed_release[$i]) continue;
$user_points = ($points / 4); $user_points = ($points / 4);
$release = $seed_release[$i]; $release = $seed_release[$i];
$user_regdate = (TIMENOW - $bb_cfg['seed_bonus_user_regdate'] * 86400); $user_regdate = (TIMENOW - $bb_cfg['seed_bonus_user_regdate'] * 86400);
DB()->query(" DB()->query("
UPDATE ". BB_USERS ." u, ". BB_BT_USERS ." bu, tmp_bonus b UPDATE ". BB_USERS ." u, ". BB_BT_USERS ." bu, tmp_bonus b
SET SET
u.user_points = u.user_points + $user_points, u.user_points = u.user_points + $user_points,
@ -199,7 +199,7 @@ if($bb_cfg['seed_bonus_enabled'] && $bb_cfg['seed_bonus_points'] && $bb_cfg['see
AND u.user_active = 1 AND u.user_active = 1
AND u.user_id not IN(". EXCLUDED_USERS_CSV .") AND u.user_id not IN(". EXCLUDED_USERS_CSV .")
"); ");
} }
DB()->query("DROP TEMPORARY TABLE IF EXISTS tmp_bonus"); DB()->query("DROP TEMPORARY TABLE IF EXISTS tmp_bonus");
} }

View file

@ -1,164 +0,0 @@
<?php
if (!defined('BB_ROOT')) die(basename(__FILE__));
//
// remove_comments will strip the sql comment lines out of an uploaded sql file
// specifically for mssql and postgres type files in the install....
//
function remove_comments(&$output)
{
$lines = explode("\n", $output);
$output = "";
// try to keep mem. use down
$linecount = count($lines);
$in_comment = false;
for($i = 0; $i < $linecount; $i++)
{
if( preg_match("/^\/\*/", preg_quote($lines[$i])) )
{
$in_comment = true;
}
if( !$in_comment )
{
$output .= $lines[$i] . "\n";
}
if( preg_match("/\*\/$/", preg_quote($lines[$i])) )
{
$in_comment = false;
}
}
unset($lines);
return $output;
}
//
// remove_remarks will strip the sql comment lines out of an uploaded sql file
//
function remove_remarks($sql)
{
$lines = explode("\n", $sql);
// try to keep mem. use down
$sql = "";
$linecount = count($lines);
$output = "";
for ($i = 0; $i < $linecount; $i++)
{
if (($i != ($linecount - 1)) || (strlen($lines[$i]) > 0))
{
if ($lines[$i][0] != "#")
{
$output .= $lines[$i] . "\n";
}
else
{
$output .= "\n";
}
// Trading a bit of speed for lower mem. use here.
$lines[$i] = "";
}
}
return $output;
}
//
// split_sql_file will split an uploaded sql file into single sql statements.
// Note: expects trim() to have already been run on $sql.
//
function split_sql_file($sql, $delimiter)
{
// Split up our string into "possible" SQL statements.
$tokens = explode($delimiter, $sql);
// try to save mem.
$sql = "";
$output = array();
// we don't actually care about the matches preg gives us.
$matches = array();
// this is faster than calling count($oktens) every time thru the loop.
$token_count = count($tokens);
for ($i = 0; $i < $token_count; $i++)
{
// Don't wanna add an empty string as the last thing in the array.
if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0)))
{
// This is the total number of single quotes in the token.
$total_quotes = preg_match_all("/'/", $tokens[$i], $matches);
// Counts single quotes that are preceded by an odd number of backslashes,
// which means they're escaped quotes.
$escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$i], $matches);
$unescaped_quotes = $total_quotes - $escaped_quotes;
// If the number of unescaped quotes is even, then the delimiter did NOT occur inside a string literal.
if (($unescaped_quotes % 2) == 0)
{
// It's a complete sql statement.
$output[] = $tokens[$i];
// save memory.
$tokens[$i] = "";
}
else
{
// incomplete sql statement. keep adding tokens until we have a complete one.
// $temp will hold what we have so far.
$temp = $tokens[$i] . $delimiter;
// save memory..
$tokens[$i] = "";
// Do we have a complete statement yet?
$complete_stmt = false;
for ($j = $i + 1; (!$complete_stmt && ($j < $token_count)); $j++)
{
// This is the total number of single quotes in the token.
$total_quotes = preg_match_all("/'/", $tokens[$j], $matches);
// Counts single quotes that are preceded by an odd number of backslashes,
// which means they're escaped quotes.
$escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$j], $matches);
$unescaped_quotes = $total_quotes - $escaped_quotes;
if (($unescaped_quotes % 2) == 1)
{
// odd number of unescaped quotes. In combination with the previous incomplete
// statement(s), we now have a complete statement. (2 odds always make an even)
$output[] = $temp . $tokens[$j];
// save memory.
$tokens[$j] = "";
$temp = "";
// exit the loop.
$complete_stmt = true;
// make sure the outer loop continues at the right point.
$i = $j;
}
else
{
// even number of unescaped quotes. We still don't have a complete statement.
// (1 odd and 1 even always make an odd)
$temp .= $tokens[$j] . $delimiter;
// save memory.
$tokens[$j] = "";
}
} // for..
} // else
}
}
return $output;
}

View file

@ -304,7 +304,7 @@ $(document).ready(function() {
</td> </td>
<td style="padding: 3px;"> <td style="padding: 3px;">
<div> <div>
<form id="quick-search" action="" method="post" onsubmit="$(this).attr('action', $('#search-action').val()); if($('#search-action option:selected').attr('class') == 'hash') $('#search-text').attr('name', 'hash');"> <form id="quick-search" action="" method="get" onsubmit="$(this).attr('action', $('#search-action').val()); if($('#search-action option:selected').attr('class') == 'hash') $('#search-text').attr('name', 'hash');">
<input type="hidden" name="max" value="1" /> <input type="hidden" name="max" value="1" />
<input type="hidden" name="to" value="1" /> <input type="hidden" name="to" value="1" />
<input id="search-text" type="text" name="nm" placeholder="{L_SEARCH_S}" required /> <input id="search-text" type="text" name="nm" placeholder="{L_SEARCH_S}" required />