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

Форум PHP

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

 

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

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

тема: Скрипт отправки формы на e-mail
 
 автор: pautina   (26.10.2011 в 08:52)   письмо автору
 
 

Здравствуйте Уважаемое сообщество.
Ни подскажете как написать скрипт отправки заполненой формы на почту.
В форме будут следующие поля.
Компания (любой русский или английский текст)
ФИО (любой русский или английский текст)
e-mail ()
телефон (числовой тип и можно -)
Продукция (поле со списком)
Кол-во (поле со списком)
Стоимость (поле со списком)
Дополнительный текст (поле примечания)
Визуально форму я создам, подскажите как реализовать функцилнал.
Нужно ещё чтобы была проверка на тип данных в каждом поле, (если например введён не адрес электронной почты, то чуть ниже поля выводится сообщение что это не адрес электронной почты)

  Ответить  
 
 автор: cheops   (26.10.2011 в 11:50)   письмо автору
 
   для: pautina   (26.10.2011 в 08:52)
 

Дело не хитрое, формируете строку для заголовка, строку для тела письма и подставляете их в функцию mail(), в которой указываете адрес доставки.

Проверку корректности e-mail удобно осуществить при помощи регулярных выражений.

  Ответить  
 
 автор: pautina   (26.10.2011 в 13:20)   письмо автору
 
   для: cheops   (26.10.2011 в 11:50)
 

Сделал форму для отправки выводится в модальном окне.

<form id="form" action="/" method="post">    
        
            <fieldset>
                <p class="first">
                    <label for="kompany">Компания *</label>
                    <input type="text" name="kompany" id="kompany" size="30" />
                </p>
                <p>
                    <label for="fio">ФИО *</label>
                    <input type="text" name="fio" id="fio" size="30" />
                </p>
                <p>
                    <label for="email">Email *</label>
                    <input type="text" name="email" id="email" size="30" />
                </p>
                <p>
                    <label for="tel">Телефон *</label>
                    <input type="text" name="tel" id="tel" size="30" />
                </p>
                <p>
                    <label for="prod">Продукция *</label>
                    <select name="prod">
                    <optgroup label="Щебень">
                     <option value="sh1">фракция 0-5</option>
                     <option value="sh2">фракция 5-10</option>
                     <option value="sh3">фракция 5-20</option>
                     <option value="sh4">фракция 20-40</option>
                     <option value="sh5">фракция 25-60</option>
                     <option value="sh6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="ж/б изделия">
                     <option value="j1">фракция 0-5</option>
                     <option value="j2">фракция 5-10</option>
                     <option value="j3">фракция 5-20</option>
                     <option value="j4">фракция 20-40</option>
                     <option value="j5">фракция 25-60</option>
                     <option value="j6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="асфальт">
                     <option value="a1">фракция 0-5</option>
                     <option value="a2">фракция 5-10</option>
                     <option value="a3">фракция 5-20</option>
                     <option value="a4">фракция 20-40</option>
                     <option value="a5">фракция 25-60</option>
                     <option value="a6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="металл">
                     <option value="m1">фракция 0-5</option>
                     <option value="m2">фракция 5-10</option>
                     <option value="m3">фракция 5-20</option>
                     <option value="m4">фракция 20-40</option>
                     <option value="m5">фракция 25-60</option>
                     <option value="m6">фракция 40-70</option>
                    </optgroup>
                   </select> 
                </p>
                <p>
                    <label for="kol">Количество *</label>
                    <input type="text" name="kol" id="kol" size="30" />
                </p> 
                <p>
                    <label for="st">Стоимость *</label>
                    <input type="text" name="st" id="st" size="30" />
                </p>                        
            </fieldset>
            <fieldset>                                                                            
                <p>
                    <label for="message">Сообщение:</label>
                    <textarea name="message" id="message" cols="30" rows="10"></textarea>
                </p>                                
            </fieldset>                    

            <p class="submit"><button type="submit">Отправить</button></p>            
                        
        </form>

Как сделать чтобы введённые в нее поля проверялись на соответствие типу поля
(Компания-символьный, ФИО-символьный, ...,) и отправлялись на почту

  Ответить  
 
 автор: Slo_Nik   (26.10.2011 в 13:30)   письмо автору
 
   для: pautina   (26.10.2011 в 13:20)
 

отправка почты на php

  Ответить  
 
 автор: pautina   (26.10.2011 в 14:10)   письмо автору
 
   для: Slo_Nik   (26.10.2011 в 13:30)
 

Хорошо отправку на почту письма сделаем.
А как быть с проверкои не является ли поле формы пустым и првильный ли тип данных в поле

<form id="form" action="/" method="post">    
        
            <fieldset>
                <p class="first">
                    <label for="kompany">Компания *</label>
                    <input type="text" name="kompany" id="kompany" size="30" />
                </p>
                <p>
                    <label for="fio">ФИО *</label>
                    <input type="text" name="fio" id="fio" size="30" />
                </p>
                <p>
                    <label for="email">Email *</label>
                    <input type="text" name="email" id="email" size="30" />
                </p>
                <p>
                    <label for="tel">Телефон *</label>
                    <input type="text" name="tel" id="tel" size="30" />
                </p>
                <p>
                    <label for="prod">Продукция *</label>
                    <select name="prod">
                    <optgroup label="Щебень">
                     <option value="sh1">фракция 0-5</option>
                     <option value="sh2">фракция 5-10</option>
                     <option value="sh3">фракция 5-20</option>
                     <option value="sh4">фракция 20-40</option>
                     <option value="sh5">фракция 25-60</option>
                     <option value="sh6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="ж/б изделия">
                     <option value="j1">фракция 0-5</option>
                     <option value="j2">фракция 5-10</option>
                     <option value="j3">фракция 5-20</option>
                     <option value="j4">фракция 20-40</option>
                     <option value="j5">фракция 25-60</option>
                     <option value="j6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="асфальт">
                     <option value="a1">фракция 0-5</option>
                     <option value="a2">фракция 5-10</option>
                     <option value="a3">фракция 5-20</option>
                     <option value="a4">фракция 20-40</option>
                     <option value="a5">фракция 25-60</option>
                     <option value="a6">фракция 40-70</option>
                    </optgroup>
                    <optgroup label="металл">
                     <option value="m1">фракция 0-5</option>
                     <option value="m2">фракция 5-10</option>
                     <option value="m3">фракция 5-20</option>
                     <option value="m4">фракция 20-40</option>
                     <option value="m5">фракция 25-60</option>
                     <option value="m6">фракция 40-70</option>
                    </optgroup>
                   </select> 
                </p>
                <p>
                    <label for="kol">Количество *</label>
                    <input type="text" name="kol" id="kol" size="30" />
                </p> 
                <p>
                    <label for="st">Стоимость *</label>
                    <input type="text" name="st" id="st" size="30" />
                </p>                        
            </fieldset>
            <fieldset>                                                                            
                <p>
                    <label for="message">Сообщение:</label>
                    <textarea name="message" id="message" cols="30" rows="10"></textarea>
                </p>                                
            </fieldset>                    

            <p class="submit"><button type="submit">Отправить</button></p>            
                        
        </form>

  Ответить  
 
 автор: cheops   (26.10.2011 в 14:13)   письмо автору
 
   для: pautina   (26.10.2011 в 14:10)
 

Для того, чтобы проверить пустая переменная или нет, можно воспользоваться функцией empty(), которая возвращает true, если переданная ей переменная пустая и false, в противном случае.
<?php
  
if(empty($_POST['message'])) exit("Не заполнено поле &quot;Сообщение&quot;");
?>

  Ответить  
 
 автор: Slo_Nik   (26.10.2011 в 14:28)   письмо автору
 
   для: pautina   (26.10.2011 в 14:10)
 

если дополнить cheops, то можно сделать и такую проверку

<?php 
$error 
= array(); // массив ошибок
if($_POST['submit']){ // если форма отправлена
 
if(empty($_POST['fio'])) $error[] = "Не заполнено поле \"Ф.И.О\"";
 
// и так далее, все поля, которые надо проверить
 // поле email надо проверять при помощи регулярных выражений
 // и если массив ошибок пустой, то ....
  
if(empty($error)){
   
// отправляем сообщение
 
}
}
// если массив с ошибками не пустой - выводим ошибки пользователю
if(!empty($error)){
 foreach(
$error as $err){
   echo 
$err
 
}
}
// тут прописываете саму форму
echo "<form ........"
?>

  Ответить  
 
 автор: pautina   (26.10.2011 в 17:56)   письмо автору
63.4 Кб
 
   для: Slo_Nik   (26.10.2011 в 14:28)
 

Спасибо.
Нашёл вот ещё нормальный материал, с проверкой capcha
Здесь документация
http://webtyz.ru/view_lessons.php?id=14
Сделал всё по образу и подобию этого примера
http://mst-link.ru/site-page-mail/index.php
Но не вижу картинки проверки кода, может быть в скрипте image.php правильно пути для картинки прописать.
Архив с исходными файлами прикрепил

  Ответить  
 
 автор: Slo_Nik   (26.10.2011 в 18:16)   письмо автору
 
   для: pautina   (26.10.2011 в 17:56)
 

если не видите картинки, то конечно же проверяйте пути.
удобно это делать в mozilla при помощи дополнения "firebug"

  Ответить  
 
 автор: pautina   (26.10.2011 в 18:29)   письмо автору
 
   для: Slo_Nik   (26.10.2011 в 18:16)
 

Нипонятно почему картинка не выводится
index.php

<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); //Убираем вывод ошибки Денвера 

session_start();//Генерируем ключ, далее передаем его в скрытом поле
if($_SESSION['uid'] =='') {$_SESSION['uid'] = substr(mt_rand(10000,99999), 06); } 

echo 
'<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="style.css" rel="stylesheet" type="text/css">
<title>Обратная связь</title>
</head>

<body>
<center>
<div align="left"><br>
<form action="send.php" method="POST">
<p class="p1">
Ваше имя: &nbsp&nbsp<input name="name" size="31" type="text"><br>
Ваш e-mail: <input name="email" size="31" type="text" class="inp1">
</p>
<p class="p2">
Сообщение:<br>
<textarea name="message" cols="34"  rows="5"></textarea>
<br><br>Введите код подтверждения:
<p align="center">

<img src="img/image.php" id="capcha-image"><br>
<a href="javascript:void(0);" onclick="document.getElementById("capcha-image").src = "img/image.php?rid=" + Math.random();">Обновить</a> 
<input class="inp2" type="text" name="sid" value="" size="5" maxlength="6"/>

</p></p>
<p align="center">
<input name="do" value="Отправить" type="submit"/>
</p>
</form>
</div>
</center>
</body>
</html>'
;
?>

Есть ещё файл image.php он лежит в папке img
<?php session_start();

$im=ImageCreateFromJpeg(round(mt_rand(1,3)).".jpg");
$color=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
ImageTtfText($im23mt_rand(-5,5), 330$color"addict.ttf",  $_SESSION['uid']);

Header("Content-type: image/jpeg");
ImageJpeg($im);
ImageDestroy($im);
?>

Ошибка где то здесь, но найти не могу. Ни поможете?

  Ответить  
 
 автор: Slo_Nik   (26.10.2011 в 19:03)   письмо автору
 
   для: pautina   (26.10.2011 в 18:29)
 

включите вывод замечаний в error_reporting()
проверьте путь в <img src="img/image.php" id="capcha-image"><br>

p.s. скачал Ваш скрипт - картинка видна во всех браузерах ...

  Ответить  
 
 автор: pautina   (27.10.2011 в 07:38)   письмо автору
 
   для: Slo_Nik   (26.10.2011 в 19:03)
 

С путями вроде бы всё нормально.
Для страницы http://mst-link.ru/site-page-mail/img/image.php
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/user4136/mst-link.ru/site-page-mail/img/image.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /home/user4136/mst-link.ru/site-page-mail/img/image.php:5) in /home/user4136/mst-link.ru/site-page-mail/img/image.php on line 7

Код image.php
<?php session_start();

$im=ImageCreateFromJpeg(round(mt_rand(1,3)).".jpg");
$color=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
ImageTtfText($im23mt_rand(-5,5), 330$color"addict.ttf",  $_SESSION['uid']);

Header("Content-type: image/jpeg");
ImageJpeg($im);
ImageDestroy($im);
?>

Эту ошибку как можно исправить?

  Ответить  
 
 автор: pautina   (27.10.2011 в 09:19)   письмо автору
 
   для: pautina   (27.10.2011 в 07:38)
 

Ну наконец то разобрался, оказывается к шрифту должен быть правильный путь.
Теперь вот какой вопрос, почему не обновляется capcha
<a href="javascript:void(0);" onclick="document.getElementById("capcha-image").src = "img/image.php?rid=" + Math.random();">Обновить</a> 
<input class="inp2" type="text" name="sid" value="" size="5" maxlength="6"/>

  Ответить  
 
 автор: Slo_Nik   (27.10.2011 в 12:31)   письмо автору
1.4 Кб
 
   для: pautina   (27.10.2011 в 09:19)
 

Вот подшаманил немного файл с формой, получайте валидный )))
меняется фон картинки, но сама надпись не меняется, так как она у Вас записана в сессии и будет постоянной...
надо сам скрипт капчи редактировать...
в error_reporting() сделал Е_ALL, на момент отладки скрипта лучше делать так, что бы выводила все ошибки/замечания/предупреждения. когда скрипт будет полностью рабочий можно будет понизить уровень

p.s. посмотрел, как делается картинка капчи, мне кажется, что это всё фигня...
возьмите капчу с сайта http://captcha.ru, она посерьёзней, а подключить её можно в любую форму

  Ответить  
 
 автор: pautina   (28.10.2011 в 10:29)   письмо автору
70.6 Кб
 
   для: Slo_Nik   (27.10.2011 в 12:31)
 

Спасибо теперь форма рабочая.
Мне бы хотелось добавить ещё несколько полей в форме отправки.и сообщение об ошибке выводить в небольшом окне при помощи alert

<?php
Error_Reporting
(E_ALL & ~E_NOTICE); //Убираем вывод ошибки Денвера 
session_start(); //Запускаем сессию
include("functions.php"); //Подключаем функции
include("config.php"); //Подключаем файл конфигурации

//Создаем шапку
echo '<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Обратная связь</title>
<style>
p { font-family:Verdana, Arial, Helvetica, sans-serif;
 font-size:14px; font-weight:600;
 color:#747474;
 }
</style>
</head>
<body>'
;

if(
$_SESSION['uid'] == $_POST['sid']){ //Проверяем совпадает ли переданный идентификатор с реальным

session_destroy(); //Разрушаем сессию

//Чистим входящие данные
$kompany strip_tags(stripslashes(substr($_POST['kompany'],0,20)));
$name strip_tags(stripslashes(substr($_POST['name'],0,20)));
$mail strip_tags(stripslashes(substr($_POST['email'],0,30)));
$message strip_tags(stripslashes(substr($_POST['message'],0,3000)));
//Проверяем, была ли нажата кнопка
if($_POST['do']) {
    
//Проверяем, было ли введено имя компании
    
if($kompany != '') {
    
//Проверяем, было ли введено имя
    
if($name != '') {
    
//Запускаем проверку e-mail адреса
        
if(checkmail($mail) !== -1) {
            
//Проверяем, было ли введено сообщение письма
            
if($message != '') {
             
        
//Передаем функции необходимые аргументы
        
if(sendmail($mailto,"Сообщение с сайта",        
        
// Оформление письма в таблицу
        
"<html><head></head>
            <body bgcolor='#D9D9D9'>
                <table align='center' width='400' border='0' cellspacing='0' cellpadding='0'>
                    <tr bgcolor='#BEBEBE'>
                        <td>Письмо от:</td>
                        <td>"
.$kompany."</td>
                        <td>"
.$name."</td>
                        <td>"
.$mail."</td>
                    </tr>
                    <tr>
                        <td colspan='3'>"
.$message."</td>
                    </tr>
                    <tr bgcolor='#B4B4B4'>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
            </body>
        </html>"        
        
// Продолжение передаваемых функций
        
,$headers) !== FALSE) {
        
//Если функция сработала - выводим сообщение об удачно завершенной операции
            
echo '<p>Сообщение отправлено<br/><a href="index.php">назад</a></p>';
            }
        else {
        
//Иначе, сообщаем об ошибке
            
echo '<p>Возникла ошибка при отправке, повторите позднее<br/><a href="index.php">назад</a></p>';
}
 }
 else {echo 
'<p>Введите комментарий <a href="index.php">назад</a></p>';}
 }
 else {echo 
'<p>Введите корректный электронный адрес <a href="index.php">назад</a></p>';}
 }
  
 
 
//else { echo '<p>Введите имя <a href="index.php">назад</a></p>'; }
 //}
 
else {
 echo 
"<script type='text/javascript'>"
 echo 
"alert(`Введите имя`);</script>"
 }}
 else { echo 
'<p>Введите имя компании <a href="index.php">назад</a></p>';  }}
 else {echo 
'<p>Кнопка не была нажата <a href="index.php">назад</a></p>';  };

}
//Здесь срабатывает исключение, если страница была обновлена клавишей F5
else { echo '<p>Ошибка. Код подтверждения введен неверно</p>';
@
session_destroy();} //Разрушаем сессию
echo '</body></html>';
@
session_destroy(); //Разрушаем сессию

для alert использовал

else {
 echo "<script type='text/javascript'>"; 
 echo "alert(`Введите имя`);</script>"; 
 }}

Что в alert подкорректировать?

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 11:22)   письмо автору
 
   для: pautina   (28.10.2011 в 10:29)
 

проверяйте так же как и поле "name", только третий параметр функции substr() увеличьте, так как имя компании может превышать 20 символов...

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 11:25)   письмо автору
 
   для: pautina   (28.10.2011 в 10:29)
 

А вот Вы внимательно посмотрите, что выдаёт alert при работе и посмотрите на код и подумайте, что можно подкорректировать.
что Вы хотите делать при помощи вывода alert? показывать ошибки?

  Ответить  
 
 автор: pautina   (28.10.2011 в 11:37)   письмо автору
 
   для: Slo_Nik   (28.10.2011 в 11:25)
 

Да в alert нужно выводит сообщение об ошибке, и если сообщение есть должен быть возврат на index.php после нажатия на ok для исправления, или можно ли прописать ссылку в alert

<?php
Error_Reporting
(E_ALL & ~E_NOTICE); //Убираем вывод ошибки Денвера 
session_start(); //Запускаем сессию
include("functions.php"); //Подключаем функции
include("config.php"); //Подключаем файл конфигурации

//Создаем шапку
echo '<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Обратная связь</title>
<style>
p { font-family:Verdana, Arial, Helvetica, sans-serif;
 font-size:14px; font-weight:600;
 color:#747474;
 }
</style>
</head>
<body>'
;

if(
$_SESSION['uid'] == $_POST['sid']){ //Проверяем совпадает ли переданный идентификатор с реальным

session_destroy(); //Разрушаем сессию

//Чистим входящие данные
$kompany strip_tags(stripslashes(substr($_POST['kompany'],0,40)));
$name strip_tags(stripslashes(substr($_POST['name'],0,20)));
$mail strip_tags(stripslashes(substr($_POST['email'],0,30)));
$message strip_tags(stripslashes(substr($_POST['message'],0,3000)));
//Проверяем, была ли нажата кнопка
if($_POST['do']) {
    
//Проверяем, было ли введено имя компании
    
if($kompany != '') {
    
//Проверяем, было ли введено имя
    
if($name != '') {
    
//Запускаем проверку e-mail адреса
        
if(checkmail($mail) !== -1) {
            
//Проверяем, было ли введено сообщение письма
            
if($message != '') {
             
        
//Передаем функции необходимые аргументы
        
if(sendmail($mailto,"Сообщение с сайта",        
        
// Оформление письма в таблицу
        
"<html><head></head>
            <body bgcolor='#D9D9D9'>
                <table align='center' width='400' border='0' cellspacing='0' cellpadding='0'>
                    <tr bgcolor='#BEBEBE'>
                        <td>Письмо от:</td>
                        <td>"
.$kompany."</td>
                        <td>"
.$name."</td>
                        <td>"
.$mail."</td>
                    </tr>
                    <tr>
                        <td colspan='3'>"
.$message."</td>
                    </tr>
                    <tr bgcolor='#B4B4B4'>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
            </body>
        </html>"        
        
// Продолжение передаваемых функций
        
,$headers) !== FALSE) {
        
//Если функция сработала - выводим сообщение об удачно завершенной операции
            
echo '<p>Сообщение отправлено<br/><a href="index.php">назад</a></p>';
            }
        else {
        
//Иначе, сообщаем об ошибке
            
echo '<p>Возникла ошибка при отправке, повторите позднее<br/><a href="index.php">назад</a></p>';
}
 }
 else {echo 
'<p>Введите комментарий <a href="index.php">назад</a></p>';}
 }
 else {echo 
'<p>Введите корректный электронный адрес <a href="index.php">назад</a></p>';}
 }
  
 
 
//else { echo '<p>Введите имя <a href="index.php">назад</a></p>'; }
 //}
 
else {
         echo(
"<Script Language='JavaScript'>");
         echo(
"alert('Введите имя');");
         echo(
"</Script>"); 
 }}
 
//else { echo '<p>Введите имя компании <a href="index.php">назад</a></p>';  }}
 
else { 
          echo(
"<Script Language='JavaScript'>");
         echo(
"alert('Введите имя компании');");
         echo(
"</Script>"); 
 }}
 
 else {echo 
'<p>Кнопка не была нажата <a href="index.php">назад</a></p>';  };

}
//Здесь срабатывает исключение, если страница была обновлена клавишей F5
// else { echo '<p>Ошибка. Код подтверждения введен неверно</p>';
else { 
       echo(
"<Script Language='JavaScript'>");
       echo(
"alert('Ошибка. Код подтверждения введен неверно');");
       echo(
"</Script>"); 
@
session_destroy();} //Разрушаем сессию
echo '</body></html>';
@
session_destroy(); //Разрушаем сессию

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 12:20)   письмо автору
 
   для: pautina   (28.10.2011 в 11:37)
 

я бы сделал форму и обработчик формы в одном файле, там же сделал вывод ошибок, так будет удобней
Например

<?php
$error 
= array(); // массив для ошибок
/* инициализируем переменные для формы и не только ))) */
$first = isset($_POST['first']) ? $_POST['first'] : "";
$second = isset($_POST['second']) ? $_POST['second'] : "";
/* если форма отправлена */
 
if(isset($_POST['submit'])){
   
/* проверяем корректность заполнения полей формы */
  
if(empty($first)) $error[] = "Поле First пустое";
  if(empty(
$second)) $error[] = "Поле Second пустое";
  
/* если массив ошибок пустой, нет ошибок */
  
if(empty($error)){
   
/* продолжаем работу над данными из формы */
  
}
 }
/* если есть ошибки - показываем их пользователю */
if(!empty($error)){
  foreach(
$error as $err){
   echo 
$err;
 }
}
?>
<!-- тут сама форма -->
<form action='' method='post'>
 <input type='text' name='first' value='<?php echo $first?>' />
 <input type='text' name='second' value='<?php echo $second?>' />
 <input type='submit' name='submit' value='Отправить' />
</form>

Вот как то так... Если пользователь забудет заполнить одно из полей, ему будет дано сообщение об этом, но при этом не надо будет повторно заполнять уже заполненное до этого поле.
А alert будет только раздражать )))

  Ответить  
 
 автор: pautina   (28.10.2011 в 13:01)   письмо автору
 
   для: Slo_Nik   (28.10.2011 в 12:20)
 

Мне нужно чтобы alert использовался, как форма будет готовая она будет использоватся здесь
http://nlk56.ru/index.php/component/virtuemart/sheben/Fraktsiya-0-5
Жмём задайте вопрос по товару, появляется форма в модальном окне и при ошибке выходит сообщение в окне.
Скажите можно ли сделать чтоб при нажатии на кнопку ok в окне alert для формы
http://mod-mail-modal.mst-link.ru/ происходил переход на index.php

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 14:50)   письмо автору
 
   для: pautina   (28.10.2011 в 13:01)
 

если смотреть по первой ссылке, то alert тут ни при чём...
ищите в google по запросу "создание модального окна на jquery"

>Скажите можно ли сделать чтоб при нажатии на кнопку ok в окне alert для формы
можно, но это уже в другой раздел форума

  Ответить  
 
 автор: pautina   (28.10.2011 в 14:51)   письмо автору
 
   для: pautina   (28.10.2011 в 13:01)
 

Подскажите с конструкцией if и else
По выводу ошибки они где то неправильно стоят

<?php
Error_Reporting
(E_ALL & ~E_NOTICE); //Убираем вывод ошибки Денвера 
session_start(); //Запускаем сессию
include("functions.php"); //Подключаем функции
include("config.php"); //Подключаем файл конфигурации

//Создаем шапку
echo '<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Обратная связь</title>
<style>
p { font-family:Verdana, Arial, Helvetica, sans-serif;
 font-size:14px; font-weight:600;
 color:#747474;
 }
</style>
</head>
<body>'
;

if(
$_SESSION['uid'] == $_POST['sid']){ //Проверяем совпадает ли переданный идентификатор с реальным

session_destroy(); //Разрушаем сессию

//Чистим входящие данные
$kompany strip_tags(stripslashes(substr($_POST['kompany'],0,40)));
$name strip_tags(stripslashes(substr($_POST['name'],0,20)));
$mail strip_tags(stripslashes(substr($_POST['email'],0,30)));
$tel strip_tags(stripslashes(substr($_POST['tel'],0,20)));

$message strip_tags(stripslashes(substr($_POST['message'],0,3000)));
//Проверяем, была ли нажата кнопка
if($_POST['do']) {
    
//Проверяем, было ли введено имя компании
    
if($kompany != '') {
    
//Проверяем, было ли введено имя
    
if($name != '') {
    
//Запускаем проверку e-mail адреса
    
if(checkmail($mail) !== -1) {
    
//Проверяем, был ли введён номер телефона
    
if($tel != '') {    
            
//Проверяем, было ли введено сообщение письма
            
if($message != '') {
             
        
//Передаем функции необходимые аргументы
        
if(sendmail($mailto,"Сообщение с сайта",        
        
// Оформление письма в таблицу
        
"<html><head></head>
            <body bgcolor='#D9D9D9'>
                <table align='center' width='400' border='0' cellspacing='0' cellpadding='0'>
                    <tr bgcolor='#BEBEBE'>
                        <td>Письмо от:</td>
                        <td>"
.$kompany."</td>
                        <td>"
.$name."</td>
                        <td>"
.$mail."</td>
                        <td>"
.$tel."</td>
                    </tr>
                    <tr>
                        <td colspan='3'>"
.$message."</td>
                    </tr>
                    <tr bgcolor='#B4B4B4'>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                    </tr>
                </table>
            </body>
        </html>"        
        
// Продолжение передаваемых функций
        
,$headers) !== FALSE) {
        
//Если функция сработала - выводим сообщение об удачно завершенной операции
            // echo '<p>Сообщение отправлено<br/><a href="index.php">назад</a></p>';
        
echo("<Script Language='JavaScript'>");
        echo(
"alert('Сообщение отправлено');");
        echo(
"</Script>");     
            }
        else {
        
//Иначе, сообщаем об ошибке
           // echo '<p>Возникла ошибка при отправке, повторите позднее<br/><a href="index.php">назад</a></p>';
              
echo("<Script Language='JavaScript'>");
              echo(
"alert('Возникла ошибка при отправке, повторите позднее');");
              echo(
"</Script>");            
}
 }
 
// else {echo '<p>Введите комментарий <a href="index.php">назад</a></p>';}
     
else {    
            echo(
"<Script Language='JavaScript'>");
            echo(
"alert('Введите текст сообщения');");
            echo(
"</Script>");     
     }} 
 
//else {echo '<p>Введите корректный электронный адрес <a href="index.php">назад</a></p>';}
 // }
 
else {
        echo(
"<Script Language='JavaScript'>");
        echo(
"alert('Введите корректный адрес электронной почты');");
        echo(
"</Script>");      
 }}
 
//else { echo '<p>Введите имя <a href="index.php">назад</a></p>'; }
 //}
 
else {
        echo(
"<Script Language='JavaScript'>");
        echo(
"alert('Введите имя');");
        echo(
"</Script>"); 
 }}
 
//else { echo '<p>Введите имя компании <a href="index.php">назад</a></p>';  }}
 
else { 
         echo(
"<Script Language='JavaScript'>");
        echo(
"alert('Введите имя компании');");
        echo(
"</Script>"); 
 }}
 else { 
         echo(
"<Script Language='JavaScript'>");
        echo(
"alert('Введите номер телефона');");
        echo(
"</Script>"); 
 }}
 
//else {echo '<p>Кнопка не была нажата <a href="index.php">назад</a></p>';  };
   
else {    
             echo(
"<Script Language='JavaScript'>");
          echo(
"alert('Кнопка не была нажата');");
          echo(
"</Script>");     
  }}
//Здесь срабатывает исключение, если страница была обновлена клавишей F5
// else { echo '<p>Ошибка. Код подтверждения введен неверно</p>';
else { 
       echo(
"<Script Language='JavaScript'>");
       echo(
"alert('Ошибка. Код подтверждения введен неверно');");
       echo(
"</Script>"); 
@
session_destroy();} //Разрушаем сессию
echo '</body></html>';
@
session_destroy(); //Разрушаем сессию

Здесь добавлено 2 поля компания и телефон, но вывод сообщения об ошибке в alert стоит не в том месте, ни посмотрите?

  Ответить  
 
 автор: pautina   (28.10.2011 в 15:44)   письмо автору
 
   для: pautina   (28.10.2011 в 14:51)
 

C этим разобрался, скажите а как отправлять поле со списком оно вроде заполнено и не пустое
$prod = strip_tags(stripslashes(substr($_POST['prod'],0,20)));
ну и чтобы выбраное значение на почту приходило.

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 15:58)   письмо автору
 
   для: pautina   (28.10.2011 в 15:44)
 

Html формы

  Ответить  
 
 автор: pautina   (28.10.2011 в 16:32)   письмо автору
 
   для: Slo_Nik   (28.10.2011 в 15:58)
 

Это да.
не понятно как передать выбраное значение

<select name="prod">
                    <optgroup label="Щебень">
                     <option value="sh1">фракция 0-5</option>
                     <option value="sh2">фракция 5-10</option>
                     <option value="sh3">фракция 5-20</option>
                     <option value="sh4">фракция 20-40</option>
                     <option value="sh5">фракция 25-60</option>
                     <option value="sh6">фракция 40-70</option>
 </optgroup>

в send.php

$prod = strip_tags(stripslashes(substr($_POST['prod'],0,20)));
...
<td>".$prod."</td> это вывод данных в таблице приходящего  письма
...

Сейчас я на почту получаю sh2 например м.о ли зделать чтоб на почте я получал щебень 5-10
И как сделать чтобы в окне alert при нажатии на ok мы переходили на index.php?

  Ответить  
 
 автор: Slo_Nik   (28.10.2011 в 17:28)   письмо автору
 
   для: pautina   (28.10.2011 в 16:32)
 

[поправлено модератором]

  Ответить  
 
 автор: pautina   (28.10.2011 в 18:29)   письмо автору
 
   для: Slo_Nik   (28.10.2011 в 17:28)
 

Хорошо спасибо.
Скажите а как в alert записать переход по ссылке при нажатии на кнопку ok

  Ответить  
 
 автор: pautina   (02.11.2011 в 09:00)   письмо автору
 
   для: pautina   (28.10.2011 в 18:29)
 

Почему при нажатии кнопки отправка заявки
http://nlk56.ru/index.php/component/virtuemart/sheben/Fraktsiya-0-5
выходят ошибки, как их исправить?

  Ответить  
 
 автор: KPETuH   (02.11.2011 в 09:30)   письмо автору
 
   для: pautina   (02.11.2011 в 09:00)
 

посмотрите нет ли у вас пустой строки перед <?php

  Ответить  
 
 автор: Красная_шляпа   (02.11.2011 в 11:12)   письмо автору
 
   для: pautina   (26.10.2011 в 08:52)
 

http://www.softtime.ru/forum/read.php?id_forum=2&id_theme=83178&page=1

  Ответить  
Rambler's Top100
вверх

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