Тема: Ошибки в start.php (Сайт/Форум/Архив закрытых тем) mrholler (5 Oct 2018 в 12:36) Покажи строку 26 в start.php. Со вторым сразу ясно, функция mysql_real_escape_string() удалена в вашей версии php, используйте mysqli или pdo. kantry (5 Oct 2018 в 12:40) Only variables should be assigned by reference - амперсанд убери. И mysql_real_escape_string() какого хрена вообще там делает?)) Убери нахрен. mrholler (5 Oct 2018 в 12:42) kantry, всмысле какого хрена? <? @session_name(\'SESS\'); @session_start(); $sess = mysql_real_escape_string(session_id()); if (!preg_match(\'#[A-z0-9]{32}#i\',$sess)) $sess = md5(rand(09009,999999)); ?> Все нормально там, у него наверно php 7+ kantry (5 Oct 2018 в 12:52) mrholler, mysql_real_escape_string(), Deprecated c php 5.5 если мне память не изменяет стала, там она не нужна ни в каком php, параноики могут addslashes() использовать. И вот этот ведущий нолик 09009,999999 как бы не совсем логично выглядит, не строка вроде бы:D Сибирский (5 Oct 2018 в 13:06) [04-Oct-2018 03:30:48 Europe/Moscow] PHP Strict Standards: Only variables should be assigned by reference in /home/bh63356/public_html/sys/inc/start.php on line 26 [04-Oct-2018 03:30:48 Europe/Moscow] лечится date_default_timezone_set(\"Europe/Moscow\"); [i]Добавлено:[/i] Вообще эта ошибка возникает в старой версии php? 5.3 вроде, в 5,6 и выше ее уже нет Saeed Negmat (5 Oct 2018 в 13:50) mrholler, [code]$time=&time();[/code] [i]Добавлено:[/i] kantry, спасибо убрал «&» теперь нормально. [i]Добавлено:[/i] Сибирский, у меня php 5.6, если сменить на 5.3, то некоторые мои модули перестанут работать. [i]Добавлено:[/i] Сибирский, у меня php 5.6, если сменить на 5.3, то некоторые мои модули перестанут работать. [i]Добавлено:[/i] Сибирский, у меня php 5.6, если сменить на 5.3, то некоторые мои модули перестанут работать. mrholler (5 Oct 2018 в 14:42) kantry, это стандартный файл с движка:D Бандера (6 Oct 2018 в 05:30) Не всё так просто... Фильтровать надо. Конечно не таким гоблинским способом. Но суть такова. Возможно зайти на сайт под собственно созданной сессией (идентификатор произвольный) После чего авторизоваться под ним. И благодаря конструкции if (!preg_match(\'#[A-z0-9]{32}#i\',$sess)) в котором регулярное выражение [A-z0-9]{32} проигнорит ранд при длине более 32 символов... И вот это всё, попадёт в phpMyAdmin через \"предусмотренный\" Искателем скул // --- Непонятная сессия mysql_query(\"UPDATE `user` SET `sess` = \'$sess\' WHERE `id` = \'$user[id]\' LIMIT 1\"); Что бы этого избежать, да и вообще где поле sess используется? // --- Определение юзера user.php / Нет if (isset($_SESSION[\'id_user\']) && mysql_result( mysql_query(\"SELECT COUNT(id) FROM `user` WHERE `id` = \'$_SESSION[id_user]\' LIMIT 1\"), 0) == 1) { Один из вариантов... // --- Удаляем мз файла sess.php $sess = mysql_real_escape_string(session_id()); if (!preg_match(\'#[A-z0-9]{32}#i\',$sess)) Мои нижайшие если кому то обломал \"игрища\" Но социал это не бикет и саинт, социал это люди. А людям принято помогать. kantry (6 Oct 2018 в 11:40) Бандера, что бы mysql_real_escape_string что то фильтровала, надо сначала её подключить к ресурсу, собсно внутрь которого на и будет фильтровать:D А в sess.php то, кого она отфильтрует? В лучшем случае выдаст false, в худшем ошибку - нет подключения к базе данных(и возможно кое что об этой самой базе). $sess это не идентификатор сессии, эта хрень в принципе вообще там не нужна, для идентификации юзера она не используется. Бандера (6 Oct 2018 в 13:29) kantry, Ну так о чём, если не об это я и писал. // --- Бандера в 05:30:49 Не всё так просто... Фильтровать надо. Конечно не таким гоблинским способом. // --- Скорее всего после без успешной попытки законнектиться Да - да, mysql_real_escape_string попытается подключиться, либо использовать старое соединение. И как итог, скорее всего отобьётся в ошибку уровня E_WARNING А в общем, я рад что ты со мной согласен и почти полностью повторил мою мысль...)) Saeed Negmat (7 Oct 2018 в 21:09) Помогите пожалуйста устранить ошибку и здесь [br] Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /home/bh63356/public_html/obmen/search.php on line 221 kantry (7 Oct 2018 в 21:47) Зайниддин, устаревшую функцию mysql_escape_string() заменить на mysql_real_escape_string, там их еще несколько Saeed Negmat (8 Oct 2018 в 06:22) kantry, спасибо большое Dreamer (9 Oct 2018 в 21:57) Вопрос решён? Saeed Negmat (10 Oct 2018 в 16:17) Dreamer, вполне Мр. Форум (10 Oct 2018 в 21:10) [red]Тему закрыл Главный администратор Dreamer[/red] Мр. Форум (10 Oct 2018 в 21:11) [red]Тему переместил Главный администратор Dreamer из раздела Баги (ошибки) движка в раздел Архив закрытых тем[/red] Источник: http://www.dcms-social.ru/forum/17/16/62542/