Я начинающий WEB программист. Помогите разобраться
Имею следующую конфигурацию сервера
Server: Apache/2.0.50 (FreeBSD) PHP/4.3.8 mod_ssl/2.0.50 OpenSSL/0.9.7c-p1На некоторых компах в офисе не работает ПОСТ. Выглядит это примерно так!
<?php
if (isset($HTTP_POST_VARS['sendm']))
{
//Выполнить определенные действия
}
?>
<FORM method=post name='form1'>
<INPUT name=field1 type=hidden value="">
<input name=sendm type=submit value="Отправить">
</form>Так вот эти определенные действия после нажатия кнопки и перезагрузки страницы не делаются, то есть (isset($HTTP_POST_VARS['sendm']))=false.
Но повторюсь это происходит не на всех компах, а только на некоторых.
Броузеры везде IE6.0 Везде стоят установки по умолчанию! Казалось бы проблемы быть не должно, а она есть. Помогите разобраться! Почему то мне кажется что это проблема Apache!
Ты уверен, что всегда щелкаешь по кнопке? Или иногда просто Enter?
Это не я щелкаю я юзеры! Но они вроде всегда на кнопку жмут! На странице только одна форма. А в чем разница?
Во первых, переменная HTTP_POST_VARS устарела, НУЖНО использовать $_POST.
Во вторых, если теряются переменные добавь в код phpinfo(INFO_VARIABLES) и смотри что происходит с переменными там.
Сколько работаю с PHP всегда использовал $HTTP_POST_VARS и все работало. Стоило перейти на Unix и Apache2, как стали возникать подобные казусы. Может в работе PHP с Apache2 проблема. Я где то об этом слышал! У кого нибудь есть соображения по этому поводу!
Еще раз тебе говорят, ни Apache ни Unix тут не при чем. Смотри сам в ман
HTTP POST variables: $_POST
Note: Introduced in 4.1.0. In earlier versions, use $HTTP_POST_VARS
перевод нужен?
что тебе phpinfo() говорит??И кстати, что там за такие таинственные действия после отправки формы делаются?
А что он мне может сказать! Выдает список переменных. А действия не странные, просто $HTTP_POST_VARS не видит пост! Попробую понаблюдать за $_POST. Только мне кажется не в этом суть проблемы!
>Это не я щелкаю я юзеры! Но они вроде всегда на кнопку
>жмут! На странице только одна форма. А в чем разница?Разница как-раз в том, что если не кликнуть на кнопке, то ты и не увидишь ее в переменных. Замени метод на GET и сам увидишь. Если тебе нужно проверить, была ли отправлена именно эта форма, то заводи hidden и его смотри.
P.S.: у тебя на клаве восклицательный знак западает ;)
2Dev Ok! Спасибо!
>Я начинающий WEB программист. Помогите разобраться
>Имею следующую конфигурацию сервера
>Server: Apache/2.0.50 (FreeBSD) PHP/4.3.8 mod_ssl/2.0.50 OpenSSL/0.9.7c-p1
>
>На некоторых компах в офисе не работает ПОСТ. Выглядит это примерно так!
>
><?php
>if (isset($HTTP_POST_VARS['sendm']))
> {
> //Выполнить определенные действия
> }
>?>
><FORM method=post name='form1'>
> <INPUT name=field1 type=hidden value="">
> <input name=sendm type=submit value="Отправить">
></form>
>
>Так вот эти определенные действия после нажатия кнопки и перезагрузки страницы не
>делаются, то есть (isset($HTTP_POST_VARS['sendm']))=false.
>Но повторюсь это происходит не на всех компах, а только на некоторых.
>
>Броузеры везде IE6.0 Везде стоят установки по умолчанию! Казалось бы проблемы быть
>не должно, а она есть. Помогите разобраться! Почему то мне кажется
>что это проблема Apache!Попробуй не $HTTP_POST_VARS а $_POST