SW Two Fixs

Vitalik

New Member
Доброго времени суток. Заранее извиняюсь, что выбрал не верный раздел, ибо верного и нету, но всеравно. Но, всетаки, нынешний раздел больше всех остальных подходит к тематике этого сообщения :)

Хотел поделиться с вами моими фиксами к StressWeb'у 10.08.17. Выложу 2 штуки, которые исправил сегодня.


Фикс №1 - Небольшой "косяк" в основных настройках админки стресса.

Функция на сбор информации из папки, где лежат шаблоны, криво составлена, поэтому в список шаблона попадают и .zip, и .htaccess и всякая другая ерунда.

Я лично поправил так, inc\classes\class.functions.php функция GetTemplate, 233-236 строки включительно:

заменяем

Код:
if ($file != "." && $file != ".." && $file != "index.html")
{
$template[] = $file;
}
на

Код:
// используем только латиницу, цифры, тире,
// символ подчеркивания для папки шаблонов,
// остальное отсеиваем
if (preg_match("/^[a-zA-Z0-9_-]+$/i", $file))
{
$template[] = $file;
}

Фикс №2 - При смене пароля в админке пишет - "Старый пароль введен неверно" - хотя все верно.

Пришлось потратить около 2ух часов, что бы найти фикс в неизвестном мне ранее движке путем debug заплаток...
Но, всетаки, ответ был как никогда прост - переменная сессии, она оказалась пуста... Кто не понимает, о чем я, можете не вникать, для вас вот инструкция, что нужно сделать:

Заходите в папку admin (в корневой директории SW), открываете файл admins.php (желательно при помощи Notepad2 или других текстовых редакторов, которые распознают кодировки), а там делаете следующее:

Строка 45
Код:
list($db_login, $db_pass) = $db->FetchArray($db->Query("SELECT `login`,`password` FROM `stress_admin` WHERE `login`='" . $_SESSION['sw_admin_name'] . "'"));
заменяем на
Код:
list($db_login, $db_pass) = $db->FetchArray($db->Query("SELECT `login`,`password` FROM `stress_admin` WHERE `login`='" . $_SESSION['acplogin'] . "'"));
Строка 53
Код:
$db->Query("UPDATE `stress_admin` SET `password`='" . $new_pass_enc . "' WHERE `login`='" . $_SESSION['sw_admin_name'] . "'");
заменяем на
Код:
$db->Query("UPDATE `stress_admin` SET `password`='" . $new_pass_enc . "' WHERE `login`='" . $_SESSION['acplogin'] . "'");
И все, баг исправлен.
А если в кратце, то мы заменили $_SESSION['sw_admin_name'] на $_SESSION['acplogin'], ибо первая пустая...

Вот и все.

Если что, готов помогать SW в плане кодинга. Если вам нужна моя помощь, отпишитесь мне в ЛС или на мыло, там обговорим.

С уважением, команда ViaTeam. Работаем для вас.​
 
Верх