Fawlty Опубликовано 11 сентября, 2006 Жалоба Поделиться Опубликовано 11 сентября, 2006 Доброго времени суток всем. Пытаюсь создать форму обратной связи на PHP для своего сайта, вроде бы всё делаю верно но форма на электронную почту приходит без данных введённых в неё Файл index.htm (сама форма) <html><body><form action=mail.php method=post><table border=0 align=center width=60%><tr><td align=left>First Name: <td align=center><input type=text size= name=fname></tr><tr><td align=left>Last Name: <td align=center><input type=text size= name=lname></tr><tr><td align=left>E-Mail: <td align=center><input type=text size= name=email></tr><tr><td align=left>ICQ Number: <td align=center><input type=text size= name=icq></tr><tr><td align=left>Comments: <td align=center><textarea name=comments cols= rows=></textarea></tr><tr><td align=left colspan=2><input type=submit value="Отправить сообщение"></tr></table></form></body></html> Файл mail.php (скрипт который по идее должен высылать данные введённые в эту форму) <?php $to = "mymail@mysite.ru"; $subj = "feedback"; $mess = "Test. First Name: $fname Last Name: $lname E-Mail: $email ICQ Number: $icq Comments: $comments "; $headers = "Content-type: text/plain; charset=windows-1251 "; mail($to, $subj, $mess, $headers); echo "OK !"; ?> Что же я сделал не так ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 11 сентября, 2006 Жалоба Поделиться Опубликовано 11 сентября, 2006 вероятно у тебя в php.ini стоит register_globals=off а твой скрипт написан под register_globals=on вставь в начало mail.php следующий код: foreach($_POST as $var => $value) $$var = $value; должно помочь! Ссылка на комментарий Поделиться на другие сайты Поделиться
Fawlty Опубликовано 11 сентября, 2006 Автор Жалоба Поделиться Опубликовано 11 сентября, 2006 вероятно у тебя в php.ini стоит register_globals=off а твой скрипт написан под register_globals=on вставь в начало mail.php следующий код: foreach($_POST as $var => $value) $$var = $value; должно помочь! Вставил в mail.php строчку foreach($_POST as $var => $value) $$var = $value; сразу после <? но результат тот же, приходит всё кроме данных введённых в форму. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 11 сентября, 2006 Жалоба Поделиться Опубликовано 11 сентября, 2006 (изменено) Fawlty: Попробуй: <?php$to = "mymail@mysite.ru";$subj = "feedback";$mess = "First Name: $fname\n";$mess .= "Last Name: $lname\n";$mess .= "E-Mail: $email\n";$mess .= "ICQ Number: $icq\n";$mess .= "Comments: $comments";$headers = "Content-type: text/plain; charset=windows-1251";mail($to, $subj, $mess, $headers);echo "OK !";?> А лучше замени сначала mail($to, $subj, $mess, $headers); на echo "$to, $subj, $mess, $headers"; Тогда увидишь, определились ли у тебя переменные. Изменено 11 сентября, 2006 пользователем Alexander-V-Sh Ссылка на комментарий Поделиться на другие сайты Поделиться
Fawlty Опубликовано 12 сентября, 2006 Автор Жалоба Поделиться Опубликовано 12 сентября, 2006 Fawlty: Попробуй: <?php$to = "mymail@mysite.ru";$subj = "feedback";$mess = "First Name: $fname\n";$mess .= "Last Name: $lname\n";$mess .= "E-Mail: $email\n";$mess .= "ICQ Number: $icq\n";$mess .= "Comments: $comments";$headers = "Content-type: text/plain; charset=windows-1251";mail($to, $subj, $mess, $headers);echo "OK !";?> А лучше замени сначала mail($to, $subj, $mess, $headers); на echo "$to, $subj, $mess, $headers"; Тогда увидишь, определились ли у тебя переменные. Похоже что переменные не определились Заменил mail($to, $subj, $mess, $headers); на echo "$to, $subj, $mess, $headers"; Получил mymail@mysite.ru, feedback, OK !. First Name: Last Name: E-Mail: ICQ Number: , Content-type: text/plain; charset=windows-1251 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexander-V-Sh Опубликовано 12 сентября, 2006 Жалоба Поделиться Опубликовано 12 сентября, 2006 Тогда форму поменяй... Она у тебя вообще как то странно написана. <input type=text size= name=lname> size чему равно? У тебя написано что size= name=lname тут либо так: <input type="text" name="lname"> либо так: <input type="text" size="20" name="lname"> и тут что то цифр не видно cols= rows= Ссылка на комментарий Поделиться на другие сайты Поделиться
Fawlty Опубликовано 12 сентября, 2006 Автор Жалоба Поделиться Опубликовано 12 сентября, 2006 Тогда форму поменяй... Она у тебя вообще как то странно написана. <input type=text size= name=lname> size чему равно? У тебя написано что size= name=lname :) тут либо так: <input type="text" name="lname"> либо так: <input type="text" size="20" name="lname"> и тут что то цифр не видно cols= rows= Форму поправил, теперь всё работает. Большое спасибо ! Ссылка на комментарий Поделиться на другие сайты Поделиться
Fawlty Опубликовано 13 сентября, 2006 Автор Жалоба Поделиться Опубликовано 13 сентября, 2006 Теперь возникла проблема с кодом подтверждения в форме обратной связи. Создал два файла code.php и code.png code.php <?phpsession_start();$сode = rand(100000,999999);session_register("сode");$Image = imageCreateFromPng ("code.png");$Color = imageColorAllocate($Image, 254, 165, 65);settype ($сode, "string");imageString($Image, 3, 30, 3, $сode, $Color);Header("Content-type: image/png");imagePng($Image);imageDestroy($Image);?> code.png чистый рисунок с размером 100 на 17 пикселей. в index.htm вставил следующий код: <img src="code.php" width="100" height="17" alt="Введите код" border="0"><input name="code" style="width:332; height:22"; size="1"> Теперь проблема такая, как сделать так что-бы при неверном вводе кода с рисунка появлялось сообщение об ошибке ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти