Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl с самого начала, Perl для начинающих 
V
    Опции темы
vladeimirami
Дата 6.10.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2010

Репутация: нет
Всего: нет



Уважаемые господа профессионалы Web-програмисты помогите неучу! Дело в том, что написал учебную программку: 


#!/usr/bin/perl -w 
# Выводим все сообщения об ошибках 
# в окно браузера 
use CGI::Carp qw(fatalsToBrowser); 
print "Content-type: text/html\n\n"; 

print "<html>"; 
print "<head>"; 
print "<title>Первая программа</title>"; 
print "</head>"; 
print "<body>"; 
print "Привет всем!"; 
print "</body>"; 
print "</html>"; 

далее самое главное 
1. не знаю как назвать ее (index.pl, test.pl и т.д..?????) ? 
2. куда "залить" ее чтобы работала как index.html ?
PM MAIL   Вверх
Jimy
Дата 6.10.2010, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Цитата(vladeimirami @  6.10.2010,  20:39 Найти цитируемый пост)
1. не знаю как назвать ее (index.pl, test.pl и т.д..?????) ?  

Не имеет значения.

Цитата(vladeimirami @  6.10.2010,  20:39 Найти цитируемый пост)
2. куда "залить" ее чтобы работала как index.html ? 

Что Вы подразумеваете под "работать как index.html"?
PM   Вверх
vladeimirami
Дата 6.10.2010, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2010

Репутация: нет
Всего: нет



Что я подразумеваю под цитатой "работать как index.html"?

К примеру у меня есть сайтик по адресу http://ermlenkvladimir.narod.ru/
если я данный адрес набираю в браузере, то я сразу перехожу по этому адресу к файлу index.html.
Так вот я бы хотел знать куда можно расположить файл ??????.pl, что бы при наборе адреса
я сразу переходил бы к файлу ??????.pl (без указания полного адреса http://ermlenkvladimir.narod.ru/cgi-bin/??????.pl (в данном примере адреса я не имею ввиду сайт на народе))?
PM MAIL   Вверх
Jimy
Дата 6.10.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Предположим, что у Вас веб-сервер - apache.
Я бы воспользовался для этих целей модулем mod_rewrite, который позволяет создавать правила обработки запроса. Т.о. можно любой запрос перенаправить куда угодно и соответственно не имеет значения где лежит скрипт.

А вообще реализация зависит от конкретной цели.
Самый простой вариант: создать в каталоге файл .htaccess и в нем задать параметр DirectoryIndex с указанием пути к скрипту (скрипт опять же при этом может находится в cgi-bin).
PM   Вверх
vladeimirami
Дата 6.10.2010, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2010

Репутация: нет
Всего: нет



Jimy, мне еще не все понятно, но я понял в каком направлении нужно еще порыть! Огромное спасибо за подсказку. Помощь отличная! СПАСИБО!

Добавлено через 7 минут и 12 секунд
Jimy!!!! Суппер!!!!! Все получилось! УРА!!!!! Еще раз СПАСИБО!

Добавлено через 8 минут и 42 секунды
Что дальше делать с этой темой? Закрыть?
PM MAIL   Вверх
vladeimirami
Дата 6.10.2010, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2010

Репутация: нет
Всего: нет



Прописал в файле .htaccess - DirectoryIndex cgi-bin/index.pl и все пошло! Спасибо!
PM MAIL   Вверх
Jimy
Дата 7.10.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Да, тему стоит закрыть.
Рад был помочь.  smile 
PM   Вверх
Pollucs
Дата 10.2.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Изучаю Perl совсем недавно, вот наткнулся на ошибку, не могу понять где и что. Код следующий:

Код

#!/usr/bin/perl -w
use CGI qw/:standard/;
use CGI::Carp 'fatalsToBrowser';
print "Content-type: text/html\n\n";
$cfg{config_file}= "C:/WebServers/home/perlbook.ru/cgi-bin/shop/myshop.cfg";
&ChtenConfig;


 sub ChtenConfig{
    local (@var_value_pairs, $var_value_pair, $var, $value, $temp);
    open(CFG, "$cfg{config_file}");
    while(<CFG>){
       chop;
       $temp = $_;
       $temp =~ s/^[ |\t]*//;
       $temp =~ s/[ |\t]*$//;

       if (!((m/^[ |\t]*.*/) || (m/^[ |\t]*$))) {
          push(@var_value_pairs, $_);
       }
    }
    close(CFG);
    foreach $var_value_pair(@var_value_pairs){
         ($var, $value) = split(/=/, $var_value_pair);
           $var =~ tr/[A-Z]/[a-z]/;
           $cfg{$var} = $value;
    }
}



Ошибку пишет такую:
<pre>Can't modify pattern match (m//) in scalar assignment at test.cgi line 25, near &quot;$var =~ tr/[&quot;
  (Might be a runaway multi-line // string starting on line 24)
syntax error at test.cgi line 25, near &quot;$var =~ tr/[&quot;

Подскажите пожалуйста, где и в чём я не прав? Заранее прошу, не бейте сильно, я лишь начинаю.. smile 
И ещё подскажите пожалуйста, где можно найти описания всех ошибок, так будет проще разбирать код.. Заранее спасибо.
PM MAIL   Вверх
sir_nuf_nuf
Дата 11.2.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



У вас в строке 18 не закрыт второй m// .  Скорее всего в этом трабл.
Пишите такие вопросы в отдельный тред


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Pollucs
Дата 11.2.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



спасибо! проблема и правда была в этом! не совсем понял куда стоит по таким вопросам обращаться..
PM MAIL   Вверх
Pollucs
Дата 21.2.2011, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Доброго времени суток! Такой вопрос: можно ли пошагово проследить за выполнением cgi-скрипта? Как это можно сделать? Может программу какую посоветуете? Довольно трудно понять, в каком месте его выполнение прерывается. Буду очень признателен за помощь.
PM MAIL   Вверх
sir_nuf_nuf
Дата 21.2.2011, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



Можно. С помощью отладчика perl
Код

perl -d my-script.cgi a=3&b=7

Но проверять можно только запуская скрипт из консоли, когда скрипт запускается веб-сервером - нельзя


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Pollucs
Дата 21.2.2011, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Спасибо, получил ответ, но что получил - не знаю, справка может есть по таким ответам где-нибудь?..

Добавлено через 3 минуты и 22 секунды
А в редакторах Perl (DzSoft.Perl.Editor например) такую проверку никак нельзя осуществить?
PM MAIL   Вверх
sir_nuf_nuf
Дата 21.2.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



Нет, справки нету.
Разберитесь что такое CGI скрипты.
Это просто программы, которые печатают html.
При запуске из веб-сервера - html попадает в браузер.
При запуске из консоли - html попадает в консоль.


Разберитесь как запускать отдельные perl скрипты.

Разберитесь с отладчиком: 
http://perldoc.perl.org/perldebug.html


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Pollucs
Дата 21.2.2011, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Спасибо! Буду разбираться, правда инструкцию буду искать на русском.
PM MAIL   Вверх
Pollucs
Дата 22.2.2011, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Утро доброе! В этом фрагменте скрипта должна создаваться новая корзина:

Код

sub Assign_Basket_Number {
    local ($basket_no);
    open(FILES, "Is $cfg{base_path}$cfg{basket_path}|") ||
         die "Content-type:text/html\n\n Невозможно найти текущую корзину!";
    while (<FILES>) {
          chop;
          unlink "$cfg{base_path}$cfg{basket_path}$_" unless -M
          "$cfg{base_path}$cfg{basket_path}$_" < 1;
    }    # Удаление корзин, существующих более 24 часов
    close(FILES);

    srand(timel$$);
    $basket_no = time . "." . int(rand(999));
    open(BASKET, ">$cfg{base_path}$cfg{basket_path}basket_no") ||
         die "Content-type: text/html\n\n Невозможно создать новую корзину";
    close(BASKET);
    return $basket_no;
}


однако ругается на строку с "srand(timel$$);", что не так? Спасибо.
PM MAIL   Вверх
sir_nuf_nuf
Дата 22.2.2011, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 2
Всего: 31



Цитата(Pollucs @  22.2.2011,  11:52 Найти цитируемый пост)
однако ругается на строку с "srand(timel$$);", что не так? Спасибо. 

Почитайте, что написано в ругани. Там обычно описание ошибки )


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Pollucs
Дата 22.2.2011, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Читал, вот она:
Can't call method "timel" without a package or object reference at Z:/home/perlbook.ru/cgi-bin/main.cgi line 272.
PM MAIL   Вверх
alezzz
Дата 22.2.2011, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 2
Всего: 14



http://perldoc.perl.org/functions/srand.html

там написано time ^ $$, в вашем случае похоже на time | $$ (вместо верт. черты у вас буква L маленькая)
PM MAIL   Вверх
Pollucs
Дата 22.2.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



alezzz  Спасибо. Ввёл в заблуждение материал курсов, в котором много ошибок. Уже жалею, что начал их, но закончить надо..
PM MAIL   Вверх
Pollucs
Дата 24.2.2011, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



И вновь в тупике.. Вот фрагмент кода:
Код

 print "<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" ALIGN=\"center\">\n";

   # LOGO
    $_ = $cfg{m_logo};
    if (m/.*YES.*/i) {
       print "<TR VALIGN=\"top\"><TD>
             <a href=\"$cfg{script}?action=display&page=intro\"target=\"Right\">
             <img src=\"$cfg{home}$cfg{graph_path}$cfg{logo_menu}\" border=\"0\" alt=\"СЕРДЕЧНО ПРИВЕТСТВУЕМ\"></a></TD></TR>\n";

    }

   # О ФИРМЕ
    $_ = $cfg{m_about};
    if (m/.*YES.*/i) {
       print "<TR valign=\"top\"><TD>
             <a href=\"$cfg{script}?action=display&page=about\" target=\"Right\">
             <img src=\"$cfg{home}$cfg{graph_path}$cfg{about_button_1}\" border=\"0\" alt=\"О ФИРМЕ\"></a></TD></TR>\n";
    }


есть ссылки, но не работают. Проблема в том, что не могу понять, на что они ссылаются. В материале курса код дан, а что к чему - не понятно.. Может подскажете где найти материал по представлению HTML средствами Perl? 
И ещё, почему то не отображаются картинки (настройки в браузере включены, $cfg - файл конфигурации, с ним и работаю, картинки не отображаются и в случае, если задаю к ним путь прямой без файла $cfg)
Помогите, хоть какие-нибудь мысли, а то уж начинаю отчаиваться совсем, закончу ли начатое..
PM MAIL   Вверх
ming
Дата 28.2.2011, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 30.1.2009
Где: Новосибирск

Репутация: нет
Всего: 3



Цитата
И ещё, почему то не отображаются картинки (настройки в браузере включены, $cfg - файл конфигурации, с ним и работаю, картинки не отображаются и в случае, если задаю к ним путь прямой без файла $cfg)

покажите результирующий HTML  что ли
PM MAIL ICQ Jabber   Вверх
Pollucs
Дата 28.2.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Отображены ссылки, расположенные в сверху и в центре страницы, но фона этих ссылок (т.е. картинок) нет, они тоже должны являться сылками.. Их там не две, гораздо больше, я лишь фрагмент отобразил...
PM MAIL   Вверх
Pollucs
Дата 28.2.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.2.2011

Репутация: нет
Всего: нет



Отображены ссылки, расположенные в сверху и в центре страницы, но фона этих ссылок (т.е. картинок) нет, они тоже должны являться сылками.. Их там не две, гораздо больше, я лишь фрагмент отобразил...
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.1016 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.