Консультация № 55419
14.09.2006, 12:34
0.00 руб.
0 4 4
Здравствуйте!
Такая прорблема.
Нужна форма на сайте в которую посетитель вводит логин и пароль и нажимает отправить, после чего данные отсылаются мне на почту.
Скрипт несложный я написал его сам (см в приложении). На денвере он работает хорошо и без збоев.
Как только перенес на хостинг (бесплатный но с поддержкой пхп, jino-net.ru) перестал.
Причем письмо мне приходит но без логина и пароля. Такое впечатление что просто не переносятся значения переменных. Что нужно исправить в скрипте или в форме, чтобы все было в порядке.
На вышеупомянутом сайте стоит пхп 5, а на денвере если не ошибаюсь 4. Может проблема в этом?

Приложение:
============html==============<html><head><title>прототип</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /></head><body><form name="anket" id="anket" method="post" action="sendmail.php"> <p>Логин: <input name="body" type="text" id="логин" value="" /></p> <p>Пароль: <input name="pas" type="password" id="пароль" /></p> <p> <input type="submit" value="отправить" /></p></form></body></html>============php===============<?php// файл sendmail.phpif (mail("valeraorg@mail.ru", "сайт", "Данные клиента Логин: $body Пароль: $pas")) {echo("Ваш логин и пароль отосланы") ;} else {echo ("Сбой") ;}?>

Обсуждение

Неизвестный
14.09.2006, 12:42
общий
это ответ
Здравствуйте, Valeraorg1!

Проблема в том, что у Вас в денвере выставлена переменная RegisterGlobal в on, а на хостинге в off. И соответственно на хостинге переменные, переданные через метод post будут храниться в массиве $_POST.

Перепишите участок кода след. образом, должно заработать:

============php===============
<?php
// файл sendmail.php
if (mail("valeraorg@mail.ru", "сайт", "Данные клиента Логин:".$_POST["body"]." ".Пароль: ".$_POST["pas"])) {
echo("Ваш логин и пароль отосланы") ;
} else {
echo ("Сбой") ;
}
?>

С уважением,
Антон Цепковский.

Приложение:
============php===============<?php// файл sendmail.phpif (mail("valeraorg@mail.ru", "сайт", "Данные клиента Логин:".$_POST["body"]." ".Пароль: ".$_POST["pas"])) {echo("Ваш логин и пароль отосланы") ;} else {echo ("Сбой") ;}?>
Неизвестный
14.09.2006, 12:42
общий
это ответ
Здравствуйте, Valeraorg1!
Похоже на то, что на сервере стоит "register_global off".
Попробуйте брать данные не напрямую из переменных, а из массива $_POST
$body = $_POST[‘body‘];
$pas = $_POST[‘pas‘];
Неизвестный
14.09.2006, 12:44
общий
это ответ
Здравствуйте, Valeraorg1!
Причина очень проста - в Денвере включена опция registr_globals, который отключен у провайдера. Поэтому добавте в начало файла sendmail.php следующий код:

$body = $_REQUEST[‘body‘];
$pas = $_REQUEST[‘pas‘];

Неизвестный
14.09.2006, 12:58
общий
это ответ
Здравствуйте, Valeraorg1!
Вероятно в Денвере выставлена настройка register_globals=On. По умолчанию она отключена. Замените $body на $_POST["body"], $pas на $_POST["pas"] и т.д.
Форма ответа