Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.09.2013, 14:43
Аспирант
Отправить личное сообщение для Alex45 Посмотреть профиль Найти все сообщения от Alex45
 
Регистрация: 12.01.2013
Сообщений: 37

Тестирование работы формы и обработчика на 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 "Сообщение отправлено!";}
?>
Ответить с цитированием
  #2 (permalink)  
Старый 06.09.2013, 15:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 06.09.2013, 15:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$email = isset($_POST['email']) ? $_POST['email'] : '';


И остальные поля также. Еще рекомендую очищать пришедшие данные от html-тегов
Ответить с цитированием
  #4 (permalink)  
Старый 06.09.2013, 17:08
Аспирант
Отправить личное сообщение для Alex45 Посмотреть профиль Найти все сообщения от Alex45
 
Регистрация: 12.01.2013
Сообщений: 37

Я не спец ни в языке php ни в языке JavaScript.
Что где исправлять - ??????
Интересно только одно:
в видеоуроке все работает и с таким кодом ( без изменений), а вот на моем Денвере нет. А вы не пробовали на своем локальном сервере работу этой формы (если есть Denver)
Или дайте код любой формы с обработчиком с функцией mail правильно работающей в Denvere.
Если это возможно.
Спасибо.
Ответить с цитированием
  #5 (permalink)  
Старый 06.09.2013, 17:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Это может работать только если включен register_globals, а умные люди никогда его не включают. Делайте выводы.
Ответить с цитированием
  #6 (permalink)  
Старый 06.09.2013, 22:41
Аспирант
Отправить личное сообщение для Alex45 Посмотреть профиль Найти все сообщения от Alex45
 
Регистрация: 12.01.2013
Сообщений: 37

Заработало. Спасибо.
В папку с моими двумя файлами (форма и обработчик) добавил файл
.htaccess с одной строчкой: php_flag register_globals on
Выплывает вопрос: чтобы не включать register_globals надо писать скрипты на более современном языке (применять массивы)?
Что посоветуете для изучения PHP.
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2013, 05:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Я выше привел пример как получить например значение email из POST-массива. Неужели это сложно?
Остальные поля получаем также.
Ответить с цитированием
  #8 (permalink)  
Старый 07.09.2013, 05:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от danik.js
Еще рекомендую очищать пришедшие данные от html-тегов
Это лишнее. У вас письмо в формате Plain Text, а не HTML, так что html-теги никакого вреда не могут доставить.
Ответить с цитированием
  #9 (permalink)  
Старый 08.09.2013, 10:44
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Alex45
Я не спец ни в языке php ни в языке JavaScript.
Сообщение от Alex45
Denver
а в целом читать/писать умеешь?
Ответить с цитированием
  #10 (permalink)  
Старый 16.09.2013, 21:45
Аспирант
Отправить личное сообщение для Alex45 Посмотреть профиль Найти все сообщения от Alex45
 
Регистрация: 12.01.2013
Сообщений: 37

Сообщение от bes Посмотреть сообщение
а в целом читать/писать умеешь?
Профессор Bes, вместо подкалывания лучше бы подсказали, если вы конечно профессор?
Нашел решение и без профессоров.
Кому интересно:
Некоторые хостинги (в том числе и Denver) могут не поддерживать передачу переменных методом POST (GET) сразу же в обычные переменные, а передают их только в глобальный массив $_POST[] ($_GET[]).
Т.е. перед написанием функции нам необходимо обычным переменным присвоить значение глобального массива $_POST[] ($_GET[]).
Пример:
$fio = $_POST['fio']; и так все переменные.
После того, как мы сделали такую подстраховку, ниже нее можно спокойно употреблять обычные переменные $имя.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Алгоритм работы обработчика события salikoff Events/DOM/Window 1 20.09.2012 23:46
Связать формы и результат обработчика Calisto Общие вопросы Javascript 0 04.04.2012 15:11