Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 14:39   #1
Eugene811
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию помощь по PHP(форма и обработка)

Доброго всем времени суток.Ребят, я уже оставлял сообщение похожее,прошу прошения что повторяюсь.
вот код формы

Код HTML:
<form method="post" action="action.phtml">
    <p>&nbsp;</p>
    <p>Фамилия, Имя, Отчество</p>
    <p><input name="name" size="40" type="text" /></p>
    <p>&nbsp;</p>
    <p>Телефон (с кодом города)</p>
    <p><input name="tel_1" size="40" type="text" /></p>
    <p>&nbsp;</p>
    <p>E-mail</p>
    <p><input name="email" size="40" type="text" /></p>
    <p>&nbsp;</p>
    <p>Почтовый адрес</p>
    <p><input name="add_1" size="40" type="text" /></p>
    <p>&nbsp;</p>
    <p>Сообщение</p>
    <p><textarea rows="3" name="mess" cols="40"></textarea></p>
    <p><br />
    <input value="Отправить" name="B1" type="submit" /> <input value="Очистить" name="B2" type="reset" /></p>
</form>

файл action.phtml

PHP код:
<?php

If(empty($_POST["name"]))
{echo 
'Поле "Фамилия,Имя,Отчество" является обязательным для заполнения.Пожалуйста,вернитесь и заполните';
echo 
'<p><a href="http://мой сайт.ru/ukfdyfz.php">Нажмите</a>,чтобы вернуться<p>';}
else{

$str="

ФИО - "
.$name."

Телефон - "
.$tel_1."

E-mail -  "
.$email."

Почтовый адрес -  "
.$add_1."

Сообщение - "
.$mess."";

$art="Анкета";


mail("указываю почту"$art$str);

echo 
"Спасибо.Ваша анкета принята!";

}

?>
в почте данные не отображаются,пустое место,а вместо слов ФИО,Адрес и прочее не понятные символы;я слышал надо какую-то кодировку применить чтоб символы русскими стали,подскажите что за кодировка?и ещё почему данные не приходят на почту,ведь если хоть что-то на почту приходит,значит name присвоено значение,почему же оно в почте не отображается?может в коде что не так.Совсем недавно начал прогать.спасибо.
форматируйте код!! //модератор

Последний раз редактировалось SkyM@n; 10.05.2009 в 22:26.
Eugene811 вне форума Ответить с цитированием
Старый 10.05.2009, 15:48   #2
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

Привет.
Дело в том, что у вас на сервере регистрация глобальных переменных может быть отключена!!!

Код:
if (isset($_POST['name'])) $name = $_POST['name'];
а кодировка

например

Код:

$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: $name <$email>\r\n";
$headers.="X-Mailer: PHP/phpversion()\r\n";

mail("указываю почту", $art, $str, $headers);

Последний раз редактировалось Dirt; 10.05.2009 в 16:56.
Dirt вне форума Ответить с цитированием
Старый 10.05.2009, 17:37   #3
Eugene811
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию

Спасибо,кодировка заработала!но переменные по-прежнему не приходят
.Подскажите как на сервере подключить регистрацию глобальных переменных?я думаю что дело в этом.На другом сайте у меня такая форма как часы работает,а здесь - проблема.
Eugene811 вне форума Ответить с цитированием
Старый 10.05.2009, 17:47   #4
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

в php.ini изменить:
register_globals = off

на :
register_globals = on

а почему вы не хотите сделать так:
Код:
<?php

If(empty($_POST["name"]))
{echo 'Поле "Фамилия,Имя,Отчество" является обязательным для заполнения.Пожалуйста,вернитесь и заполните';
echo '<p><a href="http://мой сайт.ru/ukfdyfz.php">Нажмите</a>,чтобы вернуться<p>';}
else{
if (isset($_POST['name'])) $name = $_POST['name'];
if (isset($_POST['tel_1'])) $tel_1 = $_POST['tel_1'];
if (isset($_POST['email'])) $email = $_POST['email'];
if (isset($_POST['add_1'])) $add_1 = $_POST['add_1'];
if (isset($_POST['mess'])) $mess = $_POST['mess'];

$str="

ФИО - ".$name."

Телефон - ".$tel_1."

E-mail - ".$email."

Почтовый адрес - ".$add_1."

Сообщение - ".$mess."";

$art="Анкета";


$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: $name <$email>\r\n";
$headers.="X-Mailer: PHP/phpversion()\r\n";

mail("указываю почту", $art, $str, $headers);

echo "Спасибо.Ваша анкета принята!";

}

?>
Dirt вне форума Ответить с цитированием
Старый 10.05.2009, 17:51   #5
Eugene811
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию

а если как вы предлагаете сделать php.ini можно не трогать?
Eugene811 вне форума Ответить с цитированием
Старый 10.05.2009, 17:53   #6
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

да, можно не трогать
Dirt вне форума Ответить с цитированием
Старый 10.05.2009, 18:03   #7
Eugene811
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию

Появилась новая проблема.Вот что на почту пришло:
ФИО - Петров петр петрович

Телефон - 123-45-567-78909

E-mail - ghj@mail.ru

Почтовый адрес - почтовый адрес

Сообщение - РјРѕРµ сообщение

кодировка почему-то действует только на записанные в программе слова,ФИО,телефон и тд.,а вот что вводим в форме - то,что видите.ФИО я,например, ввел:Петров Петр Петрович.
В чем может быть проблема?
Eugene811 вне форума Ответить с цитированием
Старый 11.05.2009, 04:17   #8
Dirt
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 60
По умолчанию

Попробуйте так:
Код:
<?php

header("Content-Type: text/xml; charset=windows-1251");

If(empty($_POST["name"]))
{echo 'Поле "Фамилия,Имя,Отчество" является обязательным для заполнения.Пожалуйста,вернитесь и заполните';
echo '<p><a href="http://мой сайт.ru/ukfdyfz.php">Нажмите</a>,чтобы вернуться<p>';}
else{
if (isset($_POST['name'])) $name = $_POST['name'];
if (isset($_POST['tel_1'])) $tel_1 = $_POST['tel_1'];
if (isset($_POST['email'])) $email = $_POST['email'];
if (isset($_POST['add_1'])) $add_1 = $_POST['add_1'];
if (isset($_POST['mess'])) $mess = $_POST['mess'];

$str="

ФИО - ".$name."

Телефон - ".$tel_1."

E-mail - ".$email."

Почтовый адрес - ".$add_1."

Сообщение - ".$mess."";

$art="Анкета";


$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From: $name <$email>\r\n";
$headers.="X-Mailer: PHP/phpversion()\r\n";

mail("указываю почту", $art, $str, $headers);

echo "Спасибо.Ваша анкета принята!";

}

?>
Dirt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на PHP. необходимо вычилсить последовательность POPOV PHP 10 27.05.2009 20:36
Помощь в delphi for php Marsik Софт 4 14.03.2008 21:09