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



 

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

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

Открыть тему
Тема закрыта
> PHP форма, сам не могу найти ошибку... (Часть 1)
Warrior of the l...
Warrior of the l...
Topic Starter сообщение 6.8.2009, 13:16; Ответить: Warrior of the light
Сообщение #1


Всем привет. Возникла проблема, не могу создать PHP форму обратной связи, не могу понять, в чем заключается моя ошибка. Что бы было понятно даю следующее. Ссылка на сайт, мой первый сайт который я вообще делаю. :rolleyes: http://www.favorit-web.ru, не могу понять, что нужно изменить и в каком коде, для того, что бы после того, как на форме обратной связи была нажата опция отправить. Можно было затем вернуться на главную страницу, так же и со страниц уровня подкатегорий, которые находятся в папках ниже.

Даю часть кода главной страницы, этой формы:

<table border="1" width="95%" bgcolor="#C9CECF">
<tr>
<td align="center" width="95%" height="15">
Написать нам письмо:</td>
</tr>
<tr>
<td> <align="center" width="95%" height="60">
<form action="mail.php" method="post">
<p align="center">Ваше имя:<br>
<input type="text" name="name" size="30">
Ваш e-mail:<br>
<input type="text" name="email" size="30"></p>
<center>
<p>
Ваше сообщение:<br>
<textarea name="mess" rows="5" cols="20"></textarea><p>
<input type="submit" value="Отправить сообщение">
</form>
</td> </td>
</tr>
</table>


Даю полный код документа mail.php:

[PHP]<?php
if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href="index.htm">Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$name = "не указано";
}
if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Не указан e-mail !!!<p>";
echo "<a href="index.php">Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$email = "не указано";
}
if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "<center><b>Сообщение не написано !!!<p>";
echo "<a href="index.htm">Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else
{
$mess = "не указано";
}
$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Ошибка ! Скрипту не были переданы параметры !";
exit;
}
$to = "ro-motr@yandex.ru"; /*МЕНЯЕШЬ НА СВОЙ АДРЕСС!*/
$subject = "Сообщение с вашего интернет-сайта";
$message = "Имя пославшего:$name::::::::::Электронный адрес:$email::::::::::Сообщение:$mess:::::::::IP-адрес:$REMOTE_ADDR";
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку вашего сообщения<br><a href="index.php">Нажмите</a>, что бы вернуться на главную...>";
exit;
?> [/PHP]

Надеюсь вы мне поможите. Спасибо. С уважением Игорь.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nightfly_hb
Nightfly_hb
сообщение 6.8.2009, 13:51; Ответить: Nightfly_hb
Сообщение #2


просто вставьте форму в iframe ;)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Warrior of the l...
Warrior of the l...
Topic Starter сообщение 6.8.2009, 15:45; Ответить: Warrior of the light
Сообщение #3


Что то я не понимаю, как это даже выглядеть должно.:wacko: Вобщем, я не понимаю, зачем в документ HTML c cылкой на mail.php еще и фрейм нужне. о-ё-ё-й Выручайте. спасибо
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nightfly_hb
Nightfly_hb
сообщение 6.8.2009, 17:40; Ответить: Nightfly_hb
Сообщение #4


[PHP]<iframe id="frame_1" src="форма_ввода.html" frameborder="0"></iframe>[/PHP]раземеры сами подгоните
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nightfly_hb
Nightfly_hb
сообщение 6.8.2009, 19:36; Ответить: Nightfly_hb
Сообщение #5


создаёте html страницу с кодом формы. её подгружаете в фрейм
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Warrior of the l...
Warrior of the l...
Topic Starter сообщение 7.8.2009, 7:22; Ответить: Warrior of the light
Сообщение #6


Создал, страницу отдельную с формой погрузил в фрейм, нажал опцию отправить. Получилось белое окно в окне фрейма. К тому же, когда я захожу на сайты с похожими формами. Просматриваю, HTML код этих страниц. Нахожу, то, что их PHP формы обратной связи не стоят ни в каких фреймах, они прописаны в самих документах HTML с сылкой на mail.php Все же, фрейм здесь не нужне. Так, чего же мне не хвататет??? Спасибо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 7.8.2009, 8:58; Ответить: Apay
Сообщение #7


1) по-умолчанию register_globals отключены и включать их очень не рекомендуется

2) надо в форму добавить поле, с какой страницы была отправка (refferer не всегда работает)

3) в коде куча ошибок, советую учить матчасть

итог: легче переделать, чем объяснять что не так, переделал.
<table border="1" width="95%" bgcolor="#C9CECF">
<tr><td align="center" height="15">Написать нам письмо:</td></tr>
<tr>
<td align="center" height="60">
<form action="mail.php" method="post">
Ваше имя:<br />
<input type="text" name="name" size="30" /><br />
Ваш e-mail:<br />
<input type="text" name="email" size="30" /><br />
Ваше сообщение:<br />
<textarea name="mess" rows="5" cols="20"></textarea><br />
<input type="submit" value="Отправить сообщение" />
<script type="text/javascript">
document.write( '<input type="hidden" name="ref" value="'+document.location.href+'" />' );
</script>
</form>
</td>
</tr>
</table>


[PHP]function ret( $msg ){
die( '<p>'.$msg.'<br /><a href="'.$_POST['ref'].'">Вернуться и правильно заполнить форму.</a></p>' );
}

$name = isset($_POST['name']) ? substr($_POST['name'],0,20) : ''; //Не может быть более 20 символов
if( empty( $name ) ) ret( 'Не указано имя !!!' );

$email = isset($_POST['email']) ? substr($_POST['email'],0,20) : ''; //Не может быть более 20 символов
if(empty( $email ) ) ret( 'Не указан e-mail !!!' );

$mess = isset($_POST['mess']) ? substr($_POST['mess'],0,1000) : ''; //Не может быть более 1000 символов
if(empty( $mess ) ) ret( 'Сообщение не написано !!!' );

$to = "ro-motr@yandex.ru"; /*МЕНЯЕШЬ НА СВОЙ АДРЕСС!*/
$subject = "Сообщение с вашего интернет-сайта";
$message = "Имя пославшего:$name\nЭлектронный адрес:$email\nСообщение:$mess\nIP-адрес:{$_SERVER['REMOTE_ADDR']}";

if( mail( $to,$subject,$message ) )
echo '<p>or print "Не могу отправить письмо !!!';
else echo '<p><b>Спасибо за отправку вашего сообщения</b>';
echo '<a href="'.$_POST['ref'].'">Нажмите</a>, что бы вернуться...</p>';
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nitrex
Nitrex
сообщение 13.8.2009, 18:59; Ответить: Nitrex
Сообщение #8


вместо echo используй printf и не мучайся, а если адрес, то используй одинарные ковычки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Azalis
Azalis
сообщение 13.8.2009, 22:49; Ответить: Azalis
Сообщение #9


(Nitrex @ 13.8.2009, 21:59) *
вместо echo используй printf и не мучайся, а если адрес, то используй одинарные ковычки

можно дурацкий вопрос: зачем?..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 14.8.2009, 7:49; Ответить: Apay
Сообщение #10


(Azalis @ 14.8.2009, 01:49) *
можно дурацкий вопрос: зачем?..
человек наверное не в курсе что существует подстановка строк и экранирование символов

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
9 Room 1764 26.2.2024, 21:51
автор: bestx24
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3243 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1129 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44712 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1850 26.5.2023, 20:48
автор: Mixatraider


 



RSS Текстовая версия Сейчас: 19.3.2024, 13:25
Дизайн