Fawlty Posted September 11, 2006 Report Share Posted September 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 !"; ?> Что же я сделал не так ? Link to comment Share on other sites More sharing options...
Ф@РТОВЫЙ Posted September 11, 2006 Report Share Posted September 11, 2006 вероятно у тебя в php.ini стоит register_globals=off а твой скрипт написан под register_globals=on вставь в начало mail.php следующий код: foreach($_POST as $var => $value) $$var = $value; должно помочь! Link to comment Share on other sites More sharing options...
Fawlty Posted September 11, 2006 Author Report Share Posted September 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; сразу после <? но результат тот же, приходит всё кроме данных введённых в форму. Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted September 11, 2006 Report Share Posted September 11, 2006 (edited) 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"; Тогда увидишь, определились ли у тебя переменные. Edited September 11, 2006 by Alexander-V-Sh Link to comment Share on other sites More sharing options...
Fawlty Posted September 12, 2006 Author Report Share Posted September 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 Link to comment Share on other sites More sharing options...
Alexander-V-Sh Posted September 12, 2006 Report Share Posted September 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= Link to comment Share on other sites More sharing options...
Fawlty Posted September 12, 2006 Author Report Share Posted September 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= Форму поправил, теперь всё работает. Большое спасибо ! Link to comment Share on other sites More sharing options...
Fawlty Posted September 13, 2006 Author Report Share Posted September 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"> Теперь проблема такая, как сделать так что-бы при неверном вводе кода с рисунка появлялось сообщение об ошибке ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now