Пустой массив POST

12
Kide
На сайте с 29.03.2007
Offline
69
10041

Ковыряюсь в двиге на php. Массивы POST & GET пусты. HTTP_POST_VARS тоже пуст.

Может кто сталкивался с подобным и знает в чем может быть причина?

Доступа к php.ini нет.

Версия рнр 5.2.6

Hasta La Victoria Siempre!
[Удален]
#1
Kide:
Ковыряюсь в двиге на php. Массивы POST & GET пусты. HTTP_POST_VARS тоже пуст.
Может кто сталкивался с подобным и знает в чем может быть причина?

Причина в том, что они не полные. Засуньте туда что-нибудь и проверьте.

Я конечно извиняюсь, но каков вопрос, - таков и ответ. Или опишите проблему получше ибо совсем не понятно как раз то с какого перепуга им чем-либо заполниться, если вы в них ничего не передали.

Kide
На сайте с 29.03.2007
Offline
69
#2
So1:
Или опишите проблему получше

Та вот сложно это...

Есть набор форм, все проверены и все правильно.

Допустим форма регистрации.

заполняем поля и отдаем скрипту обработчику, а этот скрипт переменных уже не видит.

и как их вычитать я пока даже не представляю

[Удален]
#3

Можно кусочек кода?

То есть, если вы передаете что-то GET'ом, то код

if (empty($_GET)) print 'Ничего не передано гетом';
else
{print 'передано: <br />';
print_r($_GET);}

выведет "Ничего не передано гетом"?

Kide
На сайте с 29.03.2007
Offline
69
#4
So1:
Можно кусочек кода?
То есть, если вы передаете что-то GET'ом, то код
if (empty($_GET)) print 'Ничего не передано гетом';

else
{print 'передано: <br />';
print_r($_GET);}

выведет "Ничего не передано гетом"?

форма:


<form action="/login/" method="post" style="margin-top: 8px;" id="login">
<input type="text" name="login" value="E-Mail" onclick="if (this.value=='E-Mail') this.value='';" onfocus="if (this.value=='E-Mail') this.value='';" />
<input type="password" name="password" value="Пароль" onclick="if (this.value=='Пароль') this.value='';" onfocus="if (this.value=='Пароль') this.value='';" /> <span onclick="javascript:document.getElementById('login').submit();">ВОЙТИ</span><br />

обработка:


if ( isset( $addr ) && $addr[1] == "login" && isset( $_POST['login'] ) && isset( $_POST['password'] ) )
{
$password = md5( sha1( $_POST['password'] ) );
$res = mysql_query( "SELECT * FROM `users` WHERE `email`='".mysql_real_escape_string( $_POST['login'] )."' AND `password`='".$password."' LIMIT 0, 1" );
$userInfo = mysql_fetch_array( $res );
@mysql_free_result( $res );
if ( $userInfo )
{
$_SESSION['userID'] = $userInfo['id'];
}
if ( !isset( $_POST['redirect_to'] ) || isset( $_POST['redirect_to'] ) )
{
$_POST['redirect_to'] = "/";
}
$page['title'] = "Вход произведён успешно";

$_POST в данном случае вообще пустой.

I
На сайте с 04.06.2007
Offline
61
#5

Не делайте id и name одинаковыми, осел такое плохо жрет.

[Удален]
#6
Kide:
форма:

<form action="/login/" method="post" style="margin-top: 8px;" id="login">
<input type="text" name="login" value="E-Mail" onclick="if (this.value=='E-Mail') this.value='';" onfocus="if (this.value=='E-Mail') this.value='';" />
<input type="password" name="password" value="Пароль" onclick="if (this.value=='Пароль') this.value='';" onfocus="if (this.value=='Пароль') this.value='';" /> <span onclick="javascript:document.getElementById('login').submit();">ВОЙТИ</span><br />

обработка:

if ( isset( $addr ) && $addr[1] == "login" && isset( $_POST['login'] ) && isset( $_POST['password'] ) )
{
$password = md5( sha1( $_POST['password'] ) );
$res = mysql_query( "SELECT * FROM `users` WHERE `email`='".mysql_real_escape_string( $_POST['login'] )."' AND `password`='".$password."' LIMIT 0, 1" );
$userInfo = mysql_fetch_array( $res );
@mysql_free_result( $res );
if ( $userInfo )
{
$_SESSION['userID'] = $userInfo['id'];
}
if ( !isset( $_POST['redirect_to'] ) || isset( $_POST['redirect_to'] ) )
{
$_POST['redirect_to'] = "/";
}
$page['title'] = "Вход произведён успешно";

$_POST в данном случае вообще пустой.

Как вы это проверили? В коде в этом нет проверки пуст ли _POST.

Возможно не выполняется условие

isset( $addr ) && $addr[1] == "login"

Для проверки массивов используйте

print_r(array)

В начале файла /login/index.php напишите

var_export($_POST);

сообщите о результате.

результат должен быть чем то вроде

array ("login" => 'логин', "password" => 'пароль')
kit1980
На сайте с 24.07.2006
Offline
62
#7

Немного не в тему, а что это?

if ( !isset( $_POST['redirect_to'] ) || isset( $_POST['redirect_to'] ) )

Если не установлено или установлено?

Энциклопедия языков программирования (http://progopedia.ru/) kit1980.ru (http://kit1980.ru/)
[Удален]
#8
kit1980:
Немного не в тему, а что это?
if ( !isset( $_POST['redirect_to'] ) || isset( $_POST['redirect_to'] ) )


Если не установлено или установлено?

это if (1) ;)

kit1980
На сайте с 24.07.2006
Offline
62
#9
So1:
это if (1) ;)

Ну я так и понял :)

Но зачем? ;)

Kide
На сайте с 29.03.2007
Offline
69
#10
So1:
Как вы это проверили? В коде в этом нет проверки пуст ли _POST.
Возможно не выполняется условие
isset( $addr ) && $addr[1] == "login"


Для проверки массивов используйте
print_r(array)

В начале файла /login/index.php напишите
var_export($_POST);

сообщите о результате.
результат должен быть чем то вроде

Я бы тоже хотел видеть такой результат. но...


[_POST] => Array
(
)

[HTTP_POST_VARS] => Array
(
)

[_GET] => Array
(
)

[HTTP_GET_VARS] => Array
(
)

это выдержка глобалс

Kide добавил 01.12.2008 в 19:27

kit1980:
Ну я так и понял
Но зачем?

Вы бы это все видели... тут много-много разного :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий