|
|
|
| Добрый день. Народ, помогите пожалуйста, кто знает, как можно данные из формы преренаправить сначала на "промежуточный" обработчик, минуя основной (это происходит из-за того, что основной обработчик закодирован Зендом, а нужно добавить дополнительное поле, которое будет отсылаться при помощи "промежуточного" обработчика), а потом, чтобы остальные данные из промежуточного отсылались бы в основной обработчик, как будто на пути между формой и основным обработчиком ничего и небыло..
Или: как сотворить команду в промежуточном обработчике, которая бы стала аналогичным действием, как если бы мы заполнив все поля, нажали бы на кнопку "отправить"? | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 09:30)
| | Отсылаете всю форму в промежуточный обработчик, он делает все что вам нужно и, далее, по средствам сURL отсылает модифицированные данные в основной обработчик. | |
|
|
|
|
|
|
|
для: Zend72
(20.03.2009 в 11:18)
| | А не могли бы немного подробней, к примеру:
if "почта ушла удачно", то
{
"делаем команды для отправки на основной обработчик"
}
Спасибо. | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 12:58)
| | if "почта ушла удачно", то
{
// Инициируем
$curl = curl_init("Адрес обработчика");
// Устанавливаем необходимые опции
curl_setopt($curl, CURLOPT_POST, 1);
$data = 'zag=test&zag2=test2&zag3=test3';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Выполняем запрос
curl_exec($curl);
// Завершаем сеанс
curl_close($curl);
}
Опции CURL по русски | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 12:58)
| |
<?php
if "почта ушла удачно")
{
// Инициируем
$curl = curl_init("Адрес обработчика");
// Устанавливаем необходимые опции
curl_setopt($curl, CURLOPT_POST, 1);
$data = 'zag=test&zag2=test2&zag3=test3';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Выполняем запрос
curl_exec($curl);
// Завершаем сеанс
curl_close($curl);
}
?>
|
Опции CURL по русски | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 12:58)
| | Упс. Руки от холода дражат :-))))) Нажал на мышке мегакнопку, которая делает два клика. Вот второй пост и появился %-))
if "почта ушла удачно", то
{
// Инициируем
$curl = curl_init("Адрес обработчика");
// Устанавливаем необходимые опции
curl_setopt($curl, CURLOPT_POST, 1);
$data = 'zag=test&zag2=test2&zag3=test3';
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Выполняем запрос
curl_exec($curl);
// Завершаем сеанс
curl_close($curl);
}
Опции CURL по русски | |
|
|
|
|
|
|
|
для: Zend72
(20.03.2009 в 13:24)
| | Спасибо, .. Вот только "..test&zag2.." Немного не догнал.. | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 16:16)
| | Это имена переменных и их значения которые будут переданы методом POST.
Например:
<form method="POST" action="obrabotchk.php">
<input type="text" name="text" value="Bla Bla Bla">
<input type="hidden" name="id" value="123">
</form>
|
Обработчику будет передано: text="Bla Bla Bla"&id="123" | |
|
|
|
|
|
|
|
для: Zend72
(20.03.2009 в 16:59)
| | Спасибо большое! Очень познавательно.. Пойду немного отосплюсь и буду пробовать.. П.С.
..а мегакнопка тоже помогла.. В два раза быстрее понял.. :) | |
|
|
|
|
|
|
|
для: Transform
(20.03.2009 в 18:19)
| | Интересно, скрипт критичен к версии php?
(на моём серевере 4.6)
Я так понимаю, что по аналогии, мне нужно написать, если форма примерно такого содержания (фрагмент):
<INPUT class=input name="fam" maxlength=20>
<INPUT class=input name="name" maxlength=60>
<INPUT class=input name="otch" maxlength=20>
$data = 'fam=$fam&name=$name&otch=$otch';
Но почему-то основной обработчик не понимает значений переменных..
Могут ли быть ещё какие-нибудь нюансы? Спасибо. | |
|
|
|
|
|
|
|
для: Transform
(21.03.2009 в 10:11)
| | Это форма которую нужно отправить
<INPUT class=input name="fam" maxlength=20>
<INPUT class=input name="name" maxlength=60>
<INPUT class=input name="otch" maxlength=20>
|
Это обработчик который получает данные из формы методом POST, как-то их обрабатывает и решает что делать дальше. Так как данные переданы методом POST, то искать их следует в суперглобальном массиве $_POST[]. В данном случае переменную fam найдется здесь $_POST['fam']. Соответственно скрипт должен выглядеть приблизителльно так:
<?php
//..
// Как то обрабатываем полученные данные...
//..
// Все. Наобрабатываилсь. Теперь нужно переслать данные
// основному обработчику. Это можно сделать с помошью библиотеки cURL
// которая имитирует работу браузера.
if ("почта ушла удачно")
{
// Инициируем сеанс
$curl = curl_init("Адрес обработчика");
// Устанавливаем необходимые опции
// при ненулевом значении PHP выполняет
// обычный метод HTTP POST. Тип POST будет
// иметь нормальный вид application/x-www- from-urlencoded
// Как видите в качестве значения установлена единица
curl_setopt($curl, CURLOPT_POST, 1);
// Данные которые будут переданы методом POST
$data = 'fam='.$_POST['fam'].'&name='.$_POST['name'].'&otch='.$_POST['otch'];
//Послать строку данных методом HTTP POST.
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// Выполняем запрос
curl_exec($curl);
// Завершаем сеанс
curl_close($curl);
}
?>
|
| |
|
|
|
|
|
|
|
для: Zend72
(22.03.2009 в 13:08)
| | Zend72, УРА! Вам и Вашей мегакнопке МЕГАСПАСИБО :)
Всё отлично сработало.
---------------
Желаю всем успехов и удач по решению PHP задач! | |
|
|
|