Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: По нажатию кнопки - данные двум обработчикам.
 
 автор: Gandzas   (06.02.2007 в 02:08)   письмо автору
 
 

Есть стандартная форма регистрации. Данные передаются методом post обработчику. Возможно ли сделать так, чтобы эти же данные без дополнительных нажатий (промежуточных страниц) передавались еще одному обработчику, который будет высылать эти данные на конкретный e-mail?

   
 
 автор: antf   (06.02.2007 в 02:17)   письмо автору
 
   для: Gandzas   (06.02.2007 в 02:08)
 

Наверное, можно второй обработчик подинклудить в первый.

   
 
 автор: Gandzas   (06.02.2007 в 02:26)   письмо автору
 
   для: antf   (06.02.2007 в 02:17)
 

а до второго обработчика? Чтобы основной обработчик вообще не трогать?

   
 
 автор: ZuArt   (06.02.2007 в 09:50)   письмо автору
 
   для: Gandzas   (06.02.2007 в 02:26)
 

А почему нет? просто в код формы регистрации переназначить обработчик с первого на второй и уже во втором обработчике вызывать первый - инклудом или через сокеты - что ближе.
ну или как вариант - можно попробовать просто JS-скриптами сабмитить с переназначением обработчика после первого сабмита, но думаю, что не прокатит =((( все-таки не многопоточность ;)

   
 
 автор: Trianon   (06.02.2007 в 10:44)   письмо автору
 
   для: Gandzas   (06.02.2007 в 02:08)
 

Нет. Не выйдет.

   
 
 автор: ZuArt   (06.02.2007 в 10:47)   письмо автору
 
   для: Trianon   (06.02.2007 в 10:44)
 

что не выйдет =) ты ж конкретнее говори - если про JS - так я сразу сказал, что не прокатит (а сомнения и надежду на "прокатит" никто не отменял)... а вот если ты про переопределение обработчика - то уж будь любезен обосновать =) - мне и самому интересно, почему нет.

   
 
 автор: Trianon   (06.02.2007 в 10:49)   письмо автору
 
   для: ZuArt   (06.02.2007 в 10:47)
 

Внимательно читайте постановку задачи:

... без дополнительных нажатий (промежуточных страниц) передавались ....

   
 
 автор: ZuArt   (06.02.2007 в 10:55)   письмо автору
 
   для: Trianon   (06.02.2007 в 10:49)
 

Отвечаю - читай внимательно - промежуточных СТРАНИЦ!!! Второй скрипт и не будет ничего выводить - отработал втихую и передал управление первому (основному), который уже и будет выводить СТРАНИЦУ!!!

Страница - это то, что отображает браузер - а скриптов, которые могут создавать ОДНУ страницу может быть сколько угодно и каждый может выполнять свою функцию!

   
 
 автор: Trianon   (06.02.2007 в 10:58)   письмо автору
 
   для: ZuArt   (06.02.2007 в 10:55)
 

Основному скрипту придут некорректные данные клиента. Как минимум - REMOTE_ADDR

   
 
 автор: ZuArt   (06.02.2007 в 11:09)   письмо автору
 
   для: Trianon   (06.02.2007 в 10:58)
 

С какого перепугу такая уверенность? оператор include изучали? как он работает в курсе???
Объясню - интерпретатор при обнаружении данного оператора обращается к указанному скрипту и выполняет ЕГО код последовательно до момента завершения работы скрипта, затем возвращается в первый скрипт... Соответственно, если не менять переменные окружения, то они остануться теми, которые и должны быть... Кроме тех, которые содержат в себе имя доп скрипта, но ничего не мешает их переназначить на нужные...

принцип работы...

в странице было: <form action="script.php">...</form>
делаем <form action="script2.php">...</form>

содержание script2.php
<?
дополнительный код, который необходимо выполнить - БЕЗ изменения переменных окружения
замена переменных типа $_SERVER["SCRIPT_NAME"] - имя script2.php заменяем на scrip.php

include ("script.php");
?>

   
 
 автор: Loki   (06.02.2007 в 11:16)   письмо автору
 
   для: ZuArt   (06.02.2007 в 11:09)
 

Это один обработчик. А сколько он в себя файлов включает - формы не касается.
Как ваш код будет работать если обработчики находятся на разных сайтах, например?

   
 
 автор: ZuArt   (06.02.2007 в 11:30)   письмо автору
 
   для: Loki   (06.02.2007 в 11:16)
 

"Это один обработчик. А сколько он в себя файлов включает - формы не касается." - вот про то и говорю =)

"обработчики находятся на разных сайтах" - ну что тут скажешь - ХЗ, т.к. сталкивался с такими случаями, когда скрипт с другого хостера можно и инклюдить, но в большинстве случаев тока через сокеты =(

Если оригинальный обработчик не юзает переменные типа указанного выше REMOTE_ADDR - то вполне возможно, просто придется к вызову скрипта еще и параметры $_GET + $_POST (может еще и кукисы) передавать =(... Тут уже зависит от кода основного скрипта.

   
 
 автор: mihdan   (07.02.2007 в 12:02)   письмо автору
 
   для: ZuArt   (06.02.2007 в 11:30)
 

Попробуй через JS

<script>
function foo(form) {
    document.form.action = 'first.php';
    document.form.submit();
    document.form.action = 'second.php';
    document.form.submit();
}
</scrip>
<form>
foo
bar
<input type="button" onclick="foo(this.form);">
</form>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования