Знатоки, помогите. Я просто другу помогаю безвозмездно. Раньше форма обратной связи работала как часы на других сайтах, пару лет не занимался этим вообще. Сейчас потребовалась форма и она тупит из за обновления пхп на 5.6. Что за дурацкая привычка обновлять если простые функции перестают работать, меня и старый пхп устраивал на 100%? ----- Форма отправки Код (PHP): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>ssss</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> body<form method=post action="feedback.php"> Ваше имя:<br><input type=text name="Name" size=35 maxlength="40"><br><br> Ваш E-Mail:<br><input type=text name="EMail" size=35 maxlength="60"><br><br> Ваше сообщение:<br><textarea name="Message" rows=7 cols=50></textarea><br><input name="submit" type=submit value="Отправить сообщение"></form><body> </body> </html> -----Код обработчика инфы с формы <?php $SendFrom = "www.mysite.info <contact@mysite.info>"; $SendTo = "myemail@mail.ru"; $SubjectLine = "www.mysite.info"; $ThanksURL = "thanks.html"; $Thanks = "thank.html"; $word1 = "http"; $word2 = "www"; // Build Message Body from Web Form Input if (strpos($Message, $word1) !== false) { header("Location: $Thanks"); } else { if (strpos($Message, $word2) !== false) { header("Location: $Thanks"); } else { if ($Name=='' or $EMail=='' or $Message=='') { echo 'ERROR'; exit; } else { foreach ($_POST as $Field=>$Value) $MsgBody .= "\n$Field: $Value\n"; $MsgBody .= "\n\n\n\n" . @gethostbyaddr($_SERVER["REMOTE_ADDR"]) . "\n" . $_SERVER["HTTP_USER_AGENT"]; $MsgBody = htmlspecialchars($MsgBody, ENT_NOQUOTES); //make safe mail($SendTo, $SubjectLine, $MsgBody, "From: $SendFrom"); header("Location: $ThanksURL"); } } } ?> ----- Я не спец в пхп но данный код работал как часы годами пока пхп не поменяли. Спасибо заранее. PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Начале сервер брешет на 3 строчки там где "IF" Убираю "IF" начинает брехать на все остальное. Сервер вроде на Windows стоит, дурь сплошная. Голова распухла. Раньше подобная хрень заняла бы у меня 30 секунд.
Откуда у вас берется переменная $Message в первом условии? И перед тем, как конкатенировать, нужно переменную $MsgBody так же объявить
$Message естественно приходит из передающей формы. Я говорю что форма работала как часы годами на нескольких сайтах. Завтра выложу поподробней вместе с репорт ошибками с сервера. 3й день мудохаюсь с этой фигней. Вы видите у меня грубые ошибки для пхп 5.6? Примитивщина да. Но все должно работать.
Это совершенно не естественно, если что. Может вы не показали и где-то выше есть что-то вроде этого? Код (PHP): $Message = $_POST['Message'];
Нет, чувак. Она ниоткуда не приходит — о чём тебе и толкуют. Может быть до апгрейда приходило, т.к. был включен сраный register_globals. А теперь это гумно запретили и надо явно писать $_POST или $_GET.
Уже не помню где их писать. Кстати вот как сервер брешет. PHP Notice: Undefined variable: text in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 8 PHP Notice: Undefined variable: fio in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 8 PHP Notice: Undefined variable: tel in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 8 PHP Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 8 Добавлено спустя 1 минуту 19 секунд: Я кстати форму там вверху добавил.
И хакеров тоже устраивало, что они могут подсунуть скрипту любую туфту не напрягаясь. Специально краулят интернеты чтобы нащупать таких как ты и собрать себе армию ботнетов. Добавлено спустя 1 минуту 36 секунд: Пользуйся ббкодом [code] чтобы мы глаза не ломали об твой текст.
PHP изменился. Я понятия не имею что там не так. Эти строчки начинаются с IF. Нахрена мне их долбанные обновления? Плиз помогите. PHP Notice: Undefined variable: Message in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 11 PHP Notice: Undefined variable: Message in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 17 PHP Notice: Undefined variable: Name in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 23 Добавлено спустя 6 минут 26 секунд: Для начала вот PHP Notice: Undefined variable: Message in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 11 PHP Notice: Undefined variable: Message in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 17 PHP Notice: Undefined variable: Name in \\HP3-WINC2-SMB2.HOSTINGP3.LOCAL\DOMAINSY\991\23991\user\htdocs\feedback.php on line 23 Код обработчика вверху. Все 3 строчки начинаются с IF. Может сейчас переменные в пхп по другому прописывают? Долбанный 5.6!!! Добавлено спустя 7 минут 7 секунд:
долбанны те кто использует софт старый как говно мамонта. все модификации между минорными релизами проходили постепенно много лет. надо было держать софт в актуальном состоянии а не с горящей жопой носится по форумам когда наконец петух клюнул. кстати пхп 5.6 где-то в марте следующего года завершает жизненный цикл. вот те новость да? ты еще даже не заимел поддержки этой версии а она уже тоже почти часть истории. короче учи программирование и переписывай софт или найми профи на рефакторинг.
Согласен, он мне просто не требовался. Работал и работал. Я просто не понимаю зачем удобные функции убивать полностью? 2*2=4. А форму я найду в течении нескольких дней, может на чем другом. Нахрен нужен пхп если он меняется постоянно?
не "меняется постоянно" а развивается. в рамках перехода от одной минорной версии к другой никаких проблем нет. а тут прыжок в десятилетие наверное. никто кроме вас не виноват что сейчас все сыпется ошибками и не работает. это как сейчас использовать голубиную почту и жаловаться на то что сраные грузовые самолеты сбивают ваши послания. развивайтесь. Добавлено спустя 4 минуты 35 секунд: и представляешь, уважаемый тс, эту функциональность сначала пометили как небезопасную - 30 июня 2009 года, а потом удалили - 01 марта 2012 года. сегодня знаешь какая дата? так что не надо истерить. тебе дали бесплатно мощный инструмент и заботятся о его развитии и безопасности. а тебя не устраивает что тебе не дают побыть тем самым говном мамонта.
Ошибки посыпались когда пхп начал делать обновления. По Вашему пхп каждый год нужно заново изучать и "развиваться"? Лично я занят этим заниматься. Если Вы такой умный, дайте ответ где у меня пхп тупит, если способны конечно. А больше он мне не требуется абсолютно нигде. Добавлено спустя 1 минуту 18 секунд: Да рад бы это сделать, серверы гады обновляют.
вам уже дали ответ и что именно перестало работать и как это вылечить. не хотите каждый год читать мануалы и развивать свою софтину - заказывайте её обновление у человека который развивается и следит. в чем проблема? вот этой надуманной проблемы я сейчас вообще не понял.
Добавьте, что-ли, первой строкой обрабатывающего скрипта Код (Text): extract($_REQUEST); Будет почти такое же поведение, как с register globals, только безопасней.
Админ, не злись на меня плиз, я же в разделе для новичков. Вроде и юзаю $_POST. Добавлено спустя 4 минуты 13 секунд: Огроменное СПАСИБО mkramer! Поставил и куча ошибок исчезла Осталась пара штук, решу уж как нибудь Побольше бы таких как Вы, а то всякие любят заниматься пустой писаниной. СПАСИБО. Добавляю. Форма заработала и шлет сообщения Брешет только пока на одну ошибку - разберусь и найду причину. Брешет на строчку: foreach ($_POST as $Field=>$Value) $MsgBody .= "\n$Field: $Value\n";