[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кнопка отправки на функцию MAIL
blardok
Хотелось бы понять как в обработчике PHP, где отправляется почта посредством функции MAIL можно было бы осуществить эту задачу при нажатии на кнопку, а не в последовательности алгоритма.
Другими словами чтобы пользователь, который ввел в форму данные на первой странице, имел возможность наглядно еще раз перепроверить данные в обработчике, а потом нажимая кнопку - запускал функцию MAIL. Объясните начинающему PHP`шнику biggrin.gif



Спустя 13 часов, 5 минут, 11 секунд (30.04.2010 - 08:05) Jinus написал(а):
Предполагается, что вы знаете как впринципе осуществить отправку сообщения с данными формы...
При обработке формы пишите условие "Если не нажата кнопка, то выводим данные для проверки. В другом случае - используем mail();".

Спустя 5 часов, 1 минута, 37 секунд (30.04.2010 - 13:06) blardok написал(а):
Так, так, так, короче пишу код комментируя: имею два файла - order.php и check.php - форма и обработчик соответственно.

Как пример
order.php :

<?
echo <<<HERE
Введите данные!
<form action ='check.php' method='post'>
<input name="var1" type="text">
<input type="submit" name ='button' value='Проверить'>
</form>

HERE;
?>

Обработчик check.php :

<?
$var1=$_POST['var1'];
if ($var1==true){echo "Вы ввели: $var1";}else{echo "Вы ничего не ввели! нажмите на кнопку <input type='button' value='Назад' onclick='history.go(-1)' /> введите данные и повторите проверку";}

//дальше как не знаю...как сюды вставить кнопку чтобы отправлялась при //нажатии на нее ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

if ($var1==true){
$m = mail("mymail@mymail.ru","Zakaz","бла бла - $var1 \n","content-type:text/plain; charset=Windows-1251\r \n");
echo "ваша заявка отправлена";
}else {echo "ошибка передачи повторите позже";}

Буду благодарен если подправите код, думаю что он бы пригодился многим! rolleyes.gif

Спустя 22 минуты, 26 секунд (30.04.2010 - 13:29) Jinus написал(а):
Цитата (blardok @ 30.04.2010 - 14:06)
дальше как не знаю...как сюды вставить кнопку чтобы отправлялась при //нажатии на нее

А что не понятно то?
if(!isset($_POST['dopustim_mail']) {
$var1=$_POST['var1'];
if($var1 != '') {echo "Вы ввели: $var1";} else {echo "Вы ничего не ввели! нажмите на кнопку
<input type='button' value='Назад' onclick='history.go(-1)' /> введите данные и повторите проверку"
;}
echo '<form method="POST" action=""><input type="submit" name="dopustim_mail" value="Mail"></form>';
} else {
if(mail("mymail@mymail.ru","Zakaz","бла бла - $var1 \n","content-type:text/plain; charset=Windows-1251\r \n")) echo "ваша заявка отправлена";
else echo "ошибка передачи повторите позже";
}

Единственное что - данные с формы придётся хранить где нить в сессии или выводить как скрытые поля...
Вы уверены что вам нужно именно так делать? Ведь можно просто проверить и если всё норм, то юзать mail(); а если нет - предлагать вернуться...

Спустя 7 минут (30.04.2010 - 13:36) blardok написал(а):
Ну Просто если пользователь ошибся например с адресом. Живет например на Чапаева 4-55 а ввел по ошибке Чапаева 44-55, то возможности перепроверить у него не будет, а так он может и вернуться назад если нужно! Но всеравно большое спасибо!!! rolleyes.gif rolleyes.gif rolleyes.gif

Спустя 4 минуты, 52 секунды (30.04.2010 - 13:41) blardok написал(а):
А то я уже написал с применением fwrite fopen fread, но это гемморойнее так делать:smile.gif)

Спустя 2 минуты, 39 секунд (30.04.2010 - 13:43) Jinus написал(а):
Цитата (blardok @ 30.04.2010 - 14:41)
А то я уже написал с применением fwrite fopen fread, но это гемморойнее так делать:)

Ну да это уже перебор tongue.gif

Спустя 1 день, 18 часов, 43 минуты, 19 секунд (2.05.2010 - 08:27) blardok написал(а):
блин чё куда вставить я имею ввиду $var1 не передается на мыло??? dry.gif Как её передать чтобы она не терялась? ПАМАГИТЕ прогеры!!!

Спустя 2 дня, 1 час, 54 минуты, 30 секунд (4.05.2010 - 10:21) Jinus написал(а):
Цитата (blardok @ 2.05.2010 - 09:27)
Как её передать чтобы она не терялась?

Передавайте переменные через сессию

Спустя 34 минуты, 6 секунд (4.05.2010 - 10:55) twin написал(а):
Не надо сессию. Тут самое место hidden'aм
На второй странице автоматически заполняется форма со скрытыми полями. Рядом - простой вывод. И две кнопки. Если норм - на обработчик с майлом. Если нет - обратно на первую форму.

Сессия может устареть, пока юзер думает. Да и сервер этим напрягать не след.

Спустя 2 часа, 58 минут, 54 секунды (4.05.2010 - 13:54) Jinus написал(а):
Цитата (twin @ 4.05.2010 - 11:55)
Не надо сессию. Тут самое место hidden'aм
На второй странице автоматически заполняется форма со скрытыми полями. Рядом - простой вывод. И две кнопки. Если норм - на обработчик с майлом. Если нет - обратно на первую форму.

Сессия может устареть, пока юзер думает. Да и сервер этим напрягать не след.

Тоже верно, но только при условии, что данные будут проверены ещё раз...(???)
---
Кстати я вот тут подумал над этой мыслишкой: а есть смысл это делать? То есть, можно ли на этой страничке изобразить XSS, ну или ещё что...?

Спустя 23 часа, 59 минут, 53 секунды (5.05.2010 - 13:54) blardok написал(а):
Ну как это реализовать - я тупой наверное! Напишите хоть код, куда вставить hidden`ы, я ваще не вкуриваю ребятки. sad.gif Уже перепробовал все, но один фиг переменные не передаются ph34r.gif

Спустя 4 часа, 1 минута, 25 секунд (5.05.2010 - 17:56) blardok написал(а):
Короче кто-нить поможет или может за бабло тока?

Спустя 46 минут, 5 секунд (5.05.2010 - 18:42) twin написал(а):
Форму свою давай

Спустя 14 часов, 42 минуты, 39 секунд (6.05.2010 - 09:24) blardok написал(а):
// это форма: нужно передать 5 строчных переменных, 5 числовых переменных и чтоб о обработчике 5 числовых переменных складывались в сумму и отображались (простое сложение - типа ИТОГО: на сумму *** рублей) а потом при нажатии на кнопку производилась отправка всех переменных на мыло
<?
echo <<<HERE
Введите данные!
<form action ='check.php' method='post'>

// строковые перменные - ФИО Адрес e-mail и т.д.
<input name="var1" type="text">
<input name="var2" type="text">
<input name="var3" type="text">
<input name="var4" type="text">
<input name="var5" type="text">
// Числовые переменные (стоимость услуг - типа рублей)
<input type='checkbox' name='var6' value='ON'>
<input type='checkbox' name='var7' value='ON'>
<input type='checkbox' name='var8' value='ON'>
<input type='checkbox' name='var9' value='ON'>
<input type='checkbox' name='var10' value='ON'>

<input type="submit" name ='button' value='Предварительный просмотр заказа'>
</form>

HERE;
?>

/* А это обработчик куда вставить hidden`ы, чтобы он отправлял переменные $var1 - var10 на мыло при нажатии на кнопку и чтоб переменные не ТЕРЯЛИСЬ в обработчике. Нужно вбить 10 переменных из формы : */
<?
if(!isset($_POST['dopustim_mail']))
{$var1=$_POST['var1'];
if($var1 != '') {echo "Вы ввели: $var1";} else {echo "Вы ничего не ввели! нажмите на кнопку
<input type='button' value='Назад' onclick='history.go(-1)' /> введите данные и повторите проверку"
;}
echo '<form method="POST" action=""><input type="submit" name="dopustim_mail" value="Заказать выбранные услуги"></form>';
} else {
if(mail("mymail@mymail.ru","Zakaz","бла бла - $var1 \n","content-type:text/plain; charset=Windows-1251\r \n")) echo "ваша заявка отправлена";
else echo "ошибка передачи повторите позже";
}
?>



Мне просто нужно понять суть как это осуществить,(с hidden`ами) для примера, а дальше я сам разберусь. Форм -то у меня много - это лишь пример для меня:)


Заплачу smile.gif 5 wmz - на ПИВО wmid 289321036053 если составите нормальную реализацию этого скрипта biggrin.gif

Спустя 12 часов, 45 минут, 12 секунд (6.05.2010 - 22:09) twin написал(а):
index.php
<form action ='check.php' method='post'>
<input
name="var1" type="text">
<input
type="submit" name ='button' value='Предварительный просмотр заказа'>
</form>


check.php
<form action ='go.php' method='post'>
<?php
echo $_POST['var1'] ?>
<input
name="var1" type="hidden" value="<?php echo $_POST['var1'] ?>">
<input
type="submit" name ='button' value='Оформить'>
</form>



Спустя 1 день, 21 час, 54 секунды (8.05.2010 - 19:10) blardok написал(а):
Спасибо я ВАМ очень благодарен, что дали ответ, пойду наяривать фичу:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.