Последствие перехода на register_globals=off

Jumper

Новичок
Последствие перехода на register_globals=off

Отключил register_globals
теперь мучаюсь .... ладно если бы я был продвинутым кодером, дык нет же...

В общем половину скрипта я работать заставил путем объявления переменных через
$_GET[''];
$_POST[''];
а вторую половину так и не могу.. пол дня убил на изучение "где же все таки собака порылась" но так и не нашел.

скрипт
PHP:
<?
require("params.php");
$entpass=$_POST['entpass'];
$ID=$_GET['ID'];
$do=$_GET['do'];



if ($QUERY_STRING == "")
{
$form = "
<table width=\"100%\" height=\"100%\">
<tr><td align=\"center\">
<form name = aform method = post action = admin.php>
<input type = password name = entpass class=\"jp\"> <font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\">
<input type = submit name = submit value = Enter class=\"jp1\">
</td></tr>
</table>";
}

$hashpass = md5($password);
$checking = md5($entpass); 

$content = "
<B>Выберите действие:</B><BR>
<a href = 'admin.php?ID=$hashpass&do=info'>Информация</a> | 
<a href = 'index.php'>На форум</a></font><BR>";

if ($hashpass != $checking)
{print $form;}

if ($hashpass == $checking or $ID == $hashpass)
{print $content;}

if ($ID == $hashpass)
{//Условие ввода пороля начало


if ($do == "info" and $ID == $hashpass)
{
$cnt=0;
$dir = "user";
$dh = opendir($dir);
while($fname = readdir($dh))
{$cnt++;}
$dat=$cnt-3; //почему минус 3... 
echo "Всего учеток: ".$dat;
}

}//Условие ввода пороля
?>
Проблема в $checking. Изначально она принимает значение, но после перехода по
<a href = 'admin.php?ID=$hashpass&do=info'>Информация</a>
переменная обнуляется... что делать?
 

Jumper

Новичок
Ну вот же

$entpass=$_POST['entpass'];
$ID=$_GET['ID'];
$do=$_GET['do'];

не могу понять что я из виду упускаю
код вроде простой, тем не менее

делаю вывод переменной $checking после, она пустая

PHP:
echo '<pre>';
var_dump($_POST);
var_dump($_GET);
выдали
PHP:
array(0) {
}
array(2) {
  ["ID"]=>
  string(32) "b0baee9d279d34fa1dfd71aadb908c3f"
  ["do"]=>
  string(4) "info"
}
капец =(
 

Фанат

oncle terrible
Команда форума
а при чем здесь $checking? она никуда не передается.
 

Jumper

Новичок
ну да.... не передается в том то и дело
то есть я ввожу entpass
далее
$checking получает ее md5
далее идет запрос
и все
$checking=0
как ее сохранить? с registr_global=on все работало...
 

Фанат

oncle terrible
Команда форума
в старой версии скрипта тебе не нужно было ее никуда сохранять
значит, не нужно и в этой
 

Jumper

Новичок
Думаю нашел причину моей головной боли и кроется она в этих строчках
PHP:
if ($QUERY_STRING == "") 
{ ... }
Почему то, у меня всегда условие верно!
Наверное и эту переменную надо из глобального массива вытаскивать? А как?
 

Jumper

Новичок
О... через $_SERVER, точно!
Все спасибо, решение нашел! Можно закрывать!
 

baev

‹°°¬•
Команда форума
alexv, об этом сказано в первом же ответе:
— читайте прежде чем писать
сэкономите много времени
(и на лишних твёрдых знаках тоже можно сэкономить…)
 

alexv

Новичок
ну-ну, я сомневаюсь, что ТС ходил по этой ссылке
иначе query_string он увидел бы сразу при включении E_ALL
 

fixxxer

К.О.
Партнер клуба
Отключил register_globals
О, рассказал бы, как там на Луне дела. Или с Марса?

Кстати, (ну это как ознакомишься с новостями из предыдущих ссылок), пока ты пребывал в столь дальних краях, уже придумали template engines. Некоторые по недоразумению называют "шаблонизаторы". Это когда в коде echo не пишут, грубо говоря. Почитай тут вокруг на эту тему, прогресс-то движется.
 
Сверху