Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Как заставить работать сайт с отключенной директивой "register_globals"

#1 1putnik

1putnik
  • Пользователь
  • 96 сообщений
  • Репутация: 8
0

Отправлено 29 Октябрь 2013 - 02:59

Здравствуйте опытные вебмастера!
Есть сайт на пиратской CMS и работает он в режиме "register_globals on". Те страницы, где требуется регистрация не работают, если директиву "register_globals" отключить (php_value register_globals off - в файле htaccess).
Подскажите пожалуйста что и где нужно подправить, чтобы сайт работал с отключенным register_globals.
Уже пробывал добавлять в разные места и с разными переменными:

$login=$_GET['login'];
$pasport=$_GET['pasport'];
Не какого результата не дало.

 

 

  • 0

#2 Slava1988

Slava1988
  • Пользователь
  • 162 сообщений
  • Репутация: 13

Отправлено 29 Октябрь 2013 - 09:28

найдите файл, который инклюдится на всех страницах, например файл подключения к БД и добавьте в него эти строки
if ( isset($_GET["login"]) ) $login = $_GET["login"];
if ( isset($_GET["pasport"]) ) $pasport = $_GET["pasport"];
Ну конечно все остальные переменные тоже необходимо найти по всему движку...
  • 0

#3 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 29 Октябрь 2013 - 09:30

Может хоть название движка надо написать? Иначе начнут обвинять в надежде на телепатию.
Вообще, полагаю, надо сменить движок или переписать его. Там явно не только в регистрации косяк.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#4 1putnik

1putnik
    Topic Starter
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 29 Октябрь 2013 - 12:41

Slava1988, спасибо попробую, потом отпишусь.

fedornabilkin, Движок - казино, какой-то древний, название нигде не написано. Покупать не хочу, т. к. не уверен что окупится. Касяки исправляю потихоньку.


  • 0

#5 1putnik

1putnik
    Topic Starter
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 29 Октябрь 2013 - 14:56

Есть один файл log_proces.php. Он как-бы промежуточный. После авторизации переходит на страницу - домен/ log_proces.php и тишина - чистый экран браузера и никакого исходного кода нет.
И потом я заметил, что авторизация все равно происходит и все начинает работать после включения "register_globals".
Вот код log_proces.php :
<?
session_start();
$login = "";
$pasport = "";
foreach ($_POST as $var => $value)
{
if (preg_match("/^[A-Za-z0-9]{4,15}$/", $value)) {
if ($var=="login"){ $login=$value;}
if ($var=="pasport"){ $pasport=$value;}
}
}
$login = htmlentities($login);
$pasport = htmlentities($pasport);
#die($login."=".$pasport."n");
if(isset($submit) )
{
include ("../setup.php");
$log2=$login;
$result=mysql_query("select * from users where login='$log2' and check_mail = 1") or die("Error: ".mysql_error());
$row=mysql_fetch_array($result);
$base_login=$row[1];
$base_pasport=$row[2];
if($login==$base_login && $pasport==$base_pasport && $login<>"")
{
$_SESSION['l']=$base_login;
Header("Location: index.php");
exit;
}
else
{
Header("Location: ../index.php");
exit;
}
}
?>

Сообщение отредактировал 1putnik: 29 Октябрь 2013 - 16:35

  • 0

#6 Slava1988

Slava1988
  • Пользователь
  • 162 сообщений
  • Репутация: 13

Отправлено 29 Октябрь 2013 - 17:47

Лучше скрипт авторизации продемонстрируйте
  • 0

#7 1putnik

1putnik
    Topic Starter
  • Пользователь
  • 96 сообщений
  • Репутация: 8

Отправлено 29 Октябрь 2013 - 18:17

Так это по-моему и есть PHP-скрипт авторизации, другого нет, а на главной странице обычная форма авторизации

<FORM name='gm' action='log_proces.php' method=post>
....
</FORM>

  • 0

#8 Slava1988

Slava1988
  • Пользователь
  • 162 сообщений
  • Репутация: 13

Отправлено 30 Октябрь 2013 - 09:07

так а чего вы тогда эти переменные в GETе ищете если данные POST передаются? смотрите в адресной строке, что передается GET
  • 0

#9 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 30 Октябрь 2013 - 09:39

Там ведь условие, если инициализирована переменная $submit, то выполняется запрос в БД.
Выше по коду, я не нашел переменную $submit, следовательно запроса в БД не будет.
  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#10 alex159

alex159
  • Пользователь
  • 492 сообщений
  • Репутация: 32

Отправлено 30 Октябрь 2013 - 10:03

Да, покажите полностью вашу форму. Так же, вы делаете на хостинге? Тогда включите отображения ошибок. Возможно где то происходит ошибка и того белый экран.

Еще возможно у вас в форме кнопка отправки, не обозначена как submit.
Еще у вас переменная $submit не определенна.
Пропишите это после переменных $login и $paspor

if(isset($_POST['submit'])) { $submit = $_POST['submit']; }

запрос

$result=mysql_query("select * from users where login='$log2' and check_mail = 1")
поменяйте на
$result=mysql_query("select * from `users` where login='$log2' and check_mail ='1' ")

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru