Народ у меня вот какая проблема. На моем сайте была форма с вопросником, с которой посетители легко могли задать вопрос, и он приходил мне на мыло. Но с недавнего времени форма перестала работать(стали приходить пустые письма), так как хостинг перешел на php 5(по крайней мере эту причину мне сказали на хостинге), а мой вопросник типа в php 4. Народ подскажите как должен выглядеть этот вопросник в 5 версии. Сама форма: <form action="/mail-processing.php" method="post" target="_blank"> <table width="78%" height="307" align="center"> <tr> <td align=right bgcolor="#FEFEFE"> <div align="center"><span class="style16 style32 style34">Ваше имя</span><font size="1" face="Verdana,Arial"></font><font size="1" face="Verdana,Arial"><br> <input name="name" size=15 value=""> </font></div></td> </tr> <tr> <td align=right bgcolor="#FEFEFE"> <div align="center"><span class="style16 style32 style34">Ваш E-mail </span><font size="1" face="Verdana,Arial"></font><font size="1" face="Verdana,Arial"><br> <input name="subject" size=15 value=""> </font></div></td> </tr> <tr> <td align=right bgcolor="#FEFEFE"><div align="center"><span class="style16"><span class="style30 style34">Текст письма</span> </span><font face="Verdana,Arial" size="1"></font><font face="Verdana,Arial" size="1"><br> <textarea name="email" rows="7" cols="25"> </textarea> </font></div></td> </tr> <td bgcolor="#FEFEFE"><div align="center"></div> <div align="center"> <font size="1" face="Verdana,Arial"> <input name="submit" type="submit" value="ОТПРАВИТЬ"> </font></div></td> </tr> </table> </form> Файл mail-processing.php: <? $SiteName = "www.sait.ru"; $EndMsg = "THANKS $name ,The mail has been sent "; $to = "pochta@inbox.ru"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> FloorBoard </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD> <BODY BGCOLOR="#FFFFFF" text="#000000"> <center> <table width="100%" bgcolor="black" cellspacing=0 cellpadding=0 valign=center border=0><tr><td bgcolor="#FFFFFF"><font color="#FF0000"> <center> <font face="Arial, Helvetica, sans-serif" size="2"><B>??????? ??????? ! <br> ???? ?????? ?????????? </B></font></font></td> </tr></table> <CENTER> <BR><BR> <? echo "$EndMsg"; ?> </CENTER> <? mail("$to", "$subject", $email, "From: $name"); ?> </center> </BODY> </HTML> Заранее очень благодарен.
Gribnoy 1. Форматируйте свой ответ тегами [ php ][/ php], [ html ] [/ html ] 2. Вместо mail ($to, $subject... нужно для начала объявить эти самые $to, $subject. $to = $_POST['to']; $subject = $_POST['subject']; В POST придут все данные из формы, если в качестве method указан POST. Если GET - то данные будут в $_GET массиве. +Sten+ Имхо, все переменные должны быть локальными. + надо юзать суперглобальные массивы. Кстати, в РНР6 вроде уже не будет работать такое, нет?
Уважаемый Elkaz не могли бы вы предоставить уже изменненый скрипт, а то я честно говоря навичок в php(мало что понимаю)-если конечно Вам не сложно, заранее спасибо.
Gribnoy Честно говоря, не хотел бы. Т.к это вам только навредит. Т.к будете привыкать, что все сделают для вас. Попробуйте изменить сами, если опять не получится - помогу. Только покажите как вы исправляли. Мне не сложно, но для вашего же блага.
ОК <? $SiteName = "www.sait.ru"; $EndMsg = "THANKS $name ,The mail has been sent "; $to = "pochta@inbox.ru"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> FloorBoard </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD> <BODY BGCOLOR="#FFFFFF" text="#000000"> <center> <table width="100%" bgcolor="black" cellspacing=0 cellpadding=0 valign=center border=0><tr><td bgcolor="#FFFFFF"><font color="#FF0000"> <center> <font face="Arial, Helvetica, sans-serif" size="2"><B>??????? ??????? ! <br> ???? ?????? ?????????? </B></font></font></td> </tr></table> <CENTER> <BR><BR> <? echo "$EndMsg"; ?> </CENTER> <? $to = $_POST['to']; $subject = $_POST['subject']; mail("$to", "$subject", $email, "From: $name"); ?> ТАК?
<? $SiteName = "www.sait.ru"; $EndMsg = "THANKS $name ,The mail has been sent "; $to = "pochta@inbox.ru"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> FloorBoard </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD> <BODY BGCOLOR="#FFFFFF" text="#000000"> <center> <table width="100%" bgcolor="black" cellspacing=0 cellpadding=0 valign=center border=0><tr><td bgcolor="#FFFFFF"><font color="#FF0000"> <center> <font face="Arial, Helvetica, sans-serif" size="2"><B>??????? ??????? ! <br> ???? ?????? ?????????? </B></font></font></td> </tr></table> <CENTER> <BR><BR> <? echo "$EndMsg"; ?> </CENTER> <? $to = $_POST['to']; $subject = $_POST['subject']; $email = $_POST['email']; $name = $_POST['name']; mail("$to", "$subject", $email, "From: $name"); ?> Вот так? И что теперь должно в 5 версии работать(мои скрипты отлично работали в 4-ой)?
Gribnoy Проверьте, должно работать. Это зависит не от версии. Просто где стояла РНР4 у вас стоял register_globals = on. А на хостинге (РНР5) он отключен. Если его включить - будет работать. Но повторюсь - это не правильно.
ЭТО КАК? Вот письмо от хостинга Здравствуйте, уважаемый клиент БизХост. В данном уведомлении содержится информация о переходе на пятую версию php. Пожалуйста, ознакомьтесь внимательно с этим сообщением, если Вы используете php на своем сайте. В связи с тем, что через полтора месяца (в конце 2007 года) разработчики пхп (www.php.net) прекращают поддержку четвертой ветки php, принято решение о переводе всех серверов на использование пятой ветки и полном отказе от четвертой. Оставлять на серверах неподдерживаемое разработчиками ПО невозможно, по причине его небезопасности. Этот переход также неизбежен для всех хостинг-провайдеров, как в свое время был неизбежен переход с третьей версии на четвертую. Однако этот переход делается не только в целях безопасности, но я для повышения производительности. В PHP5 использует ZendEngine 2.0, что дает ощутимый прирост в скорости выполнения большинства скриптов. Одновременно с переходом на PHP5 планируется и перевод работы php в режим модуля apache в безопасной конфигурации (директиву safe mod это не затронет). На серверах, на которых установлена FreeBSD 5.4 будет сделан апгрейд до версии 6.2 или 6.3. По нашим предварительным подсчетам и тестам на одном из серверов, выигрыш в производительности достигнет до 40%, а в ряде приложений и больше. Переход будет делаться постепенно и будут высылаться дополнительные уведомления. Что необходимо предпринять? В подавляющем большинстве случаев, никаких дополнительных изменений в конфигурацию Вашего ПО вносить не потребуется и все сразу заработает. Некоторые клиенты уже сейчас используют php5 в режиме cgi. А на двух VIP-серверах мы уже сделали это внедрение и ни одному из клиентов этих серверов не пришлось вносить изменения в скрипты. Вы можете прямо сейчас протестировать, как Ваш сайт будет работать на пятом php. Для этого создайте в корне сайта .htaccess со строкой: AddHandler x-httpd-php5cgi .php .inc Дополнительную информацию Вы можете получить по ссылке http://www.bizhost.ru/?action=faq&faq_quest=55 и в службе поддержки. Если после проверки у Вас что-то не заработало… Во-первых, убедитесь, что все нужные Вам модули присутствуют в установленной версии php. Если нет, то обратитесь к нам и мы добавим их. Во-вторых, вспомните, не настраивали ли Вам индивидуальный php.ini для четвертой версии. Если да, то обратитесь к нам, чтобы мы сделали соответствующие настройки для пятой версии. После этого стоит снова проверить работу сайта на php5. Если снова что-то не работает… Если Вы используете платный или бесплатный продукт стороннего разработчика, то поинтересуйтесь, нет ли у него скрипта перехода на php5. Так как php4 скоро не будет поддерживаться, то все производители должны уже придумать подобные скрипты перехода. Если Вы самостоятельно разрабатывали скрипты, то учтите некоторые особенности php5, которые описаны на странице http://www.bizhost.ru/instruct/php4to5.php и внесите соответствующие изменения. Вы также всегда можете ознакомиться с информацией на сайте http://www.php.net/ или обратиться с вопросами к нам. Настроив работу Вашего сайта на PHP5 уже сейчас (пока есть возможность откатываться на PHP4 простой сменой строки в .htaccess), Вы обеспечите бесперебойную работу сайта в будущем, когда PHP4 будет деинсталлирован. Кроме того, уже сейчас Вы получите выигрыш в производительности, перейдя на PHP5.
сразу ещё вопрос, как это сделать и что это значит? По умолчанию файлы с расширениями .htm и .html не обрабатываются PHP и директивы PHP в них не интерпретируются. По умолчанию PHP работает в файлах с расширениями .php, .php3, php4, .php5, .phtml. Однако если Вам хочется, чтобы директивы PHP обрабатывались в файлах .html и .htm - то необходимо создать файл .htaccess (с точкой в начале). Действие этого файла будет распространятся на текущую и на все расположенные ниже директориии. Файл .htaccess должен содержать строку вида: AddHandler x-httpd-php .html .htm
Мда. Это вам не мастерхост. Который за неделю до перехода прислал письмо из пары строчек - типа "мы тут вас на 5 php переводим. Теперь это ваши проблемы". И пипец. Ты определись - либо ты изучаешь php и тогда читай то, что тебе говорят, либо тебе надо решить проблему и не заморачиваться всяким php - тогда иди в тему "freelance" и давай там объяву. И не забудь назвать цену. Что такое register_globals - тебе сразу ответили, первый же человек.