Тестирование работы формы и обработчика на Denvere
Привет всем.
Проверяю, работает ли форма и обработчик на локальном сервере. При тестировании работы формы и обработчика в папку tmp/!sendmail приходит сообщение, отправленное обработчиком. Но вот в сообщении отсутствуют все данные, которые мы вносили в поля формы. Будто эти переменные не отправлялись в обработчик. Помогите найти причину. Форма и обработчик взяты из видеоуроков Попова. У него там все работает. Код формы: <h1 align="center">Форма</h1> <table border="1" width="400" bgcolor="white" align="center" bordercolor="black" cellpadding="10"> <tr> <td> <form action="obrabotka.php" method="post" name="form1"> <p>Введите свое ФИО<br> <input type="text" name="fio"> </p> <p>Введите свой email<br> <input type="text" name="email"> </p> <p>Какие курсы должны быть на диске<br> <input type="checkbox" name="site">Курс по созданию сайтов<br> <input type="checkbox" name="book" >Курс по созданию книг<br> </p> <p> <input type="submit" name="button" value="Отправить"> </p> </form> </td> </tr> </table> Код скрипта: <?php if (isset($site)) {$site="да";} else {$site="нет";} if (isset($book)) {$book="да";} else {$book="нет";} $v = mail("test@test.ru","Заказ с сайта","На сайте был сделан заказ. \n Заказ пришел от: $fio \n Его email: $email \n Выбрал курсы: \n Курс по созданию сайта: $site \n Курс по созданию книг: $book","Content-type:text/plain; charset = 1251\r\n"); if ($v == "true") {echo "Сообщение отправлено!";} ?> |
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
$email = isset($_POST['email']) ? $_POST['email'] : ''; И остальные поля также. Еще рекомендую очищать пришедшие данные от html-тегов |
Я не спец ни в языке php ни в языке JavaScript.
Что где исправлять - ?????? Интересно только одно: в видеоуроке все работает и с таким кодом ( без изменений), а вот на моем Денвере нет. А вы не пробовали на своем локальном сервере работу этой формы (если есть Denver) Или дайте код любой формы с обработчиком с функцией mail правильно работающей в Denvere. Если это возможно. Спасибо. |
Это может работать только если включен register_globals, а умные люди никогда его не включают. Делайте выводы.
|
Заработало. Спасибо.
В папку с моими двумя файлами (форма и обработчик) добавил файл .htaccess с одной строчкой: php_flag register_globals on Выплывает вопрос: чтобы не включать register_globals надо писать скрипты на более современном языке (применять массивы)? Что посоветуете для изучения PHP. |
Я выше привел пример как получить например значение email из POST-массива. Неужели это сложно?
Остальные поля получаем также. |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Нашел решение и без профессоров. Кому интересно: Некоторые хостинги (в том числе и Denver) могут не поддерживать передачу переменных методом POST (GET) сразу же в обычные переменные, а передают их только в глобальный массив $_POST[] ($_GET[]). Т.е. перед написанием функции нам необходимо обычным переменным присвоить значение глобального массива $_POST[] ($_GET[]). Пример: $fio = $_POST['fio']; и так все переменные. После того, как мы сделали такую подстраховку, ниже нее можно спокойно употреблять обычные переменные $имя. |
Часовой пояс GMT +3, время: 15:44. |