- 1
Привет, я вот сайт пишу, каталог, на заказ, ну короче, считаю себя говнокодером. Хочу попросить более опытных что ль, оценить. Сказать так это или нет. Ссылочку на гитхаб чуть позже присобачу.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+145
Привет, я вот сайт пишу, каталог, на заказ, ну короче, считаю себя говнокодером. Хочу попросить более опытных что ль, оценить. Сказать так это или нет. Ссылочку на гитхаб чуть позже присобачу.
+158
<?
include 'const.php';
PrintUP("404");
Echo "<img src='https://lh4.googleusercontent.com/-WnF8tpKQA20/AAAAAAAAAAI/AAAAAAAAEEE/IDe9WUshb8c/s120-c/photo.jpg'>Страница не найдена. =(";
PrintDOWN();
?>
Не спрашивайте, что делают функции PrintUP() и PrintDOWN(). Первая - 600 строк пхп кода со вставками вида echo ' function() { js-код } ' ; , вторая - 140 строк с очень странными манипуляциями с файлами "базы данных".
+157
function CommentTask($replic, $depuser){
$fh1 = fopen('tasks/'.$replic['page'], "r");
$str = fgets($fh1, 4096);
$mass = explode("~", $str);
$projectpage = $mass[5].".txt";
$deppage = $mass[6];
fclose($fh1);
$olddate = "";
If (rtrim($replic['date'])<>""){
$fh1 = fopen('tasks/'.$replic['page'], "r");
$str = fgets($fh1, 4096);
$mass = explode("~", $str);
$olddate = " (Изменение даты с ".dt($mass[3])." на ".dt($replic['date']).")";
$data= $mass[0]."~".$mass[1]."~".$mass[2]."~".$replic['date']."~".$mass[4]."~".$mass[5]."~".$mass[6];//В виндовс не \n, а \r\n
$file = 'tasks/'.$replic['page'];
$array=file( $file );
$array[0]=$data;
file_put_contents($file, $array);
}
$fh =fopen('tasks/'.$replic['page'],"a");
fwrite ($fh, "\r\n".date('d.m.Y G:i'). " : ".$replic['addon'].$olddate." (".$_COOKIE[user].")");
addrecord(date('d.m.Y G:i').": "." Добавлено примечание : ".$replic['addon'], " Задание: №".str_replace(".txt", "", $replic['page'])." <a href='tasks.php?page=".$replic['page']."'><i>".$mass[1]."</i>.</a> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", rtrim($deppage), "notes");
sendmanagement(namedep(rtrim($mass[6])), date('d.m.Y G:i')."Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']."<br> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", 1, 0);
if (isfl(rtrim($mass[2]))==1){
sendmanagementfl(namedep(rtrim($mass[6])), date('d.m.Y G:i')."Задание: ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']."<br> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", 1, 0);
}
if (rtrim($mass[2]) <> rtrim($_COOKIE[user])){
senduser2("Оповещение ", "Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon'], rtrim($mass[2]));
}
sendfollowers($replic['page'], "Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']);
fclose($fh);
}
БД? Нет, не слышали!
+164
function addnews($str1="", $str2="", $str3="", $str4="", $str5=""){
$num = 0;
$done = 0;
while ($done == 0){
$num++;
$s = "";
if ($num<10000000) {$s="0".$s;}
if ($num<1000000) {$s="0".$s;}
if ($num<100000) {$s="0".$s;}
if ($num<10000) {$s="0".$s;}
if ($num<1000) {$s="0".$s;}
if ($num<100) {$s="0".$s;}
if ($num<10) {$s="0".$s;}
$done = 1;
if (file_exists("news/".$s.$num.".txt")){$done=0;}
}
$fh1 =fopen("news/".$s.$num.".txt","w");
fwrite($fh1, $str1."\r\n");
fwrite($fh1, $str2."\r\n");
fwrite($fh1, $str3."\r\n");
fwrite($fh1, $str4."\r\n");
fwrite($fh1, $str5);
fclose($fh1);
}
Предложили доработать корпоративную тикет-систему. Движок абсолютно всё хранит в txt-файлах. Да, и пароли пользователей тоже - в открытом виде. БД? Нет, не слышали :(
Но это еще не так страшно...
+161
$reload_one_by_one = $folder = $datashow = $tagdelete = $ipdatauser = $design = $open_all = $catshow = $main = $daleeshow = $openshow = $number = $add = $size = $papki_numbers = $zagolovokin = $menu = $noli = $show_title = $random = $showlinks = $open_new_window = $shablon = $show_new_pages = $reload_link_show = $reload_link_time = $reload_link_on_start = $show_pages_from = $calendar_future = $calendar_years = $re_menu_type = $must_have_foto_adres = $papki_in_razdel_show = $papki_in_razdel_punkt = $papki_in_papki_show = $papki_in_papki_punkt = $papki_in_pages_show = $papki_in_pages_punkt = $type_menu_item = $razdel_menu_show = $tag_show = $sort_photo = $archive_type = $archive_sort = $another_css_link = $another_css_options = $another_css_font_1 = $another_css_font_2 = $another_css_color_1 = $another_css_color_2 = $another_css_noimages = $author_show = 0;
Кажется найден «брат» говнокода http://govnokod.ru/17836
+157
(
new CompleteProfileRequest(
new \stdClass,
new \Net_URL2(
$this->uriBuilder
->reset()
->setUseCacheHash(FALSE)
->setCreateAbsoluteUri(TRUE)
->build()
),
array_key_exists('headlineSelect', $settings)
? $settings['headlineSelect']
: 'headline:complete_profile'
)
)->create();
Нельзя просто так взять и наплодить кучу переменных ))
+159
public function getProductAttributes($product_id) {
$product_attribute_data = array();
$product_attribute_query = $this->db->query("SELECT attribute_id FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' GROUP BY attribute_id");
foreach ($product_attribute_query->rows as $product_attribute) {
$product_attribute_description_data = array();
$product_attribute_description_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' AND attribute_id = '" . (int)$product_attribute['attribute_id'] . "'");
foreach ($product_attribute_description_query->rows as $product_attribute_description) {
$product_attribute_description_data[$product_attribute_description['language_id']] = array('text' => $product_attribute_description['text']);
}
$product_attribute_data[] = array(
'attribute_id' => $product_attribute['attribute_id'],
'product_attribute_description' => $product_attribute_description_data
);
}
return $product_attribute_data;
}
Opencart -> ModelCatalogProduct -> getProductAttributes
Первым запросом в БД они берут IDы атрибутов, перебирают их циклом, в котором другим запросом берут всё, в том числе и те же IDы, из той же таблицы и снова перебирают строки циклом.
+160
abstract class class_getset {
protected $vars;
public function get($name = "%all%") {
if($name == "%all%") {
return $this->vars;
}
else {
return $this->vars[$name];
}
}
/* тут второй метод, угадай его название */
}
Старый код из 2012, интересное решение ...
+155
/**
* @param string $singular
* @param string $context
*/
function translate($singular, $context=null) {
return $singular;
}
Любимый вордпресс, wp-includes/pomo/translations.php. Кажется, это такой интерфейс.
+162
if(isset($_POST['submit']) AND $_POST['submit'] == 'add_program')
{
if($this->form_validation->run('add_program') == TRUE)
{
// Добавляем программу обучения
$this->Settings_model->add_program($_POST['title']);
$id = $this->db->insert_id();
for ($x = 0; $x < 61; $x++)
{
if ($x <= 12)
{
$title = $x;
$year = 1;
}
elseif ($x > 12 AND $x <= 24)
{
if($x == 13) {$title = 1;}
if($x == 14) {$title = 2;}
if($x == 15) {$title = 3;}
if($x == 16) {$title = 4;}
if($x == 17) {$title = 5;}
if($x == 18) {$title = 6;}
if($x == 19) {$title = 7;}
if($x == 20) {$title = 8;}
if($x == 21) {$title = 9;}
if($x == 22) {$title = 10;}
if($x == 23) {$title = 11;}
if($x == 24) {$title = 12;}
$year = 2;
}
elseif ($x > 24 AND $x <= 36)
{
if($x == 25) {$title = 1;}
if($x == 26) {$title = 2;}
if($x == 27) {$title = 3;}
if($x == 28) {$title = 4;}
if($x == 29) {$title = 5;}
if($x == 30) {$title = 6;}
if($x == 31) {$title = 7;}
if($x == 32) {$title = 8;}
if($x == 33) {$title = 9;}
if($x == 34) {$title = 10;}
if($x == 35) {$title = 11;}
if($x == 36) {$title = 12;}
$year = 3;
}
elseif ($x > 36 AND $x <= 48)
{
if($x == 37) {$title = 1;}
if($x == 38) {$title = 2;}
if($x == 39) {$title = 3;}
if($x == 40) {$title = 4;}
if($x == 41) {$title = 5;}
if($x == 42) {$title = 6;}
if($x == 43) {$title = 7;}
if($x == 44) {$title = 8;}
if($x == 45) {$title = 9;}
if($x == 46) {$title = 10;}
if($x == 47) {$title = 11;}
if($x == 48) {$title = 12;}
$year = 4;
}
else
{
if($x == 49) {$title = 1;}
if($x == 50) {$title = 2;}
if($x == 51) {$title = 3;}
if($x == 52) {$title = 4;}
if($x == 53) {$title = 5;}
if($x == 54) {$title = 6;}
if($x == 55) {$title = 7;}
if($x == 56) {$title = 8;}
if($x == 57) {$title = 9;}
if($x == 58) {$title = 10;}
if($x == 59) {$title = 11;}
if($x == 60) {$title = 12;}
$year = 5;
}
if($x != 0)
{
// Добавляем месяцы обучения
$this->Settings_model->add_tutorial_months($id,$year,$title);
}
}
Тяжело супортить чейто проект