Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Нечто наподобие анкеты...


Автор: Pakshin A. S. 3.7.2005, 17:23
Помогите составить вот такую страничку:
Есть допустим два поля ввода...
Внизу есть прикрепление файла...

Итого вся эта введенная вещь отправляется на мыло...

Нечто типа вот такого:
http://pforum.com.ru/index.php?module=addcrib

Автор: dm9 3.7.2005, 19:18
А в чём, собстно, проблема?

Форму создать? Читать про тэг <form>...
Поле ввода? Читать про <input type="text" />.
Многострочное поле ввода? <textarea>.
Выбор файла? Отправка файла на сервер? Читать http://forum.vingrad.ru/index.php?showtopic=37094.

Сорри, писать за тебя ломает как-то. Скажи, что непонятно конкретно - разберёмся.

Автор: Pakshin A. S. 3.7.2005, 19:23
Цитата(dm9 @ 3.7.2005, 20:18)
Сорри, писать за тебя ломает как-то. Скажи, что непонятно конкретно - разберёмся.

ПРосто не очень понятно как код переделать, который на народе генерится...

Автор: dm9 3.7.2005, 19:27
Давай по порядку. Форму сделал, чтобы корректно отображалась в браузерах? Поля ввода, выбор файла, кнопочка submit... Пока action в тэге form поставь равным "#". Когда сделаешь - разберёмся дальше.

PS. Или это твой сайт? И это ты уже сделал?

Автор: Black 3.7.2005, 19:33
dm9, лучше так:

Код

<form action='#' onSubmit='return false;'>
</form>

Автор: Pakshin A. S. 3.7.2005, 19:34
Код

<form action="#" method=POST>
<table border=0 cellpadding=0 cellspacing=5>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Факультет</font></td>
<td><font size=-1><input type=text name="a[Факультет]"></font></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Курс</font></td>
<td><font size=-1><input type=text name="a[Курс]"></font></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Семестр</font></td>
<td><font size=-1><input type=text name="a[Семестр]"></font></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Дисциплина</font></td>
<td><font size=-1><input type=text name="a[Дисциплина]"></font></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Преподаватель</font></td>
<td><font size=-1><input type=text name="a[Преподаватель]"></font></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Примечание</font></td>
<td><textarea rows=10 cols=40 name="a[Примечание]"></textarea></td>
</tr>
<tr valign=middle>
<td><font  color=#000000  style="font-size: 10pt" >Архив шпаргалок (только rar и zip файлы)</font></td>
<td><font size=-1><input type=file name="attach"></font></td>
</tr>
<tr>
<td colspan=2><br></td>
</tr>
<tr>
<td><br></td>
<td><input type=reset value="Очистить" style="background:D4D0C8; font-size: 12px;">&nbsp;<input type=submit value="Отправить" style="background:D4D0C8; font-size: 12px;"></td>
</tr>
</table>

</form>


Автор: dm9 3.7.2005, 20:04
Цитата(PHP @ 3.7.2005, 20:33)
dm9, лучше так:


Не путай человека smile

Pakshin A. S., ОК.

name-ы заменяй на что-нить нормальное.

Код

<tr valign=middle>    
<td><font  color=#000000  style="font-size: 10pt" >Курс</font></td>    
<td><font size=-1><input type=text name="kurs"></font></td>    
</tr>    
<tr valign=middle>    
<td><font  color=#000000  style="font-size: 10pt" >Семестр</font></td>    
<td><font size=-1><input type=text name="semestr"></font></td>    
</tr>    


И так далее... Дай уникальные имена полям. На английском языке.

Для формы поставь enctype="multipart/form-data".

Что ещё... Ты PHP знаешь? Я там ссылку давал выше... ещё раз:
http://forum.vingrad.ru/index.php?showtopic=37094
Поразбирайся, позадавай вопросы, как это работает и зачем там что нужно. Там всё просто. Вопросы задавай в том топике лучше, наверное, если по тому коду. Как разберёшься на 100% с тем примером, всё поймёшь про свой случай. Надо будет только чуть-чуть модифицировать исходный код...

Автор: Pakshin A. S. 3.7.2005, 21:07
Я просто хотел написать без использования пхп...

Автор: dm9 3.7.2005, 21:26
Что ты хотел? Передавать файлы на сервер без использования серверного языка? Или что ты хотел? Как ты это себе представляешь? HTML - это всего лишь язык разметки, и ВСЁ. Работать с файлами он не обучен.

Автор: Pakshin A. S. 3.7.2005, 21:46
Нафиг файл... просто на мыло... почтой...
Добавлено @ 21:53
Народовская анкета использует
Код
<form ENCTYPE="multipart/form-data" action="http://narod.yandex.ru/send-poll.xhtml" method=POST>


Что в том файле?

Автор: Pakshin A. S. 3.7.2005, 22:18
Добрые люди дали код:
Код

<?
if($REQUEST_METHOD=="POST")
{$error="";
 if(!isset($email) || !trim($email))
  $error.="<li>Не указан E-mail адрес</li>";
 if(!isset($questions) || !trim($questions))
  $error.="<li>Введите текст сообщения</li>";
 if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$", $email))
  $error.="<li>Ошибка при записи E-mail адреса</li>";
 if(!trim($error))
 {
  mail("zzzzz@pakshin.com.ru", trim($subject), htmlspecialchars(trim($questions)), "From: ".trim($email));
  Header("Location:feedback.php?action=send");
  exit();
 }
}else
 {
  $email="";
  $subject="";
  $questions="";
  $error="";
 }
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/style.css" rel="stylesheet" type="text/css">
<script language="javascript">
<!--
function checkform()
{
 if(document.feedback.email.value=='') {alert("Введите E-mail адрес"); document.feedback.email.focus(); return false; }
 if(document.feedback.questions.value=='') {alert("Введите текст сообщения"); document.feedback.questions.focus(); return false; }
 return true;
}
//-->
</script>
</head>

<body>
<? include($DOCUMENT_ROOT."/include/top.ch");?>
    <div class=title>Обратная связь</div><br><br>
<?
if(isset($action) && $action=="send")
{
?>
<div>Ваше письмо отправлено. Спасибо за внимание к нашему сайту.</div>
<?
}else
 {
?>
<form method=post onsubmit="return checkform();" name=feedback>
<table border="0" width="300" cellspacing="0" cellpadding="0" class="tr">
<tr>
<td width="50">e-Mail</td>
<td width="250"><input type="text" name="email" style="width:250" value="<?=$email?>"></td>
</tr>
<tr>
<td width="50">Тема</td>
<td width="250"><input type="text" name="subject" style="width:250" value="<?=$subject?>"></td>
</tr>
<tr>
<td width="300" colspan="2"><textarea name="questions" style="width:300; height:100"><?=$questions?></textarea></td>
</tr>
<tr>
<td width="300" colspan="2" align="center"><input type="submit" value="Отправить" name="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Очистить" name="reset"></td>
</tr>
</table>
</form>
<?
  if(trim($error))
  {
?>
<div>Ошибки:<?=$error?></div>
<? 
  }
 }
?>
<? include($DOCUMENT_ROOT."/include/bottom.ch");?>
</body>
</html>

Добавлено @ 22:19
Что-нить с ним можно сделать?
Добавлено @ 22:24
Так... разобрался с кодом... а вот как приаттачивать файл?

Автор: dm9 3.7.2005, 23:00
Pakshin A. S., что-то я в эту тему писать не хочу даже.

Ты хочешь получить готовое решение? Я его писать не буду просто принципиально.

Цитата(Pakshin @ 3.7.2005, 23:18)
Так... разобрался с кодом... а вот как приаттачивать файл?


Я об этом писал уже два раза. Перечитай тему с начала повнимательнее, пожалуйста.

Насчёт файла - думаю, его проще будет сохранить на сервере просто. Отправлять его по мылу - это не так чтобы очень сложно, но с твоим рвением к знаниям сделать это, наверное, не получится.

Автор: Osrus 3.7.2005, 23:08
В принципе форму можно отправлять с помощью mailto: (не вставляя в код какие-либо серверные скрипты)
Причем, если определенным образом построить HTML код, то OutLOok или другая почтовая программа будет делать это автоматически, но будет вылетать окно "Данная форма отправляется по эл.почте это приведет к тому бла - бла -бла адрес почты станет известен получателю......."
Но в этом случае у пользователя должна быть настроена учетная запись -
это обязательно

http://meran.ru/contact.htm


Код

<form name = "mail_form" action = "mailto:your@mail.ru?Subject=Send from Mail Form From Site" method = "POST" enctype = "text/plain">


Автор: Pakshin A. S. 3.7.2005, 23:08
Цитата(dm9 @ 4.7.2005, 00:00)
Насчёт файла - думаю, его проще будет сохранить на сервере просто

Вот щс с этим пытаюсь разобраться... а так тема именно по отправке у меня больше не вызывает вопросов...
Добавлено @ 23:11
Osrus
Я рассматривал вариант... просто таким образом можно будет немного мне навредить... я должен быть увереным, что мне приходит только текст и вложение с файлом...

Автор: Osrus 3.7.2005, 23:21
Pakshin A. S. Когда сделаете, расскажите что получилось...

Автор: Pakshin A. S. 3.7.2005, 23:28
Ну я пока вот так переделал:
Код

<?
if($REQUEST_METHOD=="POST")
{$error="";
 if(!isset($email) || !trim($email))
  $error.="<li>Не указан E-mail адрес</li>";
 if(!isset($questions) || !trim($questions))
  $error.="<li>Введите текст сообщения</li>";
 if(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$", $email))
  $error.="<li>Ошибка при записи E-mail адреса</li>";
 if(!trim($error))
 {
  mail("admin@pakshin.com.ru", trim($subject), htmlspecialchars(trim($questions)), "From: ".trim($email));
  Header("Location:feedback.php?action=send");
  exit();
 }
}else
 {
  $email="";
  $subject="";
  $questions="";
  $error="";
 }
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="/style.css" rel="stylesheet" type="text/css">
<script language="javascript">
<!--
function checkform()
{
 if(document.feedback.email.value=='') {alert("Введите E-mail адрес"); document.feedback.email.focus(); return false; }
 if(document.feedback.questions.value=='') {alert("Введите текст сообщения"); document.feedback.questions.focus(); return false; }
 return true;
}
//-->
</script>
</head>

<body>
    <div class=title>Обратная связь</div><br><br>
<?
if(isset($action) && $action=="send")
{
?>
<div>Ваше письмо отправлено. Спасибо за внимание к нашему сайту.</div>
<?
}else
 {
?>
<form method=post onsubmit="return checkform();" name=feedback>
<table border="0" width="300" cellspacing="0" cellpadding="0" class="tr">
<tr>
<td width="50">e-Mail</td>
<td width="250"><input type="text" name="email" style="width:250" value="<?=$email?>"></td>
</tr>
<tr>
<td width="50">Тема</td>
<td width="250"><input type="text" name="subject" style="width:250" value="<?=$subject?>"></td>
</tr>
<tr>
<td width="300" colspan="2"><textarea name="questions" style="width:300; height:100"><?=$questions?></textarea></td>
</tr>
<tr>
<td width="300" colspan="2" align="center"><input type="submit" value="Отправить" name="submit">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="Очистить" name="reset"></td>
</tr>
</table>
</form>
<?
  if(trim($error))
  {
?>
<div>Ошибки:<?=$error?></div>
<? 
  }
 }
?>
</body>
</html>

Автор: Osrus 3.7.2005, 23:39
Интересный скрипт, спасибо...

Автор: Pakshin A. S. 3.7.2005, 23:39
smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)