| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Избранное > Библиотека самых бесполезных кусков кода |
| Автор: IZ@TOP 23.8.2006, 09:47 | ||
| Недавно было обсуждение в одной теме - обсуждалось сколько можно валяться под столом глядя в чужой код. Эта тема будет посвящена всему тому что пишут некоторые особоодаренные индивидумы. И/или начинающие пыхеры. Прошу господ программистов постить, все что подвернется под руку, заслуживающее, так или иначе, постинга в данной теме. Желательно с комментарием о причине его ужасающей бесполезности, проблем безопасности и просто плохого стиля программирования. Для новичков это будет основой для оценки своего кода. Я пожалуй начну первым. Следующий код мне прислал человек, которого я собеседовал для своей старой работы на з.п. приблезительно близкой к 1000 у.е.:
Немного комментария к коду: 1. Ужасный стиль программирования. 2. Проблемы безопасности. 3. Если его и оптимизировать, то только переписав заново. Уж больно не оптимально. И еще ссылка по теме http://forum.vingrad.ru/index.php?showtopic=108540. Собственно благодаря ему и радилась идея создать данный топик. |
| Автор: Greendrake 23.8.2006, 09:55 |
| Думаю, любому более-менее опытному программисту сложно удержаться от пристрастной и субъективной оценки чужого кода. Зачастую превалирует "написано не так как пишу я, а я пишу наиболее оптимально, поэтому этот код - так себе". Строгих и доказанных правил написания кода не существует - это творческий процесс (я не имею ввиду соблюдение читаемости, отступы и комментарии - это безусловно). Поэтому я убеждён, что придираться нужно в основном к работе кода. |
| Автор: IZ@TOP 23.8.2006, 10:09 |
| Greendrake, полностью поддерживаю! Именно этот вопрос я и хотел затронуть в данной теме! Стоит хотя бы пройтись по ссылке в теме. |
| Автор: smartov 23.8.2006, 11:49 | ||||||
Поддерживаю. Одно дело творчество. Другое дело незнание/неумение/нежелание. Творчество в программировании должно быть логически обосновано. А я не могу найти логического, стилистического или иного обоснования для кода, которым мне достался. Например:
switch не только сэкономит тут место, но и сделает код читаемее и саппортнее. Я уж молчу о постоянно повторяющейся строке $ordertype = "text"; 7 раз! Одна и та же строка! Это у них творчество такое? Или еще из перлов того проекта. Для выставления прав на файлы, господа предыдущие "кодеры" использовали shell_exec('chmod....') (при том что есть родная функция), ну ладно, это дело такое, НО если вы уж так любиете shell_exec то зачем (?!) было для копирования директории со всем содержимым в другое место писать функцию (!) рекурсивную естественно, вместо того, чтобы просто и банально, как раз тут и заюзать shell_exec('cp...'). Мы иногда думаем, что может им за строчки кода платили..... Или файлы, на 20 кб без (внимание!) без хотя бы единственной функции (!), в которых без поллитра не разобраться. То есть файл - одна большая процедура. При чем написана так, что идет if ($_POST...) то 200 строк кода, else - еще 200... В некоторых файлах вложенность скобок доходила до 8 (!). Так же господа "те кодеры" постоянно перед самым выходом из файла, или перед директивой exit, ансетили по 5-8 переменок. В каждом месте вызова exit. В общем о каком творчестве речь? Это просто дилетанство. Добавлено @ 12:00 IZ@TOP,
Просто explode не поможет. Нужно читать построчно. Это если сначала $f = file(...) а потом foreach ($f...) ... explode, то да. |
| Автор: IZ@TOP 23.8.2006, 12:38 | ||
Естественно!))) Щас поправим))) |
| Автор: Vaulter 23.8.2006, 13:13 | ||
| ну что ж..вверили мне систему сайтов. и не смешно мне было отнюдь для начала:
прониклись? человеку деньги за это платились..... скотина... |
| Автор: smartov 23.8.2006, 13:18 |
Убило наповал |
| Автор: Vaulter 23.8.2006, 13:54 | ||||||
гы, ща кстати заметил вот еще, как он его вызывал:
ей богу не придумал! Добавлено @ 13:55 а это я называю "упорный тип":
Добавлено @ 13:57 из разряда тоже "упорного типа"
|
| Автор: IvanB 23.8.2006, 19:34 | ||
А вот в этом как раз ничего плохого не вижу.... ) Хотя переносы всё же стоит иногда делать. |
| Автор: skyboy 23.8.2006, 23:46 |
| IvanB, "плохого" может и нету здесь... но циклы, циклы-то на кой ляд придумали?! |
| Автор: Vaulter 24.8.2006, 08:55 |
| IvanB, ну и плохо, что не видишь ничего плохого! |
| Автор: IZ@TOP 24.8.2006, 11:19 |
| IvanB, спешал фо ю эта тема была создана, коль ничего страшного в том коде не видишь))) Записался в программисты? Будь так добр писать красиво! Чтоб понятно и с комментом, Безопасно для системы, Чтоб потом не засмеяли, И к пробабкам не послали! |
| Автор: Vaulter 24.8.2006, 11:36 | ||
| IZ@TOP, жжошь! продолжая тему.
|
| Автор: smartov 24.8.2006, 12:59 |
| млиин.. 29 раз... упорный тип, без вопросов... он наверное себе макросы в редакторе писал |
| Автор: Darhazer 24.8.2006, 13:27 | ||
Мой любимий кусок кода, не помню где его видел, но сразу в WTF отправил
P.S. это из винграда: http://forum.vingrad.ru/index.php?showtopic=47964&hl= |
| Автор: IZ@TOP 24.8.2006, 13:31 | ||
| Darhazer, ЖЖЕШЬ НЕ ПАДЕЦКИ! У нас весь офис лежал!!! Добавлено @ 13:33 Мне тут рассказывали про комменты в коде, значит идет какой-то if, и там коммент:
|
| Автор: Mal Hack 24.8.2006, 17:18 | ||||
Вспомнилось. На вовебе одно ламо код JS не рабочий дало. Код содержал комментарий:
|
| Автор: smartov 24.8.2006, 18:07 |
| Darhazer, ааааа |
| Автор: Ignat 24.8.2006, 18:34 | ||
Хуже... Я такого кода, наверное, километров 10 перефакторил. Так пишут поклонники копипаста. |
| Автор: vasac 24.8.2006, 18:53 | ||
Не далее, как вчера, наткнулся на код:
То ли чел покурил не того. То ли я не понимаю всей глубинной сути. |
| Автор: Vreden 24.8.2006, 21:20 | ||
Так ребятки, знаю код безобразный, признаюсь мой, упорный тип, да, знаю, не кричите.
Переделайте плиз так, чтобы была та же самая логика проги, но выглядела правильно с точки зрения этой темы. И вообще скажите плиз, что не так? |
| Автор: jzZ 24.8.2006, 22:36 | ||
Это вообще что такое Добавлено @ 22:38 Весь код сущий кошмар, это я еще не говорю о стиле кодирования... |
| Автор: Ignat 25.8.2006, 08:40 | ||
Ой, мама... Где я? Вообще, что здесь так? |
| Автор: Vreden 25.8.2006, 10:04 |
| нууууууууууууу и кто-нибудь исправит? |
| Автор: Ignat 25.8.2006, 10:05 |
Вероятно, нет. Здесь переписывать надо |
| Автор: Vreden 25.8.2006, 10:09 |
| ну тогда больше код я здесь не буду показывать |
| Автор: Ignat 25.8.2006, 10:12 |
Не верный ответ. Перепиши сам по правилам, высказанным в этой теме, а затем опубликуй. Тогда советы посыпятся как из ведра А переписывать никто не будет. |
| Автор: Vreden 25.8.2006, 10:44 |
| знал бы я как, все пишут мол это не так, это не так, а примеров кода, как сделать это не так - так!, не дают |
| Автор: Ignat 25.8.2006, 11:00 |
| Тогда начнем: 1. С какой целью перечислены все алфавитно-цифровые символы в регулярке? 2. Для чего служит оператор || , это я не увидел у вас в коде, но он там напрашивается. 3. Откуда навыки комментировать знаком # ? 4. Если есть повторы кода, то почему не используются функции? |
| Автор: smartov 25.8.2006, 11:14 | ||
Vreden, у тебя похерилась кодировка. Ну и чтоли твои кракозябры раскодировать? Раскодировать не буду. Посему код со своими комментами.
|
| Автор: skyboy 25.8.2006, 11:28 |
| блоки "<html><body>" и прочие части ты печатаешь в любом случае. так зачем тогда их в каждую ветвь if'a вставлять? |
| Автор: smartov 25.8.2006, 11:40 |
| skyboy, угу |
| Автор: Ignat 25.8.2006, 11:42 | ||
Лёх, к запросу:
|
| Автор: smartov 25.8.2006, 11:59 |
| Ignat, дырка в секьюрити |
| Автор: Ignat 25.8.2006, 12:33 | ||
В смысле SQL тоже по правилам оформлять надо. еще порефакторил, взял за основу код smartov'а
|
| Автор: IZ@TOP 25.8.2006, 15:15 | ||
Я, если честно, предложил что то вроде этого для обработки данных:
|
| Автор: Ignat 25.8.2006, 15:36 | ||||
| IZ@TOP, зачОт, Вот только одно замечание по коду: аргументы в объявлениях и вызовах функций и методов класса принято обрамлять пробелами (по крайней мере меня за это "били долго"). Т.е. не так:
а так:
|
| Автор: IZ@TOP 25.8.2006, 16:23 |
| Ignat, в каждой команде по своему))) Меня щас бьют за большие отступы)) Перучиваюсь по чуть-чуть. Конкурс для новичков! Найди в моем коде 1000 и одну ошибку! Ну не тысячу, хотябы пару, так как писалось все быстро и не как рабочий а как теоретический пример. В следующий раз вообще интерфейсы писать буду ) ООП РУЛЕЗ! |
| Автор: smartov 25.8.2006, 18:46 |
| IZ@TOP, эк однако тебя штыркнуло не хватает только class HelloWorld.... |
| Автор: faost 25.8.2006, 18:55 | ||||
А где принято? Очень вдруг интересно стало, откуда такая уверенность "в правильности" такого подхода Примерно тот же вопрос к IZ@TOP по поводу
|
| Автор: Ignat 25.8.2006, 19:06 |
Я не претендую на истину. Меня в последнее время на работе много натаскивали на оформление кода. И вот был такой пунктик. Хотя надо было выразиться так "ИМХО лучше оформлять пробелами". Кстати, я действительно проникся этим. |
| Автор: Muchenik 25.8.2006, 21:04 | ||||||
Мне тоже не совсем понятно почему так. В таких случаях использую стандарт pear:
Из стандартов кодирования PEAR:
|
| Автор: smartov 26.8.2006, 10:39 |
| Я тоже в коде стараюсь использовать PEAR-стандарт. |
| Автор: Rock 28.8.2006, 18:48 | ||
| Кстати, не плохая тема, ведь учится как раз надо на чужих ошибках Токо вот было бы лучше, если бы укзав код, вы бы указывали и на недостатки, объяснить, почему это не так. Как сделал IZ@TOP в первом посте, оставил свои комменты к когду А то получается так, что с кода:
Все знающие смеются Иначе эту тему смело в Юмор можно, да и только... имхо |
| Автор: Muchenik 28.8.2006, 20:21 | ||
Просто, для того чтобы что то делать, нужно четко себе представлять, что делает та или иная операция. При отсутствии того, люди пишут курьезный код.
unlink - удаляет файл и возвращает TRUE в случае успешного завершения. т.е. в данном случае, программист пытается удалить файл повторно. |
| Автор: Rock 28.8.2006, 20:27 | ||
| я вкурсе, но начинающим это может быть неизвестно, ведь все-таки появился такой код, следовательно появится ещё раз, следовательно надо объяснить почему не надо так делать. А ведь в понимании того человека возможно и было четкое представление, на основе которого код написан был
сначало проверка возможно ли это, а потом уже действие |
| Автор: smartov 29.8.2006, 11:29 |
| Rock, Не прав ты, камрад. Это функция библиотечная и элементарная как 2х2 Любой новичок/начинающий/незнающий/прочий должен СНАЧАЛА ПРОЧТИТАТЬ МАНУАЛ, особенно после ознакомления с этой темой. RTFM, как говорится! А если он будет продолжать делать точно так-же, только втихую, - то он просто ламер - т.е. человек, нежелающий учиться. |
| Автор: Rock 29.8.2006, 13:04 |
| smartov, эту функцию я просто как пример привел, смысл то более глобальный, чем объяснение библиотечных функций |
| Автор: smartov 29.8.2006, 16:07 |
| Rock, ну значит пример был неудачный. А обьяснять... кому. Друг-другу чтоль? Если спросят - обьясним. |
| Автор: faost 29.8.2006, 16:30 |
| из библиотеки самых бесполезных кусков кода топик превращается в библиотеку самого бесполезного флуда =) |
| Автор: IZ@TOP 29.8.2006, 16:45 | ||||
| Модератор: прекращаем пустую болтовню! Товарищи! Если выкладывате какой-то код, хотя бы слегка комментируйте в нем происходящее! Так действительно будет лучше. Кто-то спрашивал на счет шорт тегов: не используйте это безобразие! Я час копался - почему у меня не видно файла, который сгенерирован для экспорта (расширением html) и, с XML контентом. Угадайте почему? Потому что кто-то поставил хандлер РНР на html файлы + на сервере в конфиге были разрешены шорт теги! В итоге РНР матерится трехэтажным матом на XML и мы получаем пустую страницу, ибо (для тех кто не в курсе) XML файл начинается с объявления <?xml! Добавлено @ 16:48
Наверное человек просто хотел проверить существование файла. Из этого делаем вывод что нужно было делать так:
Добавлено @ 16:51 Замечательно, нашел тему просто переполненную безобразием называемым "иф адом")) http://forum.vingrad.ru/index.php?showtopic=109772 |
| Автор: smartov 29.8.2006, 17:07 |
| IZ@TOP, не так страшен иф ад как текст с картинкой до Тега html...... |
| Автор: Всемогущий 30.8.2006, 09:57 | ||||
| Привет всем на форуме видел
верно говорят трудно разбираться. А чем можно заменить |
| Автор: skyboy 30.8.2006, 10:19 |
| разбить на функции, к примеру |
| Автор: Alone 30.8.2006, 10:26 |
| Это называется рефакторинг кода. |
| Автор: smartov 30.8.2006, 11:13 |
| Всемогущий, тут дейтсивтельно подходов много. Можно как подсказал товарищ, разбить на фукнции. Первые триста строк - одна функция. Вторые (по else) - вторая. Это самый простой и в общем-то неправильный вариант. Потому-что я считаю и мой опыт это подтверждает, что можно всегда избежать ситуаций в которых иф 300 строк элс - 300 строк. Наверняка можно построить логику по другому. Многое наверняка общее. Многое наверняка можно написать по-другому. |
| Автор: skyboy 30.8.2006, 14:40 |
необязательно так страшно. интуиция мне подсказывает, что почти наверняка 50% кода в обоих ветвях могут быть объединены в одну функцию. возможно - с разными параметрами. хотя, конечно, вариант правильнее. |
| Автор: smartov 30.8.2006, 14:47 | ||
Мне тоже, но реально кода в глаза я не видел... |
| Автор: Vaulter 1.9.2006, 12:14 | ||
|
| Автор: Ignat 2.9.2006, 09:48 |
| Vaulter, только не говори, что это писал ты |
| Автор: RomanK 2.9.2006, 18:00 | ||
Вот... нашел. Цитирую только кусок кода:
Больше всего понравились строки - 16, 19, 21. |
| Автор: smartov 2.9.2006, 22:48 |
| Не оценил. Просто какой-то недоработанный код и все :\ Написан конечно дубово но индусский стиль присутствует очень мало... Да и не рабочий код по-идее... |
| Автор: Vaulter 3.9.2006, 10:11 |
| Ignat, чур меня! тебе вот смешно! в итоге, с нуля свою накропал |
| Автор: RomanK 3.9.2006, 19:16 |
| smartov, если это ты про код в моем посте, то это просто вырезка из большого кода, в котором мне понравились именно строки 16, 19, 21. Особенно понравилась строка 21. Интересно что этим хотел показать автор! |
| Автор: smartov 3.9.2006, 21:52 |
| Ну строка 16 - строка как строка, ну может хотел он переносов в конце текста. 19, 21 - такое впечатление что кто-то что-то дебажил или временно проверял, а потом забыл убрать... |
| Автор: IZ@TOP 4.9.2006, 17:40 | ||
Всем офисом дружно катались под столами после просмотра такого кода:
|
| Автор: smartov 4.9.2006, 20:21 |
| Мощно! Мы такой код называем Uber_really_что-то В твоем случае Uber_realy_true |
| Автор: BuShaRt 11.9.2006, 18:00 |
| А зачем топ был созда? =)) Переименуйте его в "Забавные ошибки" Просто не чего интересного не узнал... |
| Автор: smartov 11.9.2006, 19:39 |
Это хорошо! |
| Автор: BuShaRt 11.9.2006, 20:25 | ||||||||
| smartov, Ну да, я конечно посмеялся, почуствовал себя не полным нубом, но все же было бы гораздо лучше, если бы люди рассказывали тут как стоит избавляться от определенных ошибок.... В самом первом посте были комменты, к которым можно прислушаться, а больше я нечего не увидел, лишь куча кода... Я думаю всем стоит чему либо учиться, поэтому стоит не только смеяться над чужими ошабками, но и критиковать их... Вохможно возникнут споры, но ведь в спорах рождаеться истина... Вот я кстате не понял вот тут:
А зачем каждый раз прерывать? не проще ли делать так?
Потом перенести в отдельный файл...
и сделать так в подытоживание ошибок:
|
| Автор: smartov 11.9.2006, 20:35 |
| BuShaRt, можно еще много чего красивого сделать. Я написал поправку а 5 минут чтобы показать как от этого можно хотя бы _минимально_ здыхаться. Код что я написал тоже корявый, но гораздно менее индусский чем оригинал. Потом ребята еще навернули. Ты ж видел. Даже в файл отдельный переносить не надо. Зачем? Накапливай в переменку. |
| Автор: BuShaRt 11.9.2006, 20:38 | ||
Ты наверно не правилно понял... Я про перенос HTML кода в отдельный файл... мешать HTML и PHP не хочеться не в каком виде... |
| Автор: BuShaRt 12.9.2006, 09:07 | ||||
Вот сейчас разгребаю один из модудей RunCMS, вроде пример для подражания, а вот такой код увидеть обчное дело:
В чем же дело? Почему программисты позволили себе написать такой стращный код? Добавлено @ 09:13
|
| Автор: smartov 12.9.2006, 12:16 | ||||
А. Тогда да. Но учти, что у товарища там все ошибки имели разный тескт. Так что это уже шаблоны получаются.
Значит не такой уж пример для подражание как кажется. Или писало много программеров. Ты бы видел код довольон широко рапсространенного движка OSCOmmerce. Там просто жесть. А phpBB? Сколько там дыр. Так что не все что массово- пример для подражания. |
| Автор: Eugene_Bond 12.9.2006, 12:46 |
| На эту тему есть http://community.livejournal.com/ru_sex_php/, но в последнее время активность спала.. |
| Автор: BuShaRt 12.9.2006, 13:20 | ||
| smartov, Ну так да, шаблон. В нем тег <messages>, который регуляркой заменяеться на текст ошибки=) Хе.. Покажу ка я свой код, который мне не очень нравиться.. Можете посмеяться, но пожалуста откоментируйет над чем и чем моно заменить =) То, что ввода не безопасен во второй форме я знаю... просто пока не дошел то туда, а функция field_validator как раз фильтрует ввод и возращает массив $messages. На примере описанного мной выше.
|
| Автор: Ignat 12.9.2006, 13:25 | ||
ИМХО, во всем тексте проблемы с отступами... |
| Автор: smartov 12.9.2006, 13:51 | ||||||
| BuShaRt, смеятся не будем. Зачем. А вот поправить. Ну беде вдаваться особо в структуру (то бишь улучшать саму логику предлагать не буду, это дело вкуса). А именно по стилистическим ошибкам. 1)
Уже много раз говорено даже в этом теме, даже с обьяснениями, что не надо так писать. if (...) {500 строк) читать неудобно ну ни в каком месте.
Этот код почему то повторяется два раза в одном и том же уловии. Это UberReallyExit такой? Итого имеем.
А регистрацию я бы а) доделал б) вынес в другой файл или класс |
| Автор: BuShaRt 12.9.2006, 19:17 | ||
| smartov, хм.. логично =) спасибо... А если вот это еще посмотреть (раз такая расдача)? Тут я сам понимаю что бред, но просто не знаю, как можно оптемезировать.... Писал вообше нарашиванием, т.е. сначало одно написал, а потом (когда понадобилось) дописывал другое. Чтоб везде не коменнтить... В итоге все операции сводяться к занесению в переменную $page определенных данных.
|
| Автор: smartov 12.9.2006, 22:51 |
| Ну незнаю. Так написано как написано. По стилистике - нормально, без индуизмов. То бишь код читабельный и саппортный. |
| Автор: IZ@TOP 13.9.2006, 11:31 | ||
BuShaRt, есть несколько замечаний:
Еще хотелось бы заметить что у тебя ошибки на разных языках... по моему это странно. Еще меня приятно удивило полное отсутствие каких бы то нибыло обрамлений кавычками индексов массивов... может это у тебя константы? Попробуй в начале всех своих страничек поставить ini_set('display_errors', 1); error_reporting(E_ALL);. Пока не избавишься от всех нотисов - код невалидный. |
| Автор: BuShaRt 13.9.2006, 12:03 | ||
боже... сколько ошибок повылезало... |
| Автор: BuShaRt 19.9.2006, 21:00 | ||
| Как теперь? mysql_real_escape_string еще не юзал, ее отнес отдельно к целому классу работы с БД, которым щас и занимаюсь... Да, и не ужели mysql_real_escape_string полностью защищает от иньекция?
|
| Автор: smartov 20.9.2006, 11:41 | ||
Если правильно юзать. |
| Автор: BuShaRt 20.9.2006, 14:37 | ||||
smartov,
Вот так =) А потом
|
| Автор: IZ@TOP 22.9.2006, 13:33 | ||
| BuShaRt, опять же, есть небольшое замечание: в некоторых случаях preg_replace лучше заменить на str_replace. А насколько я вижу, тебе именно это лучше и сделать, так как у тебя не регулярка а простая строка идет на замену - зачем лишний раз процессорное время тратить? Добавлено @ 13:34
Дело в том что эта функция экранирует данные согласно синтаксису mysql и данных касаемых конкретного коннекта. |
| Автор: G0rinich 4.10.2006, 11:30 |
| http://siteservice.ru/ Linker 3.0 файл linker_files/add_form.php строка 14 if(($banner || $link) && $ok==1) $ok=1; |
| Автор: smartov 5.10.2006, 12:44 |
| УберРеаллыПрисвоить |
| Автор: mr.fox 8.10.2006, 07:09 | ||
Cейчас этого кадра поймал..
http://forum.woweb.ru/topic25160s0.html? я валяюсь |
| Автор: smartov 8.10.2006, 12:22 |
| Что-то пост не совсем по теме. Описки бывают. Бывает что сидишь и тупо не видишь что ошибся в написании Тут тема не про это. |
| Автор: mr.fox 8.10.2006, 17:36 |
| smartov, ну я не знаю, такое не заметить очень уж сложно |
| Автор: AztEK 25.10.2006, 19:50 | ||
Недавний прикол с bash.org.ru :
Не совсем в тему, но поржал |
| Автор: Ground 29.10.2006, 08:05 | ||
Подскажите как можно упрощать такой код:
|
| Автор: Vaulter 29.10.2006, 14:28 |
| Ground, скрепя зубами... |
| Автор: клоп 30.10.2006, 10:30 | ||||
| Решил написать свой пост тут, т.к. не уверен в правильности своего решения. Делаю скрипт онлайн матча 2х команд. Файл 1 , доступен по паролю (статист в онлайне сидит и забивает результаты в форму)
Файл 2 , доступен всем (обновляется через определенное время)
Как видете, чтоб показать какой либо результат, а их может быть не один десяток и находиться они могут в разных местах страницы (файл 2) приходиться каждый раз открывать файл и считывать, что не есть хорошо как мне кажется. Как быть? |
| Автор: smartov 30.10.2006, 12:00 | ||||
| Ground, Лёгко. Смотри. У тебя повторяются одни и те же строки 20(!!) раз. Извеняются только границы выборки. Логично что надо просто организовать условие и всё.
клоп, навскидку (писал по быстрому. может ошибки будут, но думаю смысл поймешь) Файл 2 будет таким
|
| Автор: клоп 30.10.2006, 13:12 | ||
smartov спасибо, но этот перебор выведет один за другим все значения в массиве, а нужно только одно определенное
|
| Автор: smartov 30.10.2006, 14:22 |
| клоп, тебе нужна только первая строчка из файла? Ну тогда читай только ее. Одним циклом меньше. |
| Автор: Vaulter 5.11.2006, 00:03 | ||
вчитайтесь внимательно. особенно "Access denied."!!! однако: www.e107.org !!! |
| Автор: smartov 5.11.2006, 22:28 |
| Vaulter, я подобное видел в коде phpbb. Методы защиты конечно так себе. |
| Автор: Mystery_of_being 8.11.2006, 00:57 |
| Мне кажется он просто полный новичок. Я когда только учил тоже был упорным типам. )) Вы когда начинали глупочти не делали ?? Я вот писал If( ... ) { Делам что-то } else { А тут пусто. Думал если не будет Элс то будет ошибка ))) } |
| Автор: smartov 8.11.2006, 11:42 |
| Mystery_of_being, к чему ты это написал? Представленный Вольтером код писал не новичок однозначно. По крайней мере не настолько новичок чтобы думать что если else не написать то будет ошибка. |
| Автор: BuShaRt 29.11.2006, 14:07 | ||
| Mystery_of_being, Почему не писал так?
|
| Автор: coyl 4.1.2007, 02:51 |
| Жесть конечно все это, но я вот сейчас получил проект. Посмотрев на код, я понял, что дал бы ему максимум 15 штук рублей за и то только за то, что время потратил на написание 5 мегов кода. Когда я стал углубляться, чтобы внести срочные изменения, я просто проклял его (все вышеперечисленные ошибки там были, структурирование, видимо було для него незнакомым словом ифы и элсы, содержащие по 300 строк кода ит.д. ит.п.) и понял, что не дал бы ему и 15 штук... Так вот представьте мой ужОс, когда я узнал, что этот "кодер" получил за написание этой системы (внимание внимание) 170 000 рублей. Поприветствуем его заказчиков))) |
| Автор: Mal Hack 4.1.2007, 02:56 |
| А можно, хотя бы приватно получить ссылочку на сие чудо? Уж больно хочется воочию глянуть реализацию... |
| Автор: coyl 4.1.2007, 14:27 |
| Да там смотреть-то особо нечего. Все \вродебы\ работает правильно, дизайн рисовал мой хороший друг, так что выглядит все прилично, но вносить какие-либо изменения или дополнительные модули - это аЦЦко просто. Собственно говоря поэтому этот чел и ушел с проекта - не укладывался ни в какие сроки даже по мелочовым правкам. |
| Автор: smartov 4.1.2007, 14:38 | ||
|
| Автор: coyl 4.1.2007, 21:42 | ||
Жесть. Только что нарвался на кусок кода
За такое люди еще и деньги получают. |
| Автор: smartov 5.1.2007, 00:07 |
| coyl, ну в принципе написано кривовато и несекьюрно, но идея ясна. Возможно там поля в динамике генерятся, я страницу не вижу. |
| Автор: Mal Hack 8.1.2007, 00:04 | ||
|
| Автор: AztEK 10.1.2007, 19:35 | ||||
Это действительно реальный код? |
| Автор: Mal Hack 10.1.2007, 19:40 |
| http://forum.vingrad.ru/topic-130800.html |
| Автор: awers 12.1.2007, 20:57 |
| ЖЕСТЬ ТАК ЖЕСТЬ: Сайт: http://studinfo.ru/ Все в файле.. Не весь исходник кинул ... просто и так хватит ))) |
| Автор: Mal Hack 12.1.2007, 21:08 |
| Да вроде бы нормальный код. |
| Автор: awers 12.1.2007, 21:11 |
| читай папку A2 ... )))) |
| Автор: Mal Hack 12.1.2007, 21:19 |
| Нет такой |
| Автор: awers 13.1.2007, 02:55 |
| ну а модули с папки админ?? |
| Автор: Mal Hack 13.1.2007, 14:18 |
| Нормально более менее... |
| Автор: MuToGeN 24.1.2007, 13:57 |
| awers, единственная вещь - никаких error_reporting(0). ini_set('display_errors', 0) и настраиваем логирование ошибок, желательно помимо стандартного PHPшного логирования свой обработчик (man set_error_nadler) с логированием стека вызова. |
| Автор: AztEK 24.1.2007, 14:08 |
| [offtop] А как логировать стек вызовов? [/offtop] |
| Автор: MuToGeN 25.1.2007, 20:22 |
| debug_backtrace() |
| Автор: IZ@TOP 2.2.2007, 16:26 | ||||
Уга-га. Купили один проект (фотогалерея), код с первого взгляда порадовал, но некоторые вещи особенно)
Люблю сокращения, но все же)))
|
| Автор: smartov 2.2.2007, 20:36 |
Как обычно |
| Автор: WolfON 21.4.2007, 02:35 | ||
Есть код типа:
И судя по всему, прийдется дописать таких функций еще пять Каким образом вы-бы упростили код, не лишая его читабельности, пока ничего, кроме как вынести его в отдельную функцию в голову не приходит =/ |
| Автор: smartov 21.4.2007, 10:15 | ||
| WolfON, как вариант, например
|
| Автор: d4rkr00t 10.11.2008, 19:56 | ||
во что встретил в одном проекте
Это что система банна??))) |
| Автор: smartov 10.11.2008, 20:55 |
Клааас |
| Автор: jnb 13.11.2008, 18:04 |
| Вижу ветка еще жива. Прочитать смог только первую страницу. Идея ТС-а конечно интересная, но что-то пошло вразнос: гуру выкладывают код, потом дружно ржут над ним без комментариев, засирают авторов кода и ВСЕ! Это очень полезно для новичков. Новичок только может сделать вывод: что бы он не написал - его залажают. |
| Автор: bars80080 13.11.2008, 18:41 |
| jnb, согласен, тема не флеймовая. однако на первой странице всего три куска. первые два от IZ@TOP и smartov объяснены достаточно Vaulter, правда, изначально ничего не говорит, но дальше из контекста ясно, что убивает в этом коде. и не нужно быть семи пядей во лбу, чтобы понять что в первом примере из-за ($a, $b, $c, $d) просто фиг разберёшься в функции. почему было не назвать переменные понятно - неизвестно а во втором примере человек явно страдает. очень сильно. циклы для того и придуманы, чтобы не было подобных упражнений для пальцев |
| Автор: Majesty 28.11.2008, 14:37 | ||
Платный движок для создания "социальных сетей" SocialEngine. Класс se_user (/include/class_user.php). Метод user_fields.
|
| Автор: NLspieler 5.12.2008, 09:29 | ||
| Функция помогающая составлять mathml формулы. Сильно же по-уродски выглядит?
|
| Автор: smartov 5.12.2008, 13:40 |
| NLspieler, да, все это можно было сделать проще, забив сначала массив соответсвий замен. |
| Автор: NLspieler 6.12.2008, 09:34 | ||
Что значит массив соответствий замен? |
| Автор: NLspieler 6.12.2008, 10:34 | ||
А вот это одна из функций, которая использует предыдущую функцию
|
| Автор: smartov 6.12.2008, 12:42 | ||
это навскидку так можно упростить |
| Автор: nerezus 8.12.2008, 02:55 | ||
Хотя по сравнению с битрегзом... |
| Автор: MoLeX 2.4.2009, 06:58 | ||
| Пред история: на работе приходиться поддерживать один крупный государственный проект, сделанный на заказ и за очень большие деньги (делал не я, а фирма-дурдом, по другому их не назовешь) последние месяцы стали этот проект очень сильно развивать, каждый день закачивалось от 20 файлов и достигли мы такими темпами более 10 тыщ файлов (законопроекты, приказы и т.д.), и началось у меня веселье - чтобы закачать файл надо ждать минут 15 (к слову сервер у нас не хилый, когда файлов было менее 6 тыщ все работало на ура, а тут вот началось). в результате беглово осмотра нашел следующий код
после убития этих строк проект опять залетал. Люди не когда так не делайте |
| Автор: pompei 2.4.2009, 08:01 | ||
Вот темная прога для shell-а:
Я официально и уполномоченно заявляю, эту программу нельзя использовать, и категорически запрещено её запускать, особенно под суперпользователем "root" - ЭТО БУДЕТ НАРУШЕНИЕ АВТОРСКИХ ПРАВ И БУДЕТ ОЧЕНЬ СТРОГО КАРАТЬСЯ ПРИТОМ НЕМЕДЛЕННО И НЕЗАМЕДЛИТЕЛЬНО |
| Автор: MoLeX 2.4.2009, 08:27 | ||
не понял Добавлено через 7 минут и 5 секунд это же перл? |
| Автор: nerezus 2.4.2009, 09:40 |
| MoLeX, запусти ) Это тест на профессионализм админа: он автоматически узнает скилл админа и, если админ плохой, наказывает его. |
| Автор: MoLeX 2.4.2009, 10:53 |
| nerezus, аха, запустил. и не чего Добавлено через 12 секунд |
| Автор: mogul82 16.5.2009, 23:07 |
| Я когда увольнялся из 2х фирм, запоганил все сайты. Стер функции для проверки ошибок, заменил функции на старые и т.д. Вот там ща наверное мучуются. |
| Автор: nerezus 16.5.2009, 23:20 |
| Т.е. ты работал в настолько гадюшнике, что даже не было CVS-системы у них? |
| Автор: mogul82 16.5.2009, 23:21 |
| nerezus, Каждый делал один проект с нуля в одиночку. |
| Автор: nerezus 18.6.2009, 02:34 |
| Покажешь код?) |
| Автор: TUMS 7.8.2009, 08:10 | ||
как-то так =) |
| Автор: WiseFire 22.9.2009, 11:45 | ||||
МЕНЯ РВЕТ =))))) P.S. Извините, не сдержался... |
| Автор: smartov 22.9.2009, 13:52 |
| За что только не плОтют |
| Автор: nerezus 25.9.2009, 23:24 | ||
Отсюда: http://forum.vingrad.ru/forum/topic-274389.html
|
| Автор: bars80080 25.9.2009, 23:39 |
| свежачок |
| Автор: overmet 18.8.2010, 23:57 | ||||
советы
|
| Автор: SneG0K 5.2.2011, 14:55 |
| nerezus, у тебя хоть отступы есть |
| Автор: Muerto 11.2.2011, 12:43 | ||||
Нам похожее в универе задавали... на скок помню когда писал подобное на Java циклов понадобилось не более двух (кажется вообще один) |
| Автор: smartov 11.2.2011, 13:59 |
| Muerto, а что вообще эта конструкция делает? (а то лень разбираться) |
| Автор: N_Ghost 28.3.2011, 20:16 | ||
Подкинули мне интересный проектик, малость поправить и дополнить. То что дизайнер его верстал похоже сразу в фотошопе, я особо не удивился. Но когда полез в код, и нашел там такой веселый кусок, пол часа ржали всем отделом |
| Автор: KLeonid 30.3.2011, 20:25 | ||
| А тема то хорошая! Вот только действительно, комментировать нужно код, иначе новички могут не понять над чем смеяться Никогда не считал себя хорошим кодером, я скорее инженер, но даже на php4 таких глупостей как в теме себе не позволял. А глупостей я насмотрелся, когда переписывал оскоммерс N_Ghost, да код забавный... автор видимо не умеет пользоваться LEFT JOIN, или в упор не знает, что можно делать выборку из нескольких таблиц одним запросом А уж как переменные плодить любит! Вообще, логика этого кода малопонятна
Но от этого код становится лишь немного лучше... а логика все так же дубова |
| Автор: N_Ghost 6.4.2011, 20:31 |
| Забыл добавить что сама дата храниться в базе в трех int полях, как, день, месяц, год. Там видимо программисту не то что LEFT JOIN, а даже стандартные типы данных не известны Еще убила таблица пользователей, UserID, по которому выбираються пользователи, это var_char, содержащий md5 микротайма. А вот пароль храниться в открытом виде, в текстовом поле. Такой логики, как не пытался, понять не смог. |
| Автор: KLeonid 6.4.2011, 21:35 |
| А ее там и нет |
| Автор: N_Ghost 25.5.2011, 17:15 | ||
| Есть много способов проверить что переменная существует, или содержит нужное значение. Но такого извращенного способа еще не встречал
|
| Автор: smartov 25.5.2011, 17:41 |
| А чего. Отсроумно |
| Автор: srt 9.6.2011, 12:34 |
| самый быстрый способ избавиться от sql injection никаких регулярок и прочей лобуды |
| Автор: N_Ghost 2.7.2011, 13:05 | ||
Продолжу тему веселых запросов. Нужно узнать, есть ли транспорт из страны, и в страну. Всего 94 страны, 189 запросов в базу, только для того что бы показать есть ли что то из этой страны, и в эту страну.
|
| Автор: MoLeX 4.7.2011, 05:31 |
| мда. очень интересно использовать цикл в запросе. |
| Автор: FlameTH 21.2.2014, 16:13 | ||
как вам такое?
|
| Автор: jexerrus 17.3.2014, 13:28 |
| жесть какая, вообще все куски кода как на подбор =))))) |