Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: QUERY_STRING
 
 автор: Zladey   (15.05.2006 в 10:52)   письмо автору
 
 

Вот кусок кода:
if ($_POST['logon']){
$name = $_POST['name'];
$pass = $_POST['pass'];

if(($name==$adminname) && (md5($pass)==$adminpassword))
{
list($usec, $sec) = explode(" ",microtime());
$session = md5((float)$usec + (float)$sec);
setcookie("elstr",md5($pass),$cookieexpire,$cookiepath,"","");
setcookie("elses",md5($session),$cookieexpire,$cookiepath,"","");
if ($jumpto)
{
$q = jumpto."&";
}
$msg = "location = ".$path."admin/index.php?".$q."s=".$session;
/* sleep(3);
Header("Location: ".$path."admin/index.php?".$q."s=".$session);*/

} else

$msg = "Неправильные логин или пароль";

(****************************************************************************************************)

unset($q);
$q = addslashes($QUERY_STRING);
//echo "q = " .$q ;
?>
<form method="post" name="loginform" action="<?=$PHP_SELF?>">
<input type="hidden" name="mode" value="<?=$mode?>">
<input type="hidden" name="id" value="<?=$id?>">
<input type="hidden" name="jumpto" value="<?=$q?>">
<input type="text" name="name"><br>
<input type="password" name="pass"><br>
<input type="submit" name="logon" value="Войти"><input type="reset" name="reset" value="Сбросить">

</form>
<?

На сервере SET_GLOBALS = off ....

$q постоянно пустая.....

Никак не могу понять.. на что заменить этот Query_STRING и вообще надо ли его заменять и как она должна работать?

   
 
 автор: cheops   (15.05.2006 в 11:15)   письмо автору
 
   для: Zladey   (15.05.2006 в 10:52)
 

Замените $QUERY_STRING на $_SERVER['QUERY_STRING'].

   
 
 автор: Trianon   (15.05.2006 в 11:20)   письмо автору
 
   для: Zladey   (15.05.2006 в 10:52)
 

В суперглобальных массивах следует брать не только name и pass, но и
mode, id, jumpto, logon - в $_POST
PHP_SELF, QUERY_STRING - в $_SERVER
Тем более, когда register globals выключены.

   
 
 автор: Zladey   (15.05.2006 в 11:55)   письмо автору
 
   для: Trianon   (15.05.2006 в 11:20)
 

$msg = "location = ".$path."admin/index.php?".$q."s=".$session;

эхо выдает

admin/index.php?s=c384d045acc9dc0ba848fcf7b491ac7c

$q пустая все равно... может ей не правильно присваевается значение?

ps.
$_POST и $_SERVER использовал

   
 
 автор: XPraptor   (15.05.2006 в 12:00)   письмо автору
 
   для: Zladey   (15.05.2006 в 11:55)
 

У POST не может быть никаких query_string только у GET метода.
Поставьте форме action="get"

   
 
 автор: Trianon   (15.05.2006 в 12:11)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:00)
 

>У POST не может быть никаких query_string только у GET метода.
С чего бы это?
Вот пример:
<? echo '<pre>';
if(!empty(
$_GET))
  {echo 
'GET:'print_r($_GET); }
if(!empty(
$_POST))
  {echo 
'POST:'print_r($_POST); }
if(!empty(
$_SERVER['QUERY_STRING']))
  {echo 
'Query string:'var_dump($_SERVER['QUERY_STRING']);}
echo 
'</pre>'?>
<form action=?param=1 method=post>
  <input name=submit value=submit type=submit></form>

   
 
 автор: XPraptor   (15.05.2006 в 12:22)   письмо автору
 
   для: Trianon   (15.05.2006 в 12:11)
 

Ну, так это у GET строка, а сам пост не передает ничего, у человека ведь action="".

   
 
 автор: Zladey   (15.05.2006 в 14:45)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:22)
 

По мойму, когда глобалы отключены hidden - ы не работают....
или я не знаю как у них брать значения.....

   
 
 автор: Trianon   (15.05.2006 в 14:57)   письмо автору
 
   для: Zladey   (15.05.2006 в 14:45)
 

>По мойму, когда глобалы отключены hidden - ы не работают....
>или я не знаю как у них брать значения.....
hidden ничем в этом плане не отличается от text.
Никто, кроме браузера даже разницы не видит.
Вы даже можете на время отладки заменить type=hidden на type=text.

   
 
 автор: Trianon   (15.05.2006 в 14:53)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:22)
 

>Ну, так это у GET строка, а сам пост не передает ничего, у человека ведь action="".
А по-моему, он отнюдь не пустой.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования