Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запросы POST и GET из форм в IE не работают 
:(
    Опции темы
terya
Дата 16.8.2010, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Запросы POST и GET из форм  в IE не работают. В скрипте в который приходит запрос из формы нет массивов $_GET и $_POST (только в IE)
Может это быть из-за того, что у меня на акаунте (у хостинга) это второй сайт, и он находится в папке первого сайта /public_html/site.com? Может быть это из-за сервера хостера?

Причем если методом GET передавать, то в адресной строке есть переменные, а когда проверяешь их существование, их нет.

Это сообщение отредактировал(а) terya - 16.8.2010, 17:06
PM MAIL ICQ Skype   Вверх
skyboy
Дата 16.8.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



так не бывает  smile
пример верстки формы и РНР скрипт-обработчик формы в студию
PM MAIL   Вверх
terya
Дата 16.8.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Цитата

так не бывает
пример верстки формы и РНР скрипт-обработчик формы в студию


вот форма
Код

 <form action="http://site.com/auth.php" method="post">
    <div class="en_form">
     <p>Логин:</p>
     <input name="login" type="text" size="20" maxlength="20">
     <p>Пароль:</p>
     <input name="pass" type="password" size="20" maxlength="12">
     <input name="return" type="hidden" value="<? echo $_SERVER['HTTP_REFERER'];?>">
     <input class="but" name="" type="submit" value="Войти">
    </div>
 </form>


а вот обработчик
Код

<? 
if (isset($_POST['login'])) $login=$_POST['login']; else echo "login нет";
if (isset($_POST['pass'])) $pass=$_POST['pass']; else echo "pass нет";
if (isset($_POST['return'])) $return=$_POST['return']; else echo "return нет";
?>


Это сообщение отредактировал(а) terya - 16.8.2010, 18:15
PM MAIL ICQ Skype   Вверх
skyboy
Дата 16.8.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(terya @  16.8.2010,  17:13 Найти цитируемый пост)
form action="http://site.com/auth.php"

ты отправляешь форму на другой домен? не совпадающий с тем, где расположена форма?
PM MAIL   Вверх
terya
Дата 16.8.2010, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



нет, на этом же
PM MAIL ICQ Skype   Вверх
capitan
Дата 16.8.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



а обработчик на какой странице?
что покажет код:
Код

echo '<pre>';
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_REQUEST);
var_dump($_POST);
var_dump($_GET);
echo '</pre>';


Это сообщение отредактировал(а) capitan - 16.8.2010, 21:12
PM MAIL WWW ICQ   Вверх
lexxmix
Дата 17.8.2010, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 13.9.2007

Репутация: нет
Всего: 0



Всё там есть просто показывать надо.
Код

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
</head>
<body>
<div class="en_form">
<form method="post">
<p>Логин:</p>
<input name="login" type="text" size="20" maxlength="20">
<p>Пароль:</p>
<input name="pass" type="password" size="20" maxlength="12">
<input name="return" type="hidden" value="<?php if(isset($_SERVER['HTTP_REFERER'])){print $_SERVER['HTTP_REFERER'];}?>">
<input class="but" name="" type="submit" value="Войти">
</form>
</div>
</body>
</html>

<?php
if(isset($_POST['login'])){$login=$_POST['login'];print $login;}else{echo "login нет ";}
if(isset($_POST['pass'])){$pass=$_POST['pass'];print $pass;}else{echo "pass нет ";}
if(isset($_POST['return'])){$return=$_POST['return'];print $return;}else{echo "return нет ";}
print_r($_POST);
?>

PM ICQ   Вверх
Basili4
Дата 17.8.2010, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.8.2010

Репутация: нет
Всего: нет



capitan
зачем загромождать одними и теми же значениями

echo '<pre>';
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_REQUEST);
echo '</pre>';

Хватит с головой

PM MAIL   Вверх
capitan
Дата 17.8.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Basili4,  уверены?  в $_REQUEST вообще-то находятся все переменные и GET и POST. Нам надо определить каким способом они передаются и есть ли они вообще.  На дебаг загромождения не влияют, а только увеличивают вероятность определения ошибки. 
P.S.  Оформляйте код в тегах, не читается.

Это сообщение отредактировал(а) capitan - 17.8.2010, 11:52
PM MAIL WWW ICQ   Вверх
terya
Дата 17.8.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Цитата

echo '<pre>';
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_REQUEST);
echo '</pre>';

Хватит с головой

этот код еще не пробывал, но самое интересное, что вот сейчас попробовал у своего товарища на компе в ИЕ запустить эту форму, и все работает отлично. Хотя у меня дома и еще на одном компе пробовал в ИЕ не работает, а в других браузерах работает. Что бы это могло быть?
Цитата

<?php
if(isset($_POST['login'])){$login=$_POST['login'];print $login;}else{echo "login нет ";}
if(isset($_POST['pass'])){$pass=$_POST['pass'];print $pass;}else{echo "pass нет ";}
if(isset($_POST['return'])){$return=$_POST['return'];print $return;}else{echo "return нет ";}
print_r($_POST);
?>

вообщем сейчас у меня так:
Код

<?php
if(isset($_POST['login'])){echo "login есть ";}else{echo "login нет ";}
if(isset($_POST['pass'])){echo "pass есть";}else{echo "pass нет ";}
if(isset($_POST['return'])){echo "return есть ";}else{echo "return нет ";}
?>

И в ИЕ выводит что всех трех "нет"

Это сообщение отредактировал(а) terya - 17.8.2010, 12:13
PM MAIL ICQ Skype   Вверх
capitan
Дата 17.8.2010, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



terya,  Нужно использовать танцы с бубном или http://habrahabr.ru/blogs/noie/81784/
PM MAIL WWW ICQ   Вверх
lexxmix
Дата 17.8.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 13.9.2007

Репутация: нет
Всего: 0



добавь вначале чтоб не кешировалось 
Код

       header("http/1.1 200 ok");
       header("Cache-Control: no-store, no-cache, must-revalidate");
       header("Pragma: no-cache");
       header("Expires: -1");



Цитата

И в ИЕ выводит что всех трех "нет"



в первый раз показывает что нет, после отправки покажет отправленные.

Это сообщение отредактировал(а) lexxmix - 17.8.2010, 13:16
PM ICQ   Вверх
capitan
Дата 17.8.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



lexxmix,  откуда взят сей код?
Код

<?php 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Expires: " . date("r")); 
?> 

Этого достаточно.
PM MAIL WWW ICQ   Вверх
terya
Дата 17.8.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Цитата

echo '<pre>';
var_dump($_SERVER['SCRIPT_FILENAME']);
var_dump($_REQUEST);
var_dump($_POST);
echo '</pre>';

после этого увидел на экране в ИЕ (6, 7, 8)
Код

string(54) "/home/username/public_html/site.com/index.php"
array(1) {
  ["params"]=>
  string(4) "auth"
array(0) {
}

А вот это увидел в Мозиле, Опере и Хроме
Код

string(54) "/home/username/public_html/site.com/index.php"
array(4) {
  ["params"]=>
  string(4) "auth"
  ["login"]=>
  string(2) "11"
  ["pass"]=>
  string(2) "11"
  ["return"]=>
  string(25) "http://site.com/"
}
array(3) {
  ["login"]=>
  string(2) "11"
  ["pass"]=>
  string(2) "11"
  ["return"]=>
  string(25) "http://site.com/"
}



Цитата

<?php 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Expires: " . date("r")); 
?> 

к сожалению и это тоже не помогло.

Цитата

header("http/1.1 200 ok");
       header("Cache-Control: no-store, no-cache, must-revalidate");
       header("Pragma: no-cache");
       header("Expires: -1");

и это не помогло. Что это может быть? smile

Добавлено через 9 минут и 9 секунд
Еще раз хотел сказать, что при переходе на страницу с формой в поле
Код

 <input name="return" type="hidden" value="<? echo $_SERVER['HTTP_REFERER'];?>">


когда просматриваю html-код страницы, там вот такое дело
Код

 <input name="return" type="hidden" value="">

после того как обновишь страницу в параметре value появляется нужное значение
может это покажет на причину
PM MAIL ICQ Skype   Вверх
capitan
Дата 17.8.2010, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



terya, не стоит присваивать переменным зарезервированные имена. return - зарезервированное имя. Назовите по другому.
Судя по форме. Запрос должен идти на:
Код

<form action="http://site.com/auth.php" method="post">


А данные ловим на 
Код

string(54) "/home/username/public_html/site.com/index.php"


Это как?

Давайте подробнее. На какой странице стоит форма, на какой обработчик?

Это сообщение отредактировал(а) capitan - 17.8.2010, 17:25
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1384 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.