форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Все таки почитав форум и поэкспериментировав пришел к выводу что php довольно трудновато интегрировать в страницы сайта текстпаттерновского. И сложлось у меня такая проблемка.
Есть стопроцентно рабочий скрипт mail.ru:
<?php $adresat = "я@сайт.ru"; //замените на свой e-mail $status = "Веб-мастер"; // замените на свой статус/должность $msg = "Спасибо, Ваше сообщение было отправлено и мы обязательно вам ответим!<br><p align=right>$status</p>"; $you = "$status. E-mail: $adresat"; if ($submit) { if(eregi("^[a-zA-Z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$email)) { if(empty($name)) echo "Введите ваше имя"; else { mail("$adresat", "Сообщение с сайта", "От: $name\nАдрес: $email\nСообщение:\n\n$message"); echo "<b>$msg<b>\n"; } } else { echo "E-mail неправильно введен или содержит недопустимые символы. Пожалуйста вернитесь и заполните все поля правильно"; } } else { ?> <form action="<? echo $PHP_SELF?>" method=POST> <table width=100%> <tr> <td align="left">Получатель: <td align="left"><b><? echo "$you";?></b></td> </tr> <tr> <td align="left">Ваше имя :</td> <td align="left"><input type=text name=name size=25></td></tr> <tr> <td align="left">Ваш e-mail: </td> <td align="left"><input type=text name=email size=25></td></tr> <tr> <td align="left">Ваше сообщение:</td> <td align="left"><textarea cols=40 rows=3 name=message></textarea></td> </tr> </table> <input name="submit" type=submit value="Отправить"> </form> <?php } // end "else" and end of this script) ?>
Интегрирую в страницу я его посредством:
<txp:php> global $prefs; include($prefs['path_to_site'].'/mail.php'); </txp:php>
И на странице появляется форма но вместе с ошибками:
Ошибка тега: <txp:php> -> Notice: Undefined variable: submit on line 16 textpattern/publish/taghandlers.php(3082) : eval()'d code:2 include() textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern() textpattern/publish/taghandlers.php(3082) : eval()'d code:2 include() textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern()" method=POST>
и если нажать отправить, то в url страницы появляется такая штука (примерно):
Ошибка тега <txp:php> notice:undefined variable: php_SELF on line 31
Очень прошу помоч разобраться в проблеме и в несовместимости
Неактивен
Попробуйте к php_self через $GLOBALS достучаться. Или используйте другой вариант вывода текущего урла.
Кстати, что значит 100% работающий? На этом же хостинге запускался? Как?
Неактивен
Да, он запускался именно на этом хостинге. С html-php странички все прекрасно работало. Через глобалс вроде достучался, но ошибка осталась вот эта:
Ошибка тега: <txp:php> -> Notice: Undefined variable: submit on line 16 textpattern/publish/taghandlers.php(3082) : eval()'d code:2 include() textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern()
Как ее можно исправить?
Неактивен
Попробуйте избавить от штсдгву и вставить скрипт напрямую в <txp:php>. Что-то странное, т.к. не вижу переменной submit.
Неактивен
если вставлять напрямую проблема опять же в строчке:
<form action="<? global $PHP_SELF; ?>" method=POST>
Я ума не приложу как этим текущим урлом разобраться
Отредактированно mister $ (16-07-2009 17:20:58)
Неактивен
mister $ написал:
если вставлять напрямую проблема опять же в строчке:
Код:
<form action="<? global $PHP_SELF; ?>" method=POST>Я ума не приложу как этим текущим урлом разобраться
Давно не внедрял код, но по-моему такая конструкция <? ....... ?> должна быть заменена на <txp:php> .... </txp:php> в обязательном порядке.
Или тогда весь код включается в <txp:php> .... </txp:php>, но весь HTML - код выводить командой php -
print ' .... ';
Отредактированно froZZen (16-07-2009 17:40:47)
Неактивен
и так попробовал. Остается все та же ошибка "Ошибка тега: <txp:php> -> Notice: Undefined variable: submit on line 16"...txp не хочет нормально этот скрипт принимать...
Неактивен
Вот то, что я вставил в страницу:
<txp:php> $adresat = "webmaster@moilekcii.ru"; $status = "Веб-мастер"; $msg = "Спасибо, Ваше сообщение было отправлено и мы обязательно вам ответим!<br><p align=right>$status</p>"; $you = "$status. E-mail: $adresat"; if ($submit) { if(eregi("^[a-zA-Z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$email)) { if(empty($name)) echo "Введите ваше имя"; else { mail("$adresat", "Сообщение с сайта", "От: $name\nАдрес: $email\nСообщение:\n\n$message"); echo "<b>$msg<b>\n"; } } else { echo "E-mail неправильно введен или содержит недопустимые символы. Пожалуйста вернитесь и заполните все поля правильно"; } } else { echo '<form action="<txp:php> $PHP_SELF; </txp:php>" method=POST> <table width=100%> <tr> <td align="left">Ваше имя :</td> <td align="left"><input type=text name=name size=25></td></tr> <tr> <td align="left">Ваш e-mail: </td> <td align="left"><input type=text name=email size=25></td></tr> <tr> <td align="left">Ваше сообщение:</td> <td align="left"><textarea cols=40 rows=3 name=message></textarea></td> </tr> </table> <input name="submit" type=submit value="Отправить"> </form>'; } </txp:php>
заходя на страницу выходит сообщние:
Ошибка тега: <txp:php> -> Notice: Undefined variable: submit on line 7 textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern()
если нажать отправить, то ничего не получается, страница просто обновляется
Отредактированно mister $ (17-07-2009 09:43:54)
Неактивен
Первое что бросилось в глаза:
строку
else { echo '<form action="<txp:php> $PHP_SELF; </txp:php>" method=POST>
замените на строку
else { print '<form action="'.$PHP_SELF.'" method=POST>
Когда появится возможность протестировать Ваш код, я его обязательно попробую. Но насколько я понимаю, это не весь код страницы, а только его часть. И нужна URL-строка, которая используется для вызова этой страницы. Иначе не видно, что за переменные ей передаются. Потому что, если ничего не передается, то слова Undefined variable: submit абсолютно справедливы.
Неактивен
Это часть страницы, которую я вставляю с помощью <txp:php> в страницу. Попробовал сделать по Вашему. Старая ошибка не пропала, добавилась новая -
Ошибка тега: <txp:php> -> Notice: Undefined variable: submit on line 7 textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern() Ошибка тега: <txp:php> -> Notice: Undefined variable: PHP_SELF on line 20 textpattern/publish/taghandlers.php:3082 eval() textpattern/publish.php:1090 php() textpattern/publish.php:1025 processTags() textpattern/publish.php:496 parse() index.php:33 textpattern()
И будьте так добры расскажите что за url строка. Вообще сама эта форма расположена по адресу http://moilekcii.ru/contact/
Неактивен
Вторая ошибка у Вас появилась в результате того, что скрипт начал видеть переменную, а не строку, как до исправления.
Сами ошибки Undefined variable связаны с тем, что эти самые переменные нигде не определены до обращения к ним.
'PHP_SELF' The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar.
В контексте Вашего скрипта назначение этой глобальной переменной мне не известно.
Если у Вас так туго с программированием, то может быть не стоило брать скрипт чужой (возможно и абсолютно рабочий, но вырванный "с мясом" из чужого кода без определения всех необходимых переменных).
Насколько я понимаю, по ссылке которую Вы дали, Вам будет необходим и достаточен zem_contact... (не помню, как точно пишется).
Да и еще. Textpattern и PHP замечательно все делят! :-)
Отредактированно froZZen (17-07-2009 15:23:20)
Неактивен
Итак, по порядку значит сейчас все расскажу. Этот скрипт я не откуда не выдирал. Взял я его из отдельного PHP-файла, который сам по себе прекрасно отправляет почту. Не спорю, я действительно с php знаком плохо и у меня с ним туго Но увы у меня нет другого выбора. Мне нужна обратная связь! А дело все началось еще недели две назад (вместе с этим постом - http://textpattern.ru/forum/viewtopic.p … 40&p=1). Я приобрел хороший хостинг. И он для меня как камень преткновения. С него стандартный txp почту не отправляет ((( С этого же домена отправляется почта посредством html-php странички и с форума моего (pubBB) тоже отпраляется, т.е. функция майл работает. А вот с самого txp никак: ни через админку, ни с помощью предложеного вами плагина, я и его уже пробовал и iqn_password...мне уважаемый знаток the_ghost пытается помоч, но пока безуспешно. На хостинге мне отвечают что проблема в скрипте txp. А здесь мне говорят, что стандартны txp при работающей функции мейл должен все отправлять.... Так что уже не знаю к кому обратиться
Неактивен
mister $ написал:
Этот скрипт я не откуда не выдирал. Взял я его из отдельного PHP-файла, который сам по себе прекрасно отправляет почту.
Извините за "выдрал" (не имел никакого желания Вас оскорбить).
Дело в том, что любой скрипт (как правило) представляет собой отдельный файл. Весь вопрос в том, КАК ЕГО НАДО ВЫЗВАТЬ. Если хотите разобраться с тем, как пристроить именно этот скрипт, то необходимо проследить всю цепочку: как вызывается, что ему передается, что в итоге он должен выдавать и т.д. На сегодняшний момент Вы фактически имеете только среднюю часть от созданной кем-то программы.
mister $ написал:
А дело все началось еще недели две назад (вместе с этим постом - http://textpattern.ru/forum/viewtopic.p … 40&p=1). С него стандартный txp почту не отправляет ((( С этого же домена отправляется почта посредством html-php странички и с форума моего (pubBB) тоже отпраляется, т.е. функция майл работает. А вот с самого txp никак: ни через админку, ни с помощью предложеного вами плагина, я и его уже пробовал и iqn_password...мне уважаемый знаток the_ghost пытается помоч, но пока безуспешно. На хостинге мне отвечают что проблема в скрипте txp. А здесь мне говорят, что стандартны txp при работающей функции мейл должен все отправлять.... Так что уже не знаю к кому обратиться
Я все же думаю, что решить надо попробовать именно эту проблему. Плюсов у этого плагина поверьте окажется гораздо больше, чем у предложенного Вами скрипта.
Но это Ваше право - выбирать, что нравится.
Могу только сказать, что при наличии свободного времени и ВСЕЙ информации о том, КАК и ГДЕ используется Ваш скрипт, я мог бы попробовать Вам помочь. Да и не я один на этом форуме.
Неактивен
Я тоже очень хочу решить проблему скрипта текстпаттерновского (не могу сказать своего, потому что не отправляет почту именно стандартная сборка текстпаттерна). И мне тоже совсем не нравится этот php встраивать... Но ведь я все что можно уже выложил о скрипте здесь: http://textpattern.ru/forum/viewtopic.p … 245#p17245 . Если что-то еще надо, я сразу выложу, только что именно. Честно, уже настолько устал две недели с этим бороться, что готов заплатить....
Отредактированно mister $ (17-07-2009 17:49:21)
Неактивен