Общие > Nавигатор

Как правильно выбирать CGI скрипты

(1/3) > >>

Green Kakadu:
;) многие ищут по критерию воз-тей: мол делает что мне надо, значит рулезный скрипт, и вовсе не задумываются о его реализации.
На сайте http://perl.com появилась статья:
Finding CGI Scripts ( http://www.perl.com/pub/a/2002/01/23/cgi.html )
О том где найти скрипты, и как выбрать наилуший.
Вот некоторые рекомендации по выбору скрипта:

- используется ли в скрипте ключ -w и прагма strict?
Если да, то хорошо, значит как минимум, программер знал о существовании таковых и смог написать "корректный код", т.к. ключ и пагма strict заставляют интерпритатор Perl быть более настороженным к коду

- используется ли контроль меченных данных?
Ключ -T. Данный режим прежде всего полезен форумам, гостевым книгам, доскам объявлений, т.е. тем, где могут запостить всякую гадость, которую скрипт тупого программера может применить для каких нибудь критичных функций (верх идиотизма - разборка eval  :)  ) В общем, повышаем надежность. Такие ненадежные  данные всегда надо проверять.

- Использует ли скрипт CGI.pm
Это стандартный модуль Perl, который можно найти везде, где есть сам Перл, но некоторые умники предпочитают обрабатывать самостоятельно передаваемые данные... что чревато ошибками и защищенностью скрипта.

- Как часто скрипт обновляется?
Если часто, значит его автор заботится, следит за своим творением и пытается его сделать лучше или хотя бы конкурентноспособным

- Тех. поддержка... она есть вообще?
Очень яркий показатель. Если есть, то имеет смысл ознакомиться с проблемами, которые одолевают пользователей скрипта.

Green Kakadu:
судя по всему вышеизложенному, хороший CGI скрипт должен как минимум выглядеть так:

#!/usr/bin/perl -Tw
use strict;
use CGI qw/:standart/;
use vars \'$global_var\';

;) остается лишь немного дописать и скрипт готов.
Давайте сделаем супер грабилку - устроим Yandex на дому.

#!/usr/bin/perl -Tw
use strict;
use LWP::Simple;
use vars \'$url\', \'$html\';
$url=\'http://yandex.ru\';
$html=head($url);#Проверим, жив ли сайт
if ($html){
 $html=get($url);
}
else {$html=\'Яндекс Умер!\'}
$|++;
print "Content-type: text/html\\n\\n";
print $html;

Во, создан супер скрипт проверки Яндекса на живучесть.

:
Ага и занимать он будет как твой код + CGI.pm т.е. где-то 500 байт + 300 кбайт. Мда. Большое удовольствие интерпритатору интерпритировать всё это...

Chs:

--- Цитировать ---
Ага и занимать он будет как твой код + CGI.pm т.е. где-то 500 байт + 300 кбайт. Мда. Большое удовольствие интерпритатору интерпритировать всё это...

--- Конец цитаты ---

Ну да, лучше изобрести велосипед и сделать разбор параметров и большую часть функций CGI самому, влепив пару-тройку ошибок, сделав только метод гет, потом добавить пост, когда он понадобиться, помучиться с разбором multipart/form-data...:) В процессе использования своих функций наткнуться на ошибки.:)
Для приобретения навыков программирования это конечно полезно.:)
Кстати про експорт только части функций модуля может слышали? Тогда и интерпретатор "получит удовольствие"...:)

:
а про CGI::Lite не слышали, что ли?

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии