- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
Мой скромный говнокод для любителей фильтрации и xss
При записи в базу
$msg = stripslashes(htmlspecialchars(trim($_POST['msg']))); // Очищаем от мусора
Вывод из базы
function post($text, $html=true, $nl2br = true, $smiles = true, $bbcode = true)
{
if ($html)
{
$text=html_entity_decode($text, ENT_QUOTES, 'UTF-8'); // в базе в htmllenties обратная перекодировка
}
if($smiles)
{
$text = smiles($text);
}
if($bbcode)
{
$text = bbcode($text);
}
if($nl2br)
{
$text = nl2br($text);
}
return $text;
}
Vasiliy 09.11.2010 15:50 # 0
а вот это $msg = stripslashes(htmlspecialchars(trim($_POS T['msg']))); классика ГК. что уже тоже не смешно.
Lure Of Chaos 09.11.2010 21:43 # 0
Vasiliy 10.11.2010 10:31 # −3
Lure Of Chaos 10.11.2010 12:30 # 0
но все же ооп-стиль лучше тем, что не перекроем такие очевидные => часто используемые имена функций + логически упорядочим
Vasiliy 10.11.2010 14:44 # 0
Lure Of Chaos 10.11.2010 18:08 # 0
alexqc 11.11.2010 19:58 # 0
Lure Of Chaos 11.11.2010 20:10 # 0
вот ведь сравнили несравниваемое. В неймспейсе ведь классы, а не методы.
в общем, пока эта чехарда с неймспейсами, остаемся с Zend Conventions типа класс в пакет/подпакет/класс.пхп называется пакет_подпакет_класс
alexqc 11.11.2010 20:58 # 0
//Я не знаю как сделаны неймспейсы в ПХП, потому рассуждаю считая что они реализованы аналогично С++.
Итак, если начальному автору надо будет инкапсулировать свои функции (напрмер, внезапно окажется что они пересекаются с функциями другого автора), то он может это сделать либо обернув их как статические методы в некий "псевдо"класс
class CC{ static function f()...}
либо как неймспейс
namespace СС; function f()...
и в любом случае обращаться к ф-ции как CC::f().
Повторю, тут я могу ошибаться (напрмер, может в ПХП нельзя засовывать в неймспейс функции?), но в данном случае у неймспейса преимущество только в том, что его можно раскидать по разным файлам, и (возможно) если в ПХП есть такая штука типа using namespace CC; - и дальше писать без префикса CC:: - тогда автору свой код вообще почти переделывать не придется.
Если же префикс все равно надо писать - тогда использование неймспейса (равно и класса) практически ничем не отличается от обычного ("буквенного") префикса.
Ну и разумеется, если писать изначально в ООП-стиле, да с соглашениями об именах - тогда никакого вышеуказанного бреда делать не придется.
istem 11.11.2010 22:22 # 0
namespace cc;
и всё что ниже относится к "сс"
при обращении к функциям/методам, пишешь:
$foo = сс\bar();
там где планируется использовать "сс" по умолчанию, пишешь:
use cc;
и далее:
$foo = bar();
--
но это только с 5.3 версии...
alexqc 12.11.2010 09:48 # 0
Анонимус 12.11.2010 18:31 # 0
прикольно наверное перенести пару пакетов в другие пакеты
или например класс в пакете com.example.model.users
Lure Of Chaos 12.11.2010 21:46 # 0
Анонимус 12.11.2010 21:50 # 0
Правда, phpstorm например умеет цеплятся за phpdoc и имена переменных, и у него иногда получается сделать rename method.
Lure Of Chaos 12.11.2010 22:18 # 0
Danis92 10.11.2010 18:17 # −7
$msg = stripslashes(htmlspecialchars(trim($_POS T['msg']))); // Очищаем от мусора
Это перед записью в базу ,при записи в базу еще использую mysql_real_...
При выводе обрабатываю строки функцией описанной выше post($post['msg']);
Вообще подумываю на другие веб языки переходить ,какие можете посоветовать?
Arigato 10.11.2010 20:45 # −4
> Вообще подумываю на другие веб языки переходить ,какие можете посоветовать?
Перл вам в помощь, не трудно будет перейти, основы вы уже освоили.
istem 10.11.2010 20:51 # +2
--
Есть такой замечательный язык - HTML
Danis92 10.11.2010 23:20 # −2
bugmenot 12.11.2010 23:35 # 0
HyperGeek 10.11.2010 21:16 # 0
Lure Of Chaos 10.11.2010 21:42 # 0
eth0 10.11.2010 23:36 # 0
В итоге, если на экране более пяти объектов - работать не будет, потому что больше фантазии у разработчика не хватило. У ракеты жёстко прописанная в коде координата - дача тёщи.
Достаточно вспомнить байку с полётом над Мёртвым морем. Программные ошибки такого рода могут стоить очень дорого.
bugmenot 10.11.2010 23:53 # 0
как говорят в пентагоне - это не ракета, а самолет, просто кажется, что ракета :)
Lure Of Chaos 11.11.2010 00:19 # 0
bugmenot 11.11.2010 00:24 # 0
я про сегодняшний пуск, про который решили, что показалось :)
хотя к прошлому разу подходит идеально
istem 11.11.2010 00:21 # 0
"Это не говнокод - это продакшн, просто кажется что говнокод", - каждый раз говорят исполнители заказчику...
Анонимус 11.11.2010 16:42 # 0
переходить лучше на питон. Или джаву например
Lure Of Chaos 11.11.2010 17:48 # 0
Анонимус 11.11.2010 17:51 # 0
пока ребенок не знает, что такое переменная -- нафига его грузить понятиями кучи, стека, сборки мусора, примитивов и врапперов?
Lure Of Chaos 11.11.2010 18:31 # 0
Зато не придется засорять совершенно ненужными знаниями, например, чем в паскакале процедура отличается от функции, какого хрена в васике параметры функции пишем в скобках, а параметры процедуры - без, и какими ключевыми словами заканчивать циклы for, а какими while, где глобальные переменные видны и где нет, и почему все переменные делать глобальными - плохо... ну итыды итыпы
Анонимус 11.11.2010 18:42 # 0
сравните
и
что проще?
Lure Of Chaos 11.11.2010 19:18 # 0
Зато в жабке даже с этим хелловорлдом, отпадают неясности типа: где виден код, куда напечатает, что придет на вход.
Основы основ лучше обьяснить ребенку сразу -- мы же не хотим вырастить очередного кодобабуина, пусть попыхтит, посоображает, поусваивает побольше
da4ever 13.11.2010 23:42 # 0
после этого человек обретет просветление и отправится доживать свой век в бутане.
вобщем не надо ему больше пехапить.
xXx_totalwar 11.11.2010 18:54 # +4
Lure Of Chaos 11.11.2010 19:20 # 0
xXx_totalwar 11.11.2010 19:23 # 0
функциональщина и только она.
Lure Of Chaos 11.11.2010 19:41 # 0
файл -> класс
глобальная переменная -> поле класса
процедура -> метод
xXx_totalwar 11.11.2010 19:49 # 0
xXx_totalwar 11.11.2010 18:51 # +2
http://local.joelonsoftware.com/mediawiki/index.php/Опасности_обучения_на_Java например
Lure Of Chaos 11.11.2010 19:32 # 0
а меж тем, я полагал, что паскаль и васик устарели и полны других ложных "проблем", которые в жабке как раз отсутствуют
xXx_totalwar 11.11.2010 19:38 # 0
Lure Of Chaos 11.11.2010 19:45 # 0
xXx_totalwar 11.11.2010 19:54 # 0
istem 11.11.2010 22:32 # 0
Lure Of Chaos 11.11.2010 23:39 # 0
istem 12.11.2010 10:03 # 0
Вобщем начинать нужно сверху, а не снизу как сейчас принято.
--
(имхо)
Анонимус 12.11.2010 18:35 # −2
Один день про красно-черные деревья. Второй -- про паттерн visitor.
и ребенок конечно поймет и полюбит программирование)))
начинать надо с того, что бы ребенок как можно скорее написал игру "угадай число".
тогда ему станет интересно
и вот после десятой игры "угадай число" он начнет понимать чем плох копипаст и глобальные переменные
тогда можно двигаца дальше
потом по-тихоньку рассказывать про ООП, потом -- про алгоритмы, потом пересаживать на другие языки.
нельзя учить УМЛю пока человек не понял ЗАЧЕМ он ему нужен
xXx_totalwar 12.11.2010 18:56 # 0
ну а ооп перед алгоритмами - 'дожили..' называется.
на работе классики в умл рисовать вместо решения прикладных задач?
матчасть первична, а не оопы/паттерны/хуяттерны
Анонимус 12.11.2010 19:03 # 0
Правда, я бы разделил их на две части: основные (не сложнее бинарного поиска и сортировки пузырьком) и сложные (уровня Кнута))).
Вот первые бы я учил до ООП, а вторые можно и параллельно.
Впрочем, если не хочется ООП -- можно заменить его на нормальное программирование на сях (модульное, а не все-в-кучу).
Так уж сложилось, что современный программер больше времени проводит над высокоуровневой архитектурой, чем над реализацией известных алгоритмов, которые есть в библиотеках.
Но знать си, и уметь делать quicksort конечно каждый должен уметь.
bugmenot 12.11.2010 19:22 # 0
"Наука", "Мир"
xXx_totalwar 12.11.2010 19:25 # −2
а что эти выблевы за книги стали считать?
Анонимус 12.11.2010 19:29 # −1
xXx_totalwar 12.11.2010 19:30 # 0
Анонимус 12.11.2010 19:33 # −1
xXx_totalwar 12.11.2010 19:35 # 0
Анонимус 12.11.2010 19:36 # −1
xXx_totalwar 12.11.2010 19:41 # 0
но в лиспах никогда не был принят чистый стиль, точнее он там вреден
bugmenot 12.11.2010 19:38 # 0
bugmenot 12.11.2010 19:20 # 0
а потом, факультативно, рассказать про алгебру, ага =)
Анонимус 12.11.2010 19:27 # −2
нет?
bugmenot 12.11.2010 20:00 # +1
ваши ученики, тов. луначарский?
Анонимус 12.11.2010 20:04 # 0
кстати, я видел написанный макакой билд-скрипт. Это был ant файл (build.xml) на 8000 строк примерно, смоченный ant-contribовыми ветвлениями
это был ад
bugmenot 12.11.2010 20:14 # 0
там не макаки, а шимпанзе. я в свое время не потрудился сохранить, а позже возник инцидент с баттхертом сотрудников и эта реклама была выпилена
Анонимус 12.11.2010 20:32 # 0
и правда шимпанзе.
а сотрудников я понимаю: билд-коммандам неприятно поди
bugmenot 12.11.2010 21:11 # 0
istem 12.11.2010 20:09 # 0
Хорошая практика - "Как бы ты реализовал такой-то и такой-то алгоритм"... Пока самостоятельно не выявишь все плюсы, дефекты и нюансы - ни черта толком не поймёшь...
Теория - оно, конечно круто, но без практики - это пустое.
istem 12.11.2010 20:37 # 0
--
бек-энд современного интернета...
Анонимус 12.11.2010 21:06 # 0
но java все таки не самый худший вариант (там хотя бы надо понимать что такое куча и стек, и знать основные структуры данных).
вот если бы их учили на VBS или PHP -- был бы ад)