Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сломался скрипт при переносе сайта с PHP 5.2 на PHP 5.4

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Paradox100
Отправлено: 29 Августа, 2015 - 21:25:04
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Здравствуйте, нужна помощь специалистов. Пришлось перенести сайт на новый хостинг, после чего отказался работать скрипт простенького ротатора баннеров. Я даже не могу залогиниться. Гуглинг ошибок дал понять, что это скорее всего из-за функций, которые не поддерживаются в PHP 5.4 (до этого был PHP 5.2). Помогите, пожалуйста, поправить код, чтобы реанимировать скрипт.

При попытке логина в админку, выдаются следующие ошибки:

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/sites/b/bonus-poker.ru/publ ic_html/advert/adm/login.php on line 22

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/sites/b/bonus-poker.ru/public_html/advert/adm/login.php:8) in /var/sites/b/bonus-poker.ru/publ ic_html/advert/adm/login.php on line 28

Fatal error: Call to undefined function session_register() in /var/sites/b/bonus-poker.ru/publ ic_html/advert/adm/login.php on line 29



Вот код страницы login.php:

<html>
<head>
<title>Панель управления - Вход</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<link href="../inc/style.css" type="text/css" rel="stylesheet">
</head>
<body>
<?
if(!isset($_POST['submit']))
{
echo "<center><form action='' method=post>
<table width=200 border=1>
<tr height=30><td width=50 valign=center align=center><b>Login:</b></td><td width=50 valign=center align=center><input type=text name=login size=10></td></tr>
<tr height=30><td width=50 valign=center align=center><b>Password:</b></td><td width=50 valign=center align=center><input type=password name=passwd size=10></td></tr>
</table><br>
<input type=submit name=submit value=Войти> <input type=reset value=Очистить></form>
</center>";
}
else
{
$_POST['passwd'] = md5($_POST['passwd']);
$_POST['login'] = mysql_escape_string($_POST['login']);
require_once "../config.php";
$query = mysql_query("SELECT * FROM `admins` WHERE `login` = '$_POST[login]' AND `password` = '$_POST[passwd]'");
if(mysql_num_rows($query)>0)
{
$r = mysql_fetch_array($query);
session_start();
session_register("admincp");
$_SESSION['login'] = $_POST['login'];
$_SESSION['status'] = $r['status'];
echo "Вход выполнен успешно, сейчас вы будете автоматически перенаправлены на главную страницу.";
echo "<meta http-equiv='refresh' content='3; URL=index.php'>";
} else echo "Неверный логин\пароль<br><a href=# onClick='history.back()'>Назад</a>";
}
?>
</body>
</html>

Заранее благодарю за помощь!

(Отредактировано автором: 29 Августа, 2015 - 21:26:48)

 
 Top
lastdays
Отправлено: 29 Августа, 2015 - 21:39:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2013  


Помог: 7 раз(а)




mysql_ устаревший и выпелен.
код необходимо полностью переписывать.

Warning: session_start():
подскажет гугл, в прочем как и по другим ошибкам.

(Отредактировано автором: 29 Августа, 2015 - 21:39:55)

 
 Top
Paradox100
Отправлено: 29 Августа, 2015 - 21:41:29
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




lastdays пишет:
mysql_ устаревший и выпелен.
код необходимо полностью переписывать.


Подскажите, пожалуйста, сколько это ориентировочно будет стоить - обновить движок ротатора до актуальной версии? 2 года назад этот ротатор запилил мне фрилансер всего за 30$ )

lastdays пишет:
Warning: session_start():
подскажет гугл, в прочем как и по другим ошибкам.


Я, естественно, гуглил ошибки и находил решения по 1-й и 3-й, но с сессиями не все понятно. Самое распространенное решение - перекодировка файла в UTF without BOM, но этот файл в правильной кодировке.

Поэтому и обратился за советом.

Если правильно понял, то:

1) Строку $_POST['login'] = mysql_escape_string($_POST['login']);
Заменить на $_POST['login'] = mysql_real_escape_string($_POST['login']);

3) Строку session_register("admincp");
Заменить на $_SESSION["admincp"];

Все правильно? Как решить 2-ю ошибку?

Я готов пожертвовать несколько десятков $, если кто-то возьмется привести движок в полностью рабочее состояние.

(Отредактировано автором: 29 Августа, 2015 - 21:49:37)

 
 Top
RomAndry Администратор
Отправлено: 29 Августа, 2015 - 23:37:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




у вас вывод html идет перед session_start
это желательно вынести в самое начало.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB