0 / 0 / 0
Регистрация: 12.09.2015
Сообщений: 7
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
CGI: Session, tt_config, header16.11.2018, 04:28. Показов 1412. Ответов 2
Метки нет (Все метки)
Народ, помогите, пожалуйста. Недавно начал изучать perl, но из-за
1. При использовании CGI и CGI::Application::Plugin::TT как правильно вывести заголовок HTML документа? Пробовал: print $q->header(-type => 'text/html', -charset => 'utf-8'); Но на cpan: Your application should *NEVER* print() to STDOUT. Using print() to send output to STDOUT (including HTTP headers) is exclusively the domain of the inherited run() method. И при таком выводе получается такая ситуация что после вывода всей страницы выводится еще один заголовок. Если удалить эту строчку - ошибка end script before the header. Как сделать правильный вывод? 2. Нужно перенести
Но нигде не могу найти инфы как это будет.
3. CGI::Application::Plugin::Session Правильно ли я понимаю что после конфигурации
Далее когда пользователь с уже записанными "куками" и файлом сессии закроет и заново откроет страницу плагин сессии запросит автоматом куки пользователя и найдет сессию именно этого пользователя. Т.е. в таком случае достаточно будет обратиться
0
|
16.11.2018, 04:28 | |
Ответы с готовыми решениями:
2
не запускаеться (CGI вместе с MySQL) под Apache: Premature end of script headers: c:/www/cgi-bin/catalog.cgi Perl + SSI = ошибка invalid CGI ref 'http://сервер/cgi-bin/view_bag.pl' in .... При попытке отправить данные формы открывается страница с сообщением: 'The requested method POST is not allowed for the URL /cgi-bin/script.cgi.' Что твориться с сессиями ? (strListingID = Session('ListingID'); strAccountID = Session('AccountID'); strActive = Session('Active'); ) |
0 / 0 / 0
Регистрация: 12.09.2015
Сообщений: 7
|
|
16.11.2018, 19:51 [ТС] | 2 |
UPD: разобрался с первым и последними пунктами.
Помогите плс со вторым.
0
|
Невнимательный
|
|||||||||||
16.11.2018, 20:40 | 3 | ||||||||||
1. использовать методы специально предоставленные используемыми модулями.
Например header_add() из CGI::Application 2. __PACKAGE__ указано потому что обычне это используется внутри модулей. Этот CGI::Application::Plugin::TT как-бы предоставляет модулям его использующим метод tt_config() Не понял почему , но почему-то там предлагается использовать our, при объявлении $TEMPLATE_OPTIONS
3. Думаю не совсем так, попробовал запустить, что-то вроде Пример использования CGI::Application::Plugin::Session Например можно код модуля разместить непосредственно в index.pl
Кликните здесь для просмотра всего текста
<!DOCTYPE html> <html> <head> <!-- meta http-equiv="Content-Type" content="text/html; charset=utf-8" / --> <title>session</title> </head> <body> <h1>Сессии</h1> [%- TRY -%] [%-INCLUDE $block-%] [%- CATCH -%] Ошибочка вышла [%- END -%] </body> </html> [%-#-----------------------------------------%] [%-BLOCK show_index_page-%] [%-#-----------------------------------------%] [%-IF addr-%] <p>[%-addr-%]</p> <form action="/" method="POST"> <input type="hidden" name="step" value="on_close_session"> <input value="Завершить сессию" type="submit"> </form> [%-ELSE-%] <p>Укажите почтовый адрес:</p> <form action="/" method="POST"> <input type="hidden" name="step" value="on_save_addr"> <textarea name="addr" cols="40" rows="3"></textarea><br> <input value="Сохранить адрес" type="submit"> </form> [%-END-%] [%-#-----------------------------------------%] [%-END-%] [%-#-----------------------------------------%] [%-BLOCK show_close_session_page-%] [%-#-----------------------------------------%] <p>Cессия завершена.</p> [%-#-----------------------------------------%] [%-END-%] // Тут у меня везде form action="/" потому-что запускал с помощью. ModPerl::PerlRun в конфигах Apache такое Код
<VirtualHost *:80> ......... DirectoryIndex index.pl AddHandler perl-script .pl PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders ..... </VirtualHost> RELATIVE тоже не помогло , не понял как можно использовать относительные пути к шаблону Добавлено через 7 минут Перед package main забыл 1;
1
|
16.11.2018, 20:40 | |
16.11.2018, 20:40 | |
Помогаю со студенческими работами здесь
3
Почему session('aaa') обнуляется при session.Abandon, а session.sessionid остается таким же ? Запуск CGI вне cgi-bin и запуск index.cgi session/session.php on line 423 / session/session.php on line 426 Ошибка 500 cgi, нужно запустить батник через cgi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
|
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
|
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
|
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
|
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
|
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
|
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
|
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
|
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
|
Как обойтись без проверки на null, чтобы избежать NullPointerException в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
|
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:void(0)"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
|
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
|