|
|
|
| Есть ли в php возможность:
1) передать данные в скрипт POST-ом, но без формы, то есть типа header, но еще передать парвметры не через
header("Location: ../reg.html?a=1&b=2")
|
а так же, но параметры отдельно, чтобы принимались методом POST
2) возможно ли средствами php отправить данные в скрипт и получить их без перезагрузки страницы без использования Ajax ? | |
|
|
|
|
|
|
|
для: MRE
(17.09.2007 в 12:41)
| | 1. можно, curl или сокетом
2. чем вам не нравится аякс? и отправлять данные надо именно на php а не js? | |
|
|
|
|
|
|
|
для: bronenos
(17.09.2007 в 12:59)
| | Спасибо!
Не, Ajax меня всем устраивает, просто интересно есть ли другие способы. | |
|
|
|
|
|
|
|
для: MRE
(17.09.2007 в 13:21)
| | Данные, отдаваемые методом пост - это тупо какое-то количество байт, следующих полсе пустого заголовка, посылаемого браузером.
К серверу приходит такая байда:
заголовок
заголовок
Content-length: размер данных POST
Данные, передаваемые методом пост.
|
Я писал об этом. | |
|
|
|
|
|
|
|
для: SHAman
(27.11.2007 в 00:27)
| | После пустой строки. Заголовок не может быть пустым. | |
|
|
|
|
|
|
|
для: Trianon
(27.11.2007 в 00:56)
| | Пустую строку частенько называют "пустым заголовком". Это не я выдумал, это в литературе так встречается. Впрочем, это дело вкуса. | |
|
|
|
|
|
|
|
|
для: cheops
(18.09.2007 в 10:32)
| | Процесс передачи данных этим методом занимает порядка 20 секунд у меня на компьютере (код брал из указанных здесь ссылок). Этот способ (POST) мне нужен для гостевой книги. (У меня форма находится на той же странице, что и сообщения в index.php. Из формы в index.php данные идут в скрипт addrec.php, где анализируются и пишутся в базу. Или в случае неправильного ввода передаются обратно в форму в index.php - для этого и нужна отправка методом POST). Такое большое время наверное неприемлемо. Можно ли ускорить? | |
|
|
|
|
|
|
|
для: Alex14
(24.11.2007 в 13:10)
| | Где тестируете систему на локальном хосте или на сервере? | |
|
|
|
|
|
|
|
для: cheops
(25.11.2007 в 13:01)
| | У себя на компьютере.
Из файла post.php
<?
// передаваемые данные
$name = "Login";
$pass = "Password";
$hostname = "localhost";
$fp = fsockopen($hostname,80);
// формируем строку с отправляемымы данными
$data = "name=".urlencode($name)."&pass=".urlencode($pass)."\r\n\r\n";
$headers = "POST /tmp/handler.php HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
// отправляем
fwrite($fp,$headers.$data);
// на этом впринципе отправка закончена,
// для уверенности можно прочитать один
// байт или все содержимое:
while(!feof($fp))
echo fread($fp,1024);
fclose($fp);
?>
|
передаются данные в handler.php
<?php
echo "Имя - $_POST[name] ";
echo "Пароль - $_POST[pass] ";
?>
|
После открытия в браузере страницы http://localhost/tmp/post.php и 15-20 секунд ожидания появляется ответ:
HTTP/1.1 200 OK Date: Sun, 25 Nov 2007 13:02:21 GMT Server: Apache/1.3.33 (Win32) X-Powered-By: PHP/5.2.4 Transfer-Encoding: chunked Content-Type: text/html 22 Имя - Login Пароль - Password 0 | |
|
|
|
|
|
|
|
для: Alex14
(25.11.2007 в 15:58)
| | Закрывайте соединение
<?
$headers = "POST /tmp/handler.php HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-Length: ".strlen($data)."\r\n"
."Connection: Close\r\n\r\n";
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(25.11.2007 в 16:07)
| | Не помогает. Вместо "Transfer-Encoding: chunked" выдаётся "Connection: close". В остальном то же самое. | |
|
|
|
|
|
|
|
для: Alex14
(25.11.2007 в 15:58)
| | Замените HTTP/1.1 на HTTP/1.0 (в Windows ошибка, которая замедляет такие обращения - в UNIX и с HTTP/1.1 всё должно быть нормально и быстро). | |
|
|
|
|
|
|
|
для: cheops
(26.11.2007 в 12:15)
| | А по-моему дело не в ОС,
Вот это
// на этом впринципе отправка закончена,
// для уверенности можно прочитать один
// байт или все содержимое:
while(!feof($fp))
echo fread($fp,1024);
|
ну никак не отвечает протоколу 1.1 | |
|
|
|
|
|
|
|
для: Trianon
(26.11.2007 в 23:51)
| | Возможно, но в UNIX этот код будет выполняться сильно быстрее, чем в Windows. | |
|
|
|
|
автор: vasso (28.02.2008 в 18:57) |
|
|
для: cheops
(27.11.2007 в 12:09)
| | тоже столкнулся с этой проблемой задержки ответа. причем, использую аякс ответ получаю мгновенно.
может есть свежие мысли по этому поводу?
для хеопса - сервер unix | |
|
|
|
|
|
|
|
для: cheops
(27.11.2007 в 12:09)
| | тоже столкнулся с этой проблемой задержки ответа. причем, использую аякс ответ получаю мгновенно.
может есть свежие мысли по этому поводу?
для хеопса - сервер unix | |
|
|
|
|