X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Проблемы с простой формой обратной связи
antiblef
antiblef
Topic Starter сообщение 6.1.2011, 16:03; Ответить: antiblef
Сообщение #1


Вообщем, мне нужно было создать большую форум обратной связи на один сайт, все вроде сделал, но при отправки всех введенных данных вылетает ошибка.
Форуму я сделал здесь: orimaster.ru/reg.php
Код формы:


<form method="POST" action="/sendmail.php">


<p>*Фамилия:</p>
<input name="sername">
<p>*Имя и Отчество:</p>
<input name="name">
<p>*Номер паспорта:</p>
<input name="passport">
<p>*Дата рождения (дд.мм.гггг):</p>
<input name="both">
<p>*Email:</p>
<input name="email">
<p>Область/регион:</p>
<input name="region">
<p>*Адрес проживания (ул/дом/кв):</p>
<input name="adress">
<p>*Город:</p>
<input name="city">
<p>*Индекс:</p>
<input name="index">
<p>Домашний телефон:</p>
<input name="hometel">
<p>*Мобильный телефон:</p>
<input name="mobtel">

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


Обрабатывает отправку файл sendmail.php
Содержимое его:


<?
# получаем данные и отсекаем пробельные символы в начале и конце:
$sername = @ trim ($_POST['sername']);
$name = @ trim ($_POST['name']);
$passport = @ trim ($_POST['passport']);
$both = @ trim ($_POST['both']);
$email = @ trim ($_POST['email']);
$region = @ trim ($_POST['region']);
$adress = @ trim ($_POST['adress']);
$city = @ trim ($_POST['city']);
$index = @ trim ($_POST['index']);
$hometel = @ trim ($_POST['hometel']);
$mobtel = @ trim ($_POST['mobtel']);
# проверка, переданы ли все данные
if (! $sername or ! $name or ! $passport or ! $both or ! $email or ! $adress or ! $city or ! $index or ! $mobtel) exit ('<p style="color: red">Необходимо заполнить все поля с *, вернитесь</p>');

# отправка данных на мыло админу
mail ("antiblef@gmail.com",
      "Зарегистрировать (отправитель: $name)",
      "Фамилия: \n $sername" \n\n Имя и Отчество: \n $name" \n\n Номер паспорта: \n $passport" \n\n Дата рождения \n $both" \n\n Email: \n $email" \n\n Область/регион: \n $region" \n\n Адрес проживания: \n $adress" \n\n Город: \n $city" \n\n Индекс: \n $index" \n\n Домашний телефон: \n $hometel" \n\n Мобильный телефон: \n $mobtel");
header ("Location: /http://orimaster.ru/");
?>



Я думаю, что ошибка здесь:
"Фамилия: \n $sername" \n\n Имя и Отчество: \n $name" \n\n Номер паспорта: \n $passport" \n\n Дата рождения \n $both" \n\n Email: \n $email" \n\n Область/регион: \n $region" \n\n Адрес проживания: \n $adress" \n\n Город: \n $city" \n\n Индекс: \n $index" \n\n Домашний телефон: \n $hometel" \n\n Мобильный телефон: \n $mobtel");
header ("Location: /http://orimaster.ru/");


Буду очень благодарен, если мне помогут найти ошибку.
И еще один вопрос, можно ли чтобы сообщение о незаполненных полях выводилось на странице ввода, а не перенаправлялось на другую страницу?

Сообщение отредактировал antiblef - 6.1.2011, 16:04
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
G_Market
G_Market
сообщение 6.1.2011, 16:57; Ответить: G_Market
Сообщение #2


Я думаю, что ошибка здесь:


Вы совершенно правы.
Здесь масса лишних кавычек !

Уберите все двойные кавычки в строке
"Фамилия: \n $sername" \n\n Имя и Отчество: \n $name" \n\n Номер паспорта: \n $passport" \n\n Дата рождения \n $both" \n\n Email: \n $email" \n\n Область/регион: \n $region" \n\n Адрес проживания: \n $adress" \n\n Город: \n $city" \n\n Индекс: \n $index" \n\n Домашний телефон: \n $hometel" \n\n Мобильный телефон: \n $mobtel");


Оставьте только перед Фамилия... и после ...$mobtel


--------------------
Товары и цены в магазинах Вашего города: Городской рынок


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
antiblef
antiblef
Topic Starter сообщение 6.1.2011, 18:26; Ответить: antiblef
Сообщение #3


(G_Market @ 6.1.2011, 15:57) *
Вы совершенно правы.
Здесь масса лишних кавычек !

Уберите все двойные кавычки в строке
"Фамилия: \n $sername" \n\n Имя и Отчество: \n $name" \n\n Номер паспорта: \n $passport" \n\n Дата рождения \n $both" \n\n Email: \n $email" \n\n Область/регион: \n $region" \n\n Адрес проживания: \n $adress" \n\n Город: \n $city" \n\n Индекс: \n $index" \n\n Домашний телефон: \n $hometel" \n\n Мобильный телефон: \n $mobtel");


Оставьте только перед Фамилия... и после ...$mobtel

Блин что-то я реально тупанул... Спасибо!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
G_Market
G_Market
сообщение 6.1.2011, 18:54; Ответить: G_Market
Сообщение #4


А чтобы не отправлялась форма с незаполненными полями, можно сделать проверку на JavaScript

например так

изменить код кнопки в форме

<p><input type="button" onclick='sendForm()' value=" Отправить "></p>


и добавить не страницу с формой код JavaScript с функцией, которая делает проверку полей и отправку только если поля заполнены (здесь просто проверяется чтоб поле было непустое, если его название начинается с *)

<script language="JavaScript">
<!--
function sendForm(){
var nF=document.forms[0].childNodes.length;
var t='';
for (var i = 0; i < nF; i++) {
  if (document.forms[0].childNodes[i].nodeName=='INPUT'){
    t=document.forms[0].childNodes[i-1].innerHTML;
    if(!t){
      t=document.forms[0].childNodes[i-2].innerHTML;
    }
    if(t.substring(0,1)=='*'){
      if(!document.forms[0].childNodes[i].value){
        alert('Поле "'+t+'" обязательно необходимо заполнить!')
        return;
      }
    }
  }
}
document.forms[0].submit();
}
// -->
</script>


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Товары и цены в магазинах Вашего города: Городской рынок
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Простой способ заработать на пиво за 5 минут
Халява для граждан РФ
17 MaxChemist 3146 15.9.2022, 17:42
автор: MaxChemist
Открытая тема (нет новых ответов) Нужен простой скрипт выставления ставок в Яндекс.Директ
1 taxi2008 1351 12.11.2020, 3:14
автор: Coffee
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПринимаю заказы на копирайтинг, рерайтинг. Стабильно работаю, всегда на связи
Нужен автор текстов, копирайтер? Обращайтесь
14 KriptoFin 8092 22.9.2020, 18:07
автор: mrSana
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2598 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Нужно сделать простой и легкий сайт
21 dota 5687 13.7.2020, 12:59
автор: Mistic


 



RSS Текстовая версия Сейчас: 19.4.2024, 9:32
Дизайн