Другими словами чтобы пользователь, который ввел в форму данные на первой странице, имел возможность наглядно еще раз перепроверить данные в обработчике, а потом нажимая кнопку - запускал функцию MAIL. Объясните начинающему PHP`шнику
Спустя 13 часов, 5 минут, 11 секунд (30.04.2010 - 08:05) Jinus написал(а):
Предполагается, что вы знаете как впринципе осуществить отправку сообщения с данными формы...
При обработке формы пишите условие "Если не нажата кнопка, то выводим данные для проверки. В другом случае - используем mail();".
При обработке формы пишите условие "Если не нажата кнопка, то выводим данные для проверки. В другом случае - используем 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 "ошибка передачи повторите позже";}
Буду благодарен если подправите код, думаю что он бы пригодился многим!
Спустя 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, то возможности перепроверить у него не будет, а так он может и вернуться назад если нужно! Но всеравно большое спасибо!!!
Спустя 4 минуты, 52 секунды (30.04.2010 - 13:41) blardok написал(а):
А то я уже написал с применением fwrite fopen fread, но это гемморойнее так делать:)
Спустя 2 минуты, 39 секунд (30.04.2010 - 13:43) Jinus написал(а):
Цитата (blardok @ 30.04.2010 - 14:41) |
А то я уже написал с применением fwrite fopen fread, но это гемморойнее так делать:) |
Ну да это уже перебор
Спустя 1 день, 18 часов, 43 минуты, 19 секунд (2.05.2010 - 08:27) blardok написал(а):
блин чё куда вставить я имею ввиду $var1 не передается на мыло??? Как её передать чтобы она не терялась? ПАМАГИТЕ прогеры!!!
Спустя 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`ы, я ваще не вкуриваю ребятки. Уже перепробовал все, но один фиг переменные не передаются
Спустя 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`ами) для примера, а дальше я сам разберусь. Форм -то у меня много - это лишь пример для меня:)
Заплачу 5 wmz - на ПИВО wmid 289321036053 если составите нормальную реализацию этого скрипта
Спустя 12 часов, 45 минут, 12 секунд (6.05.2010 - 22:09) twin написал(а):
index.php
check.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 написал(а):
Спасибо я ВАМ очень благодарен, что дали ответ, пойду наяривать фичу:)