Jump to content
  • 0

И опять о "Форме обратной связи"


chest
 Share

Question

Очень намучился с создание формы для обратной связи. если учитывать, что с Пшп вообще мало знаком, думаю что-то получилось.

Проверьте, пжлст мои Коды и дайте рекомендации.

Есть вопросы, которые меня особо интересуют:

1. что там на счет полей обязательных для ввода, все верно?

2. как сделать так, чтобы без включенного поля Agree письмо не отправлялось

3. правильна ли проверка телефона? (нужно, чтобы телефон начинался с "+380")

4. правильно ли осуществляется проверка типа файла (у меня эта проверка - accept="text/txt")

5. как правильно подключить Капчту, а то у меня гадость какая-то получилась)

- ну и все, что вы можете мне посоветовать

файл с формой ****.html

 <form action="mail.php" method="post" enctype="multipart/form-data" accept="text/txt">
<div align="center">
<table width="500" cellspacing="1" cellpadding="2">
<tr bgcolor="#acd5ff">
<td>
<b>* П.І.Б.</b><br>Введіть реальне ім'я, щоб ми знали як до Вас звертатись
</td>
</tr>
<tr>
<td><input type="text" name="nick" size="39" style="border: #000 1px solid; background-color: #fff;"></b>
</td>
</tr>
<tr bgcolor="#acd5ff">
<td>
<b>* Ваш E-mail:</b><br>Введіть рельну e-mail адресу, на неї ви отримаете створений файл
</td>
</tr>
<tr>
<td><input type="text" name="email" size="39" style="border: #000 1px solid; background-color: #fff;"></b>
</td>
</tr>
<tr bgcolor="#acd5ff">
<td>
<b>* Контактний телефон:</b><br>Введіть рельний телефон, необхідний для підтверження ваших даних
</td>
</tr>
<tr>
<td><input type="text" name="phone" size="39" value="+380123456789" style="border: #000 1px solid; background-color: #fff;"></b>
</td>
</tr>
<tr bgcolor="#acd5ff">
<td>
<b>* Прикріпити файл:</b>
</td>
</tr>
<tr>
<td><input type="file" name="file" size="35" style="border: #000 1px solid; background-color: #fff;">
</b>
</td>
</tr>
<tr bgcolor="#acd5ff">
<td>
<b>Додаткова інформація</b><br>Вкажіть інформацію, що на Вашу думку сприятиме виконанню послуги
</td>
</tr>
<tr>
<td><textarea rows="2" cols="60" name="msg" style="border: #000 1px solid; background-color: #fff;scrollbar-dark-shadowcolor:#E7E8EB;scrollbar-light-shadow-color:#EFF3F4;scrollbar-base-color:#EFF3F4;scrollbar-arrow-color:#D0CFCE;scrollbar-face-color:#E7E8EB;scrollbar-shadow-color:#7D868D;scrollbar-3d-light-color:#EFF3F4;"></textarea></b>
</td>
</tr>
<tr>
<td><input type="checkbox" name="agree" value="Yes">Я згоден з правилами надяння послуги та ввів коректні дані</b>
</td>
</tr>
<tr><td>Код підтвердження:
<input type="text" id="code" name="code" size="4" maxlength="4">
<img align="absmiddle" src="captcha.php"></td></tr>
<tr>
<tr>
<td bgcolor="#042f5b">
<table width="100%">
<tr><td align="right"><input type="submit" value="Надіслати" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit">
</td></tr>
</table>
</td>
</tr>
</table>
</div>
</form><br>* Ці поля, обов'язкові для заповнення
</div>

а это файл Меил.пшп

<?php 
$url = "*****.html"; //Адрес гостевой книги, ваша страница
$title = "*****"; //Заголовок сайта
$subject = "Письмо с сайта $title"; //Тема отпровляемых вам сообщений
$admail = "******"; //Ваш e-mail, на который будут отправляться письма
$back = "<a href=\"java script: history.back()\">Назад</a></p>";

if(@$_POST['nick'] or @$_POST['email'] or @$_POST['phone'] or @$_POST['agree'] or @$_POST['file'])
{
@$nick = $_POST['nick'] or die("Переконайтесь, що ввели своє ім'я!$back");
@$mail = $_POST['email'] or die("Переконайтесь, що ввели свій E-mail!$back");
@$phone = $_POST['phone'] or die("Переконайтесь, що ввели свій номер телефону!$back");
@$file = $_POST['file'] or die("Переконайтесь, що прикріпили вірний файл!$back");
@$accept = $_POST['agree'] or die("Для доступу до послуги Ви повинні погоджуватися з нашими

умовами!$back");

if(!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$", $email))
{
echo "Переконайтесь, що ввели коректний E-mail!$back";
exit;
}
if(!eregi("[a-z]\$", $nick))
{
echo "Переконайтесь, що ввели коректне ім'я!$back";
exit;
} if(!eregi("^[+380]+[0-9]{7,7}\$", $phone))
{
echo "Переконайтесь, що ввели коректний телефон!$back";
exit;

$content = "\nПользователь $nick!\n
Адресс: $email\n
Телефон - $phone
Отправил(а) вам письмо с сайта - \"$title\"\n
со следующим содержанием:\n\n$msg";
if(!@mail($admail, $subject, $content))
{
echo "Помилка під час відправлення повідомлення. Будь-ласка, повідомте про це адміністратора сайта

використовуючи інший вид связку.$back";
exit;
}
else
{
echo "Ваше повідомлення успішно відіслане!<Br> Ви отримаете відповідь найближчим часом ";
echo "<meta http-equiv=\"refresh\" content=\"1;URL=$url\">";
}
}
else {
die("Для отравки повідомлення заповність всі обов'язкові поля!$back");
}
?>

Edited by chest
Link to comment
Share on other sites

Recommended Posts

  • 0

Все заработало!

Если кого интересует, могу скинуть в личку файлы

а вот если я захочу вставить в форму возможность прикреплять файлы, как изменится функция?

Edited by chest
Link to comment
Share on other sites

  • 0

Вот смотри, сделал так:


<input type="text" id="fileName" class="file_input_textbox" readonly="readonly">
<div class="file_input_div">
<input type="button" value="Файл" class="file_input_button" />
<input type="file" class="file_input_hidden" name="attach" onchange="return check()" accept="text/plain"/></div>


</script>
<script type="text/javascript" language="JavaScript">
function check() {
document.getElementById('fileName').value = this.value;
var ext = document.validation_form.attach.value;
ext = ext.substring(ext.length-3,ext.length);
ext = ext.toLowerCase();
if(ext != 'txt') {
alert('Ви прикріпили невірний файл! Будь ласка, виберіть .txt файл з кодуванням UTF8!');
return false; }
else
return true; }
</script>

Сss:


.file_input_textbox
{
float: left
}

.file_input_div
{
position: relative;
width: 80px;
height: 23px;
overflow: hidden;
}

.file_input_button
{
width: 80px;
position: absolute;
top: 0px;
background: url('/img/bk1.gif') repeat-x top;
color: #525252;
border: 1px;
border-color:#666666;
border-style: solid;
}

.file_input_hidden
{
font-size: 45px;
position: absolute;
right: 0px;
top: 0px;
opacity: 0;

filter: alpha(opacity=0);
-ms-filter: "alpha(opacity=0)";
-khtml-opacity: 0;
-moz-opacity: 0;
}

Все делает правильно, только что-то напутано с отображением пути файла в file_input_textbox, думаю в самом скрипте допустил ошибку.

Edited by chest
Link to comment
Share on other sites

  • 0

Подскажите мне чайнику! хочу сделать на сайте ссылку скачать файл- ехе!делаю в денвере и висте.не знаю как.в опере нтмл работает а в папку хоум ставлю-нет. КАК????ё ма ё замучалась я

ёйки блин :) :)

нет никого :):(

Link to comment
Share on other sites

  • 0

Единственно, если есть переменная, скажем $from_whom. То что нужно изменить в заголовках письма:


$boundary = "--".md5(uniqid(time()));

$headers .= "MIME-Version: 1.0\n";

$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";

$multipart .= "--$boundary\n";

$kod = 'windows-1251';

$multipart .= "Content-Type: text/html; charset=$kod\n";

$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";

$multipart .= "$html\n\n";



$message_part = "--$boundary\n";

$message_part .= "Content-Type: application/octet-stream\n";

$message_part .= "Content-Transfer-Encoding: base64\n";

$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";

$message_part .= chunk_split(base64_encode($file))."\n";

$multipart .= $message_part."--$boundary--\n";

чтобы в адресе полученного письма отображалось значение who_is..

А, и еще, можно ли, и правильно ли будет, изменить $message_part .= "Content-Type: application/octet-stream\n"; на $message_part .= "Content-Type: application/texp/plain\n"; с целью разрешить скрипту отправку только файлов типа .тхт?

Link to comment
Share on other sites

  • 0

То, что ты где-то в строке напишешь text вместо octet, для php не имеет никакого значения, потому что он не содержит искусственного интеллекта и не занимается разбором строк. Этим ты создашь проблемы только для почтовика.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy