Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/14: Рейтинг темы: голосов - 14, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 14.02.2012
Сообщений: 22

Как отправить таблицей форму бронирования?

14.02.2012, 21:28. Показов 2951. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Имеется форма бронирования, которая работает без проблем. Но хотелось бы, чтобы форма отправлялась таблицей. Ума не приложу, как это сделать?


Вот исходники файлика "отправки":
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if(isset($_POST['email'])) {
        
    // CHANGE THE TWO LINES BELOW
    $email_to = "your@mail.com";
        
    $email_subject = "website html form submissions";
        
        
    function died($error) {
            // your error code can go here
            echo "We are very sorry, but there were error(s) found with the form you submitted. ";
            echo "These errors appear below.<br /><br />";
            echo $error."<br /><br />";
            echo '<button href="#" onclick="history.back();return false;" class="button"> Вернуться назад</button>';
            die();
    }
        
    // validation expected data exists
    if(!isset($_POST['hotel']) ||
         !isset($_POST['transport']) ||
         !isset($_POST['first_name']) ||
            !isset($_POST['last_name']) ||
            !isset($_POST['email']) ||
            !isset($_POST['telephone']) ||
            !isset($_POST['month']) ||
            !isset($_POST['dt']) ||
            !isset($_POST['year'])) {
            died('We are sorry, but there appears to be a problem with the form you submitted.');         
    }
   
    $hotel = $_POST['hotel']; // required
    $transport = $_POST['transport']; // required
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $month=$_POST['month']; // required
$dt=$_POST['dt']; // required
$year=$_POST['year']; // required
$date_value="$dt.$month.$year";
echo "dd.mm.yyyy format :$date_value<br>";
   
        
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$hotel)) {
    $error_message .= 'The hotel.<br />';
  }
  if(!preg_match($string_exp,$transport)) {
    $error_message .= 'The transport.<br />';
  }
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";
        
    function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
    }
   
    $email_message .= "Отель: ".clean_string($hotel)."\n";
    $email_message .= "Транспорт: ".clean_string($transport)."\n";
    $email_message .= "Имя: ".clean_string($first_name)."\n";
    $email_message .= "Фамилия: ".clean_string($last_name)."\n";
    $email_message .= "Email заказчика: ".clean_string($email_from)."\n";
    $email_message .= "Телефонный номер: ".clean_string($telephone)."\n";
    $email_message .= "Дата приезда: ".clean_string($date_value)."\n";
        
        
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers); 
?>
 
<!-- place your own success html below -->
 
Thank you for contacting us. We will be in touch with you very soon.
<button href="#" onclick="history.back();return false;" class="button"> Вернуться назад</button>
<?php
}
die();
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2012, 21:28
Ответы с готовыми решениями:

Как отправить файл через PHP форму?
Помогите разобраться с этими скриптами, читал много, видео почти нет, так и не понял, как это сделать максимально просто. На своей...

Отправить файл из сервера в форму
Есть форма &lt;form action=&quot;http://site.ru/file.php&quot; method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt; Модуль: &lt;input type=&quot;text&quot;...

Можно ли в php скрипте автоматически заполнить и отправить форму?
Всем привет. Задача следующая: Пользователь заполняет форму, и нажимает ок. На сервере скрипт рнр получает данные, из них формирует хеш...

7
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
15.02.2012, 21:46
deeand, это реализуется на обычном html( т.е. таблицу так же верстаете ), но в заголовках к письму( в функцию mail() ) надо будет указать заголовок Content-type: text/html
0
1 / 1 / 0
Регистрация: 14.02.2012
Сообщений: 22
15.02.2012, 22:12  [ТС]
Цитата Сообщение от romchiksoad Посмотреть сообщение
deeand, это реализуется на обычном html( т.е. таблицу так же верстаете ), но в заголовках к письму( в функцию mail() ) надо будет указать заголовок Content-type: text/html
Супер! Спасибо! Как проверю Ваш способ, отпишусь. Может ещё какие-нибудь вопросы возникнут.

Желаю всем отличного настроения
0
1 / 1 / 0
Регистрация: 14.02.2012
Сообщений: 22
15.02.2012, 23:49  [ТС]
Так, испытания прошли неудачно.
Вот как я оформил письмо:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    $headers = 'From: '.$email."\r\n".
    'Reply-To: '.$email."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    $headers.="\nContent-type: text/html; charset=\"UTF-8\""; 
    $email_message= "<HTML>\r\n";
    $email_message .= "<HEAD>\r\n";
    $email_message .= "\nContent-type: text/html; charset=\"UTF-8\"";
    $email_message .= "</HEAD>\r\n";
    $email_message .= "<BODY>\r\n";
    $email_message  = "Детали письма:\n\n";
    $email_message .= "Имя: ".clean_string($name)."\n";
    $email_message .= "Email клиента: ".clean_string($email)."\n";
    $email_message .= "Тема: ".clean_string($subject)."\n";
    $email_message .= "Сообщение: ".clean_string($text_message)."\n";
    $email_message .= "</BODY>\r\n";
    $email_message .= "</HTML>";
Вот результат:
Миниатюры
Как отправить таблицей форму бронирования?  
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
16.02.2012, 00:00
deeand, я имел ввиду таблицу верстайте, а не всю страницу Не вижу тегов
HTML5
1
2
3
4
5
6
7
8
9
10
<table>
 <tr>
  <td></td>
  <td></td>
 </tr>
 <tr>
  <td></td>
  <td></td>
 </tr>
</table>
Т.е. без body, head и т.п. К тому же, на почте может быть отключен просмотр в виде html. Проверьте настройки...
0
1 / 1 / 0
Регистрация: 14.02.2012
Сообщений: 22
17.02.2012, 00:00  [ТС]
Так, вроде начало получаться. Единственно, не могу понять, как применить стиль к таблице и к письму?
Вот что у меня получилось:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
    // create email headers
    $headers = 'From: '.$email_from."\r\n".
    'Reply-To: '.$email_from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
    $headers.="\nContent-type: text/html; charset=\"UTF-8\""; 
    $email_message= "<HTML>\r\n";
    $email_message .= "<HEAD>\r\n";
    $email_message .= "\nContent-type: text/html; charset=\"UTF-8\"";
    $email_message .= "\nstylesheet: text/css href=\"css/table_styles.css\"";
    $email_message .= "</HEAD>\r\n";
    $email_message .= "<BODY>\r\n";
    $email_message = "Детали заказа VIP тура:\n\n";
    $email_message .= "Отель: ".clean_string($hotel)."\n";
    $email_message .= "Транспорт: ".clean_string($transport)."\n";
    $email_message .= "Имя: ".clean_string($first_name)."\n";
    $email_message .= "Фамилия: ".clean_string($last_name)."\n";
    $email_message .= "Email заказчика: ".clean_string($email_from)."\n";
    $email_message .= "Телефонный номер: ".clean_string($telephone)."\n";
    $email_message .= "Дата приезда: ".clean_string($date_value)."\n";
    $email_message = "<h2>Детали заказа VIP тура:</h2>
<table class='bordered'>
    <thead>
    <tr>
        <th>#</th>        
        <th></th>
        <th></th>
    </tr>
    </thead>
    <tr>
        <td>1</td>        
        <td>Отель: </td>
        <td>$hotel</td>
    </tr>        
    <tr>
        <td>2</td>         
        <td>Транспорт: </td>
        <td>$transport</td>
    </tr>
    <tr>
        <td>3</td>         
        <td>Имя: </td>
        <td>$first_name</td>
    </tr>    
    <tr>
        <td>4</td> 
        <td>Фамилия: </td>
        <td>$last_name</td>
    </tr>
    <tr>
        <td>5</td> 
        <td>Email заказчика: </td>
        <td>$email_from</td>
    </tr>
    <tr>
        <td>6</td> 
        <td>Телефонный номер: </td>
        <td>$telephone</td>
    </tr>
    <tr>
        <td>7</td> 
        <td>Дата приезда: </td>
        <td>$date_value</td>
    </tr>    
</table>";
    $email_message .= "</BODY>\r\n";
    $email_message .= "</HTML>";
     
 
@mail($email_to, $email_subject, $email_message, $headers);
А это стиль, который хочу использовать:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
body {
    width: 600px;
    margin: 40px auto;
    font-family: 'trebuchet MS', 'Lucida sans', Arial;
    font-size: 14px;
    color: #444;
}
 
table {
    *border-collapse: collapse; /* Для IE7 и старше */
    border-spacing: 0;
    width: 100%;    
}
 
.bordered {
    border: solid #ccc 1px;
    -moz-border-radius: 6px;
    -webkit-border-radius: 6px;
    border-radius: 6px;
    -webkit-box-shadow: 0 1px 1px #ccc; 
    -moz-box-shadow: 0 1px 1px #ccc; 
    box-shadow: 0 1px 1px #ccc;         
}
 
.bordered tr:hover {
    background: #fbf8e9;
    -o-transition: all 0.1s ease-in-out;
    -webkit-transition: all 0.1s ease-in-out;
    -moz-transition: all 0.1s ease-in-out;
    -ms-transition: all 0.1s ease-in-out;
    transition: all 0.1s ease-in-out;     
}    
    
.bordered td, .bordered th {
    border-left: 1px solid #ccc;
    border-top: 1px solid #ccc;
    padding: 10px;
    text-align: left;    
}
 
.bordered th {
    background-color: #dce9f9;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9));
    background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:    -moz-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:     -ms-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:      -o-linear-gradient(top, #ebf3fc, #dce9f9);
    background-image:         linear-gradient(top, #ebf3fc, #dce9f9);
    -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; 
    -moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;  
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;        
    border-top: none;
    text-shadow: 0 1px 0 rgba(255,255,255,.5); 
}
 
.bordered td:first-child, .bordered th:first-child {
    border-left: none;
}
 
.bordered th:first-child {
    -moz-border-radius: 6px 0 0 0;
    -webkit-border-radius: 6px 0 0 0;
    border-radius: 6px 0 0 0;
}
 
.bordered th:last-child {
    -moz-border-radius: 0 6px 0 0;
    -webkit-border-radius: 0 6px 0 0;
    border-radius: 0 6px 0 0;
}
 
.bordered tr:last-child td:first-child {
    -moz-border-radius: 0 0 0 6px;
    -webkit-border-radius: 0 0 0 6px;
    border-radius: 0 0 0 6px;
}
 
.bordered tr:last-child td:last-child {
    -moz-border-radius: 0 0 6px 0;
    -webkit-border-radius: 0 0 6px 0;
    border-radius: 0 0 6px 0;
}
Конечный результат:
Изображения
 
0
1 / 1 / 0
Регистрация: 14.02.2012
Сообщений: 22
17.02.2012, 18:33  [ТС]
Всё, сделал! Считаю тему закрытой.
0
0 / 0 / 0
Регистрация: 08.01.2013
Сообщений: 7
20.02.2013, 21:41
Поделитесь как сделали?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2013, 21:41
Помогаю со студенческими работами здесь

Как отправить форму по таймеру?
Здравствуйте. Есть форма &lt;form method='post' action='test.php' id='form'&gt; ... &lt;button type='submit'...

Как отправить данные в форму?
Всем доброго времени суток Допустим, кто-то идёт на страницу http://site.ru/pge.htm, но такой не существует. И выскакивает страница 404,...

Как отправить нескольких файлов через форму?
Как реализовать отправку ВСЕХ прикрепленных файлов на почту? У меня отправляется на почту только данные из формы и только ОДИН(первый)...

отправить форму с файлами
Подскажите, как написать php код, который отправит файлы (в данном случае картинки) с формы на почту &lt;form...

Нужно отправить форму автоматически
Есть форма, которая отправляется (по нажатию на кнопку сабмит) на этот же файл index.php. Но в определенный момент нужно отправить ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru