Доброго времени суток! Появилась надобность в скрипте приема заявок. Пользовался поисковиками, но везде выдается скрипт отправки заявки на e-mail. И потому решил спросить у знающих людей на этом форуме. 1. Как должен выглядеть скрипт (пример): ---------- "Название заявки" Имя команды: "текстовое поле" Руководитель: "текстовое поле" .... .... "чекпойнт" Вариант 1 "чекпойнт" Вариант 2 ... ... Отправить заявку ---------- P.S. Необходима возможность выбирать сразу несколько вариантов. 2. Отправка заполненной заявки Хотелось бы, чтобы КАЖДАЯ отправленная заявка сохранялась на сервере в виде файла .txt. Если где-то уже есть такая тема, то просьба не пинать, а кинуть ссылку на нее.
Нарисуй в фотошопе или выложи конкретно Техническое Задание, возможно ктото напишет бесплатно, то что ты просиш не сложно, поэтому может кто откликнется
Как же должно выглядеть техническое задание? Я вроде все описал... В фотошопе делать нет смысла, потому что мне нужен просто скрипт, а вписать его в шаблон я уже и сам смогу. А вообще это выглядит примерно так: Code: <html> <head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>Отправка заявки</title> </head> <body> <form action="post.php" method="post"> <table align="center" border="0"> <tbody> <tr> <td align="left">Название команды:</td> <td align="left"><input name="namecomand"></td> </tr> <tr> <td align="left">Руководитель:</td> <td align="left"><input name="name"></td> </tr> <tr> <td align="left">Описание задачи:</td> <td align="left"><textarea cols="50" rows="3" name="opisanie"></textarea></td> </tr> <tr> <td align="left">Выбор проектов:</td> <td align="left"> <input name="option1" value="a1" type="checkbox">Вариант 1<br> <input name="option2" value="a2" type="checkbox">Вариант 2<br> <input name="option3" value="a3" type="checkbox">Вариант 3 </td> </tr> <tr> <td></td> <td><input name="ok" value="Отправить заявку" type="submit"></td> </tr> </tbody> </table> </form> </body> </html> P.S. Скрипт post.php выполнял запрос к БД. Но в данном случае нужно, чтобы этот скрипт отправлял данные в .txt. И вопрос: подскажите, что это за скрипт. Была мысль использовать функцию fwrite(), но она пишет все в один файл... что не есть удобно.
post.php PHP: <? $namecommand=$_POST['namecomand']; $rukovod=$_POST['name']; $descr=$_POST['opisanie']; $project=$_POST['option']; $rand=rand(); $handle = fopen("zayavka$rand.txt", "w+"); foreach($project as $option){ $opt .=$option."\r\n"; } fwrite($handle, $namecommand."\r\n"); fwrite($handle, $rukovod."\r\n"); fwrite($handle, $descr."\r\n"); fwrite($handle, $opt."\r\n"); fclose($handle); ?> сама страница с формой PHP: <html> <head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>Отправка заявки</title> </head> <body> <form action="post.php" method="post"> <table align="center" border="0"> <tbody> <tr> <td align="left">Название команды:</td> <td align="left"><input name="namecomand"></td> </tr> <tr> <td align="left">Руководитель:</td> <td align="left"><input name="name"></td> </tr> <tr> <td align="left">Описание задачи:</td> <td align="left"><textarea cols="50" rows="3" name="opisanie"></textarea></td> </tr> <tr> <td align="left">Выбор проектов:</td> <td align="left"> <input name="option[]" value="a1" type="checkbox">Вариант 1<br> <input name="option[]" value="a2" type="checkbox">Вариант 2<br> <input name="option[]" value="a3" type="checkbox">Вариант 3 </td> </tr> <tr> <td></td> <td><input name="ok" value="Отправить заявку" type="submit"></td> </tr> </tbody> </table> </form> </body> </html> сделано без проверки полей и т.п.
svesve, зачем 4 раза вызывать одну и ту же функцию, если можно сделать все аккуратнее )? Сейчас свой вариант напишу
svesve, mailbrush, про такой способ использования fwrite() я даже и не знал... Я почему-то думал, что эта функция служит только для записи данных из форм в один текстовый файл. mailbrush, был бы рад увидеть твой вариант скрипта.
время и дату я хотел сделать но у тебя получиться файл час-минута-секунда-число-день-месяц-год ибо если ты возьмешь час-минута или т.п. то файл перезапишеться ) и получается длинное имя файла, но это уже дело вкуса
index.html PHP: <html> <head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"/> <title>Отправка заявки</title> </head> <body> <form action="write.php" method="post"> <table align="center" border="0"> <tbody> <tr> <td align="left">Название команды:</td> <td align="left"><input name="namecomand"/></td> </tr> <tr> <td align="left">Руководитель:</td> <td align="left"><input name="name"/></td> </tr> <tr> <td align="left">Описание задачи:</td> <td align="left"><textarea cols="50" rows="3" name="opisanie"></textarea></td> </tr> <tr> <td align="left">Выбор проектов:</td> <td align="left"> <input name="option[]" type="checkbox" value="Вариант 1" />Вариант 1<br/> <input name="option[]" value="Вариант 2" type="checkbox"/>Вариант 2<br/> <input name="option[]" value="Вариант 3" type="checkbox"/>Вариант 3 </td> </tr> <tr> <td></td> <td><input name="ok" value="Отправить заявку" type="submit"/></td> </tr> </tbody> </table> </form> </body> </html> write.php PHP: <?php $settings['dir'] = 'query'; //папка для сохранения, в качестве текущей - "." $settings['filename'] = 'query_%n.txt'; //имя файла, в качестве макроса %n (порядковый номер) $settings['ids'][0] = '500'; //стартовый номер //проверка на существование папки if (!is_dir($settings['dir'])) if (mkdir($settings['dir'])) echo '+ Папка для записи создана!'; else echo '- Папка для записи не создана!'; chdir($settings['dir']); //процедура получения id if ($dir = opendir('.')) while (false !== ($file = readdir($dir))) if ($file != "." && $file != "..") if (preg_match('/' . str_replace('%n', '(\d+)', $settings['filename']) . '/', $file, $names)) $settings['ids'][] = $names[1]; closedir($dir); $settings['next_id'] = max($settings['ids']) + 1; $settings['next_filename'] = str_replace('%n', $settings['next_id'], $settings['filename']); $settings['text'] = 'Название команды: ' . $_POST['namecomand'] . "\r\n" . 'Руководитель: ' . $_POST['name'] . "\r\n" . 'Описание задачи: ' . $_POST['opisanie'] . "\r\n" . 'Проэкты: ' . "\r\n* " . implode("\r\n* ", $_POST['option']); $fp = fopen($settings['next_filename'], 'w+'); if (fwrite($fp, $settings['text'])) echo 'Данные добавлены!'; else echo 'Данные не добавлены!'; fclose($fp); ?>
Задача решена, всем спасибо за помощь. А насчет случайных цифр в имени файла - я просто заменил на $rand=date("d.m.Y-G.i.s"); Не думаю, что в одну и ту же секунду пойдут 2 заявки... mailbrush, а твой вариант тоже хорош... буду тестировать.