
07-23-2003, 03:15 PM
|
|
|
Join Date: Mar 2003
Location: Florida
Posts: 1,875
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
Quote:
06-12-03 at 02:52 PM Xelation said this in Post #847
Hey teck, I've got a problem with a step.. its interfering with another hack.. heres the problem on this step
Find:
PHP Code:
// ###################### Start dovars #######################
function dovars($newtext,$sendheader=1) {
// parses replacement vars
global $DB_site,$replacementsetid,$gzipoutput,$gziplevel,$newpmmsg;
static $vars;
if (connection_status()) {
exit;
}
if (!isset($vars)) {
$vars=$DB_site->query("SELECT findword,replaceword FROM replacement WHERE replacementsetid IN(-1,'$replacementsetid') ORDER BY replacementsetid DESC,replacementid DESC");
} else {
$DB_site->data_seek(0,$vars);
}
while ($var=$DB_site->fetch_array($vars)) {
if ($var['findword']!="") {
$newtext=str_replace($var['findword'],$var['replaceword'],$newtext);
}
}
Replace it with:
PHP Code:
// ###################### Start dovars #######################
function dovars($newtext,$sendheader=1) {
// parses replacement vars
global $DB_site,$replacementsetid,$gzipoutput,$gziplevel,$newpmmsg,$microstats;
static $vars;
if (connection_status()) {
exit;
}
if (!isset($vars)) {
$vars=$DB_site->query("SELECT findword,replaceword FROM replacement WHERE replacementsetid IN(-1,'$replacementsetid') ORDER BY replacementsetid DESC,replacementid DESC");
} else {
$DB_site->data_seek(0,$vars);
}
$findwords=array(0 => '{getmicrostats}');
$replacewords=array(0 => $microstats);
$i=1;
while ($var=$DB_site->fetch_array($vars) and $i++) {
if ($var['findword']!="") {
$findwords[$i]=$var['findword'];
$replacewords[$i]=$var['replaceword'];
}
}
$newtext=str_replace($findwords,$replacewords,$newtext);
I have this code instead:
PHP Code:
// ###################### Start dovars #######################
function dovars($newtext, $sendheader = 1)
{
// parses replacement vars
global $PHP_SELF, $DB_site, $replacementsetid, $gzipoutput, $gziplevel, $newpmmsg;
static $vars;
if (connection_status())
{
exit;
}
if (!is_array($vars))
{
// build an array of $vars containing find/replace values
$vars = array();
$replacements = $DB_site->query("
SELECT findword, replaceword, replacementsetid
FROM replacement
WHERE replacementsetid IN(-1, '" . intval($replacementsetid) . "')
ORDER BY replacementsetid, replacementid DESC
");
while ($replacement = $DB_site->fetch_array($replacements))
{
if ($replacement['findword'] != '')
{
$vars["$replacement[findword]"] = $replacement['replaceword'];
}
}
unset($replacement);
$DB_site->free_result($replacements);
}
if (PHPVERSION < '4.0.5' or 1)
{
// do each replacement in turn for PHP < 4.0.5
reset($vars);
while(list($find, $replace) = each($vars))
{
$newtext = str_replace($find, $replace, $newtext);
}
}
how can I fix this problem? Ive tried many different ways to fix it myself but now your my resort. Hope you can help
|
We are using 2.3.0 and have a similar issue. The code to replace is different then that specified in the hack. When we try to replace what seems the correct code we get these errors...
Warning: reset(): Passed variable is not an array or object in /functions.php on line 690
Warning: Variable passed to each() is not an array or object in /functions.php on line 691
Anyone else having issues like this?
Thanks
EDIT: The fix is here...
https://vborg.vbsupport.ru/showthrea...&pagenumber=56
|