Вот я и говорю, никого не надо принуждать, хочешь критики покажи своё творение Именно так, я даже более скажу, не в кнопке дело и не в баллах, дело в том чтоб баллы ставили люди способные адекватно оценить скрипт (чтоб таким скриптам как phpBook кнопку не давали просто потому что спят с блондинкой которая его написала)
Подниму ка тему Наткнулся на несколько скрптов написанных нашими индийскими коллегами (хотя я бы их скорее назвал калеками) http://www.hscripts.com/scripts/php/index.php это ваще надо наверное в юмор кидать Например скрипт отправки мыла... PHP: <?php /* recipients */ $to1 = $_POST['to']; /* message */ $name1 = $_POST['name']; $from1 = $_POST['from']; $website1 = $_POST['website']; $feedback1= $_POST['feedback']; $feedback1= str_replace("\\\\","",$feedback1); $feedback1= str_replace("\'","'",$feedback1); $feedback1= str_replace("\\\"","\"",$feedback1); $message1 = "NAME :".$name1."\r\n"; $message1 .= "MAIL :".$from1."\r\n"; $message1 .= "WEB :".$website1."\r\n"; $message1 .= "Message :".$feedback1."\r\n"; $subject1 = "Mail from $name1"; /* To send HTML mail, you can set the Content-type header. */ $headers1 = "MIME-Version: 1.0\r\n"; $headers1 .= "Content-type: text/html; charset=iso-8859-1\r\n"; /* additional headers */ $headers1 .= "To: ".$to1."\r\n"; $headers1 .= "From: ".$from1."\r\n"; $headers1 .= "Reply-To: ".$from1."\r\n"; $headers1 .= "Cc: \r\n"; /*echo($to1."<br>"); echo($subject1."<br>"); echo($message1."<br>"); echo($headers1."<br>"); */ /* and now mail it */ if(@mail($to1, $subject1, $message1, $headers1)) { echo("<table aligh=left><tr><td><font color=$FONTCOLOR>"); echo("Dear $name1,<br>"); echo("<br>"); echo("<b> We welcome </b> your Message<br>"); echo("<br>"); echo("Your Message has been sent successfuly.<br>"); echo("Our team will get back to you."); echo("<br>"); echo("<br>"); echo("Regards,<br>"); echo("Support Team.<br>"); echo("<br>"); echo("</font></td></tr></table>"); } else { echo("<br><br><br><br><br>"); echo("Sorry unable to sent the Message.<br>"); echo("<br><br><br><br><br>"); } ?> Догадайтесь с трёх раз есть туд дыры или нет
Практически готовый скрипт для рассылки спама, всё что осталось это найти сайты на которых стоит этот скрипт
Ещё один "шедевр" Open-сорца PHP: <?php $f = fopen('counter.txt', 'a'); fwrite($f, '.'); fclose($f); echo filesize('counter.txt') . ' visits'; ?> Created by Ivan Peevski (cyberhorse at sourceforge)
Предлагаю на критическую оценку вот такой код: PHP: <?php function privileges(){ global $CCSIS_NS; main_init(); CCSIS::get_message('ERR193 ERR194 ERR195'); get_sys_mess('M5 M8 M54 M55 M56 M57 M58 M59 M60 E2 I10 I11'); if(CCSIS::input('_GET','rid')){ $iRid = intval(CCSIS::input('_GET','rid')); }else if(CCSIS::input('_POST','rid')){ $iRid = intval(CCSIS::input('_POST','rid')); }else{ $iRid = 1 + $CCSIS_NS->db->getOne("SELECT MAX(priv_id) FROM `".$CCSIS_NS->CNF['TAB_PREF']."_system_privileges`"); } $sDescription = $CCSIS_NS->db->safe_getOne("SELECT priv_desc FROM `%1\$s_system_privileges` WHERE priv_id = '%2\$d'",$CCSIS_NS->CNF['TAB_PREF'],$iRid); if(CCSIS::input('_POST','rule_desc')){ $sDescription = htmlspecialchars(CCSIS::input('_POST','rule_desc')); if(!check_form_id(1)){ $rule = new EditTabManager(); if($rule->get_thread()){ if($CCSIS_NS->db->safe_getOne("SELECT priv_id FROM `%1\$s_system_privileges` WHERE priv_id = '%2\$d'",$CCSIS_NS->CNF['TAB_PREF'],$iRid)){ $CCSIS_NS->db->safe_query("UPDATE `%1\$s_system_privileges` SET priv_desc = '%2\$s' WHERE priv_id = '%3\$d'",$CCSIS_NS->CNF['TAB_PREF'],$sDescription,$iRid); $CCSIS_NS->oSystem->add_mess(sprintf($CCSIS_NS->aLang['I10'],$iRid,$sDescription)); }else{ $CCSIS_NS->db->safe_query("INSERT INTO `%1\$s_system_privileges` (priv_id,priv_desc)VALUES('%2\$d','%3\$s')",$CCSIS_NS->CNF['TAB_PREF'],$iRid,$sDescription); $CCSIS_NS->oSystem->add_mess(sprintf($CCSIS_NS->aLang['I11'],$iRid,$sDescription)); } $rule->unlock(); } }else{ $CCSIS_NS->oSystem->addError($CCSIS_NS->aLang['E2']); } } $sForm_id = CCSIS::get_registered_fid(16); $oForm = new Form($CCSIS_NS->aLang['M54'],'index.php',40,60); $oForm->input_hidden("form_id",$sForm_id); $oForm->input_hidden("action",$CCSIS_NS->action); $oForm->input_hidden("rid",$iRid); if(!empty($sDescription)){ $submit_mess = $CCSIS_NS->aLang['M5']; $oForm->url_block($CCSIS_NS->aLang['M55'],$CCSIS_NS->aLang['M56'],'index.php?action='.$CCSIS_NS->action,$CCSIS_NS->CNF[90],1,0); }else{ $submit_mess = $CCSIS_NS->aLang['M8']; } $oForm->textarea($CCSIS_NS->aLang['M57'],'rule_desc',$sDescription,$CCSIS_NS->CNF[90],3); $oForm->input_submit($submit_mess,$CCSIS_NS->CNF[86]); $oTable = new Table_constructor($CCSIS_NS->aLang['M58']); $oTable->add_column($CCSIS_NS->aLang['M59'],'10%',CCSIS_CENTER); $oTable->add_column($CCSIS_NS->aLang['M60'],'90%'); $SQL = "SELECT priv_id,priv_desc FROM `".$CCSIS_NS->CNF['TAB_PREF']."_system_privileges` ORDER BY priv_id"; $result = $CCSIS_NS->db->query($SQL); if($result->numRows() > 0){ while($row = $result->fetchRow()){ $oTable->row($CCSIS_NS->CNF[90],new T_url($row[0],'index.php?action='.$CCSIS_NS->action.'&rid='.$row[0]),$row[1]); } } show_page($oForm->show_form(),$oTable->show_table(),$CCSIS_NS->aLang['M58']); } ?> С ходу могу сказать, что тут нет комментариев,,, вобщем ужас.
Dagdamor, зато в этом примере можно почти любую строчку обсуждать. Начнём хотябы с того, что этот модуль объединяет вывод записей из бд, генерацию формы создания/редактирования записи и обработчик добавления / редактирования записей в базе данных. К тому-же применена спорная тактика обработки POST запроса без редиректа. Про одноразовые идентификаторы форм, конструктор безопасных SQL запросов и полную многоязычность я упоминаю лишь вскользь, как бы случайно. И всё это помещается в какието 60 строк прикладного кода.
а что, этакий «шведский нож» на php если что, то сразу понятно в какой функции ошибка. Хотя таких функций там может и много. P.S. почитал с чего начался топик. Основную обсуждаемую идею как всегда похоронили :?:
Luge, для полноценной реализации обсуждаемой идеи надо написать модуль к этому форуму. А это несколько дней продумывания, составления подробного ТЗ, день программирования, ещё пара дней на тестирование и отладку. Как я понимаю, все кто мог бы этим заняться и так достаточно занятые люди, чтобы вдруг найти неделю свободного времени.
dark-demon Господи - да почему же гиблая - наоборот, нет ничего проще. Назначается коллектив "жюри" - члены форума, которые более-менее доверяют суждениям друг друга, и которые готовы субъективно оценивать новые системы. Выбирается список критериев. Каждый член жюри оценивает систему по каждому из критериев и дает оценку от 1 до 5 (можно дробную), с хотя бы небольшим обоснованием. Результаты усредняются и выдаются за объективную оценку, все "обоснования" публикуются. Не согласен с оценкой - вступай в жюри сам, но помни, что тогда тебе придется оценивать другие системы тоже. Не согласен с идеей в целом - твое право. Главное не в том, чтобы оценка была супер пупер справедливой и объективной, а в том, чтобы она вообще была. Со временем такие оценки получат признание и будут цениться, главное - это вкладывать свое участие, а не говорить сразу, что мол "затея гиблая".
Ты забыл добавить - жюри должно быть авторитетным. и не только на этом форуме. а ещё у жюри должен быть стимул. да, скрипты на оценку 1 легко выявляются, но вот чтобы выбрать поставить 4 или 5 - нужно хорошо вникнуть как в сам скрипт, так и в решаемую им проблему а насчёт "вступай сам"... ну вступит в жюри куча ламеров - толку от такой оценки?
dark-demon Ничего подобного - авторитет не должен быть изначально, его нужно будет заслужить. Людям с других форумов и сайтов глубоко начхать, кто такой dark-demon или Dagdamor, судить о них они будут по оценкам и отзывам, а не по каким-либо другим критериям. Если "ламер" способен оценить систему по нескольким критериям и по каждому их них написать отзыв - никакой он не ламер. Вообще надо быть осторожнее, называя окружающих ламерами... это опять к вопросу об авторитете
Предвижу одну проблему, энтузиазму у народа на долго не хватит. Тут назначение авторитетов не прокатит, тут надо более сложную систему городить, которая сама, "автоматически назначает авторитетов" в зависимости от набора объективных и субъективных критериев. Я вобщем-то занимался этим, но в практической работе я этого не видел.
Вобщем понятно, отсутствие финансового стимула и свободного времени губят все проекты. Жаль. На самом деле, поначалу желающих будет довольно много, со временем число участников, конечно же, уменьшится, возможно, даже на каком-то этапе команда сменится полностью, но не будет даже этого, если просто сидеть и думать что будет в том или ином случае. Надо хотя бы начать. Бросить никогда не поздно. Ой не знаю, это сколько же людей будет... необходимость обосновывать каждую оценку либо сама отсеит, либо даст толчок изучить вопрос глубже, наконец-то разобраться в том, что не дано было понять раньше.
Совсем уж никакие скрипты "обзирать" наверное смысла нет, но это относится только к самым дешевым поделкам, сильно важничать тоже не стоит. Как отличать поделки и как принимать решение, что имеет смысл рассматривать, а что нет - я не знаю, но что-то мне подсказывает, что сейчас это не самое главное препятствие. Для начала надо решить, есть ли здесь люди, готовые поддержать идею, и с критериями надо определиться. Я готов войти в состав жюри, раз уж поднял идею кто еще готов, пишите сюда. Оценивать будем самым простым способом - для каждой разработки создается новая тема, в которую каждый из "судей" выкладывает обзор, потом подводятся итоги и начинается неизбежное их обсуждение + еще одна тема для заявок. Насчет критериев сложнее... я предлагаю учитывать такие вещи, которые важны для конечного разработчика и конечного пользователя: 1. Простота установки и начала работы с системой; 2. Оценка возможностей системы, ее ценности как разработки; 3. Внятность исходного кода, качество комментариев; 4. Оценка архитектуры системы и идей, заложенных в нее; 5. Общее впечатление от системы (сюда можно валить в кучу все остальное - объем исходников и скорость работы, обнаруженные баги и уязвимости, замечания и предложения).