Перейти к содержимому

Фотография
- - - - -

Создание формы на сайте. Где ошибка в коде обработчика?


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 8

#1 Pavl

Pavl

    Прохожий

    Топикстартер
  • Участник
  • 0
    18 сообщ.

Отправлено 07 Апрель 2018 в 17:02

Добрый день!
Понимаю, что ошибка, где-то рядом, но не понимаю - где именно?
Создал форму. Затем обработчик формы. И, вроде как, обработчик работает, но при ответе обработчика, после строки со словами: Спасибо за отправку вашего сообщения!; "Нажмите, чтобы вернуться на главную страницу", появляется текст с ненужными символами.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Обратная связь</title>
</head>

<body>
<?php 
if(isset($_POST['name'])) {$name = $_POST['name'];}
if(isset($_POST['email'])) {$email = $_POST['email'];}
if(isset($_POST['mess'])) {$mess = $_POST['mess'];}

$to = "mymail@inbox.ru";
$headers = "Content-type: text/plain; charset=windows-1251";
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";
$send = mail($to, $subject, $message, $headers);
if ($send == 'true')
{
echo <b>Спасибо за отправку вашего сообщения!</b>;
"<a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу";
}
else
{
echo <b>"Ошибка. Сообщение не отправлено!"</b>;
}
?>
</body>
</html>

  • 0

Спонсор

#2 miketomlin

miketomlin

    Частый гость

  • Участник
  • 15
    70 сообщ.

Отправлено 07 Апрель 2018 в 19:33

С кавычками в echo намудрили. Если внутри строки есть дв. кавычки, обрамляйте ее одинарными (апострофами). И тэги тоже нужно включать внутрь строк, иначе получается ламерство высшего порядка.


// true!=='true'
if ($send)
{
echo '<b>Спасибо за отправку вашего сообщения!</b>
<a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу';
}
else
{
echo '<b>Ошибка. Сообщение не отправлено!</b>';
}

  • 0

#3 Pavl

Pavl

    Прохожий

    Топикстартер
  • Участник
  • 0
    18 сообщ.

Отправлено 08 Апрель 2018 в 00:29

Снова, примерно, то же самое получается.
 
Вот, код, на данный момент:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Обратная связь</title>
</head>
 <body>
<?php
if(isset($_POST['name'])) {$name = $_POST['name'];}
if(isset($_POST['email'])) {$email = $_POST['email'];}
if(isset($_POST['mess'])) {$mess = $_POST['mess'];}


$to = "mymail@inbox.ru";
$headers = "Content-type: text/plain; charset=windows-1251";
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name \nЭлектронный адрес: $email \nСообщение: $mess";
$send = mail($to, $subject, $message, $headers);
if ($send)
{
echo '<b>Спасибо за отправку вашего сообщения!</b>
<a href="index.html">Нажмите,</a> чтобы вернуться на главную страницу';
}
else
{
echo '<b>Ошибка. Сообщение не отправлено!</b>';
}
?>
</body>
</html>

  • 0

#4 BaNru

BaNru

    Пацифизжу

  • суперМодератор
  • 1010
    3 661 сообщ.

Отправлено 08 Апрель 2018 в 01:19

После нажатия у тебя открывается index.html.

Смотри чего в нём лежит.


  • 0

#5 Volly

Volly

    Увлеченный

  • Участник
  • 110
    554 сообщ.

Отправлено 08 Апрель 2018 в 01:32

Вы постеснялись уточнить, что это: "появляется текст с ненужными символами", поэтому пишу наугад.

 

Сервер должен работать, например Апачи.

Php должен быть подключен к серверу.

Файл должен лежать в папке, известной серверу.

Если ваш файл имеет расширение html, то сервер должен быть настроен на работу php в html-файлах.

Запускать файл надо по сетевому адресу типа http://address, а не через Проводник двойным кликом в папке.

Если в заголовке написано meta http-equiv="Content-Type" content="text/html; charset=windows-1251, то файл надо сохранять в ANSI и сервер должен посылать свой заголовок в этой же кодировке или не посылать его совсем.

 

Теперь по коду.

Если этот файл открывается после отправки формы - это одно, а если сам по себе, то переменные $name, $email и $mess не определены и php может ругаться. Лучше писать примерно так:

if(isset($_POST['name'])) $name = $_POST['name']; else $name = ''; (две одинарные кавычки).


  • 0

#6 Pavl

Pavl

    Прохожий

    Топикстартер
  • Участник
  • 0
    18 сообщ.

Отправлено 08 Апрель 2018 в 02:04

Volly, я создаю сайт на локальном сервере Денвер с помощью AdobeDreamweamver CS4.

 

Когда открываю страницу сайта index.html, то в адресной строке браузера появляется путь: file:///Z:/home/localhost/www/urok5/index.html

 

А обработчик формы: file:///Z:/home/localhost/www/urok5/mail.php

 

Понимаю, что, возможно, неправильно, открываются страницы сайта. Вы пишите, что нужно запускать файл по сетевому адресу типа http://address/, а не через Проводник.

 

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


  • 0

#7 miketomlin

miketomlin

    Частый гость

  • Участник
  • 15
    70 сообщ.

Отправлено 08 Апрель 2018 в 07:03

Бздец.

 


я создаю сайт на локальном сервере Денвер
Палеонтолог что ли? По логике открывать, видимо, нужно по ссылке хттп://localhost/urok5/index.html, хотя как на самом деле в этом реликте все устроено, копайте сами.
  • 0

#8 BaNru

BaNru

    Пацифизжу

  • суперМодератор
  • 1010
    3 661 сообщ.

Отправлено 08 Апрель 2018 в 11:03

нужно по ссылке хттп://localhost/urok5/index.html, хотя как на самом деле в этом реликте все устроено, копайте сами.

При запуске он создаёт домен локальный по имени папки
хттп://urok5/index.html
  • 0

#9 Volly

Volly

    Увлеченный

  • Участник
  • 110
    554 сообщ.

Отправлено 08 Апрель 2018 в 16:01

Pavl, вот это file:///Z:/home/localhost/www/urok5/index.html как раз и есть попытка открыть файл в файловой системе операционки минуя сервер и всякие прибамбасы типа php, perl и др., а надо подключаться, как написал выше BaNru, по протоколу http://

Для этого:

- проводником откройте диск Z:, если запущен Денвер, или откройте папку, в которую установили Денвер;

- там найдите папку home и откройте её;

- в папке home создайте папку urok5 (это и будет имя сайта), а в папке urok5 создайте папку www;

- в папку www положите файлы index.html и mail.php;

- запустите Денвер, а если он был запущен, то  обязательно перезапустите;

- откройте браузер и в его адресной строке наберите http://urok5.

 

В зависимости от настроек браузера и Денвера будут работать вариации адреса:

http://urok5/
http://urok5/index.html
http://www.urok5/
http://www.urok5/index.html


Сообщение отредактировал Volly: 08 Апрель 2018 в 16:10

  • 0



Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение
Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей