break
сеп 29

През изминалата седмица бял свят видя последния ми проект: Портал за недвижими имоти. В работа, по този проект за имоти, преминаха последните два месеца. За реализацията му използвах CakePHP. Тази среда за разработка ми улесни много работата, май това е единствената среда, която може да ме накара да пиша на PHP. От техническа гледна точка, написването на този портал за имоти не представляваше особена трудност, но определено беше забавно :) .
От към функционалности се стремяхме да задоволим повечето желания на агенциите за имоти. Порталът предлага свободна регистрация за всички. Поддържат се два типа потребители: агенции (за имоти) и частни лица. Съответно двата типа потребители имат различни опции в портала. На агенциите се предоставя възможност да публикуват неограничен брой обяви за имоти, а също така и напълно безплатно 15 ВИП обяви. Всяка агенция има също два типа потребители, които могат да ползват регистрацията и. Мениджър на агенция и агент на агенцията. Мениджърът има права да променя профила на агенцията, да добавя и изтрива агенти и да контролира обявите на агентите. Също така мениджъра има достъп до статистическа информация за всички обяви на агенцията. В статистиката могат да се провери съотношението на активни и неактивни обяви в портала като цяло, кой агент, колко обяви има и колко от тях са активни. Също така се предлага информация за това коя обява, колко пъти е била преглеждана. За визуализиране на графиките използвах Open Flash Chart, работата с тази библиотека е лесна, благодарение на съществуващия ‘helper’ за CakePHP. Агентите също имат достъп до статистика, но само за своите обяви.
Втория тип потребител ‘частно лице’, има сходни правомощия като агента, само където не е част от някоя агенция.
Въпреки че порталът е нов проект, той се явява наследник на други два сайта за имоти: http://imoti.obiavi.biz и http://359estates.com. Надявам се подобрената визия и новите функционалности да се харесат на потребителите и да използват напълно безплатния портал за имоти.

сеп 23

Днес станах свидетел на много сериозен бъг в социалната мрежа svejo.net. Разглеждайки днешните новите незнайно как се оказах логнат в друг профил. За известно време бях Цветан Бакърджиев (metzo). Имах пълен достъп до профила му и можех да го променям. Драги ми „свежари“, подобен бъг е недопостим! Моля ви прегледайте си кода за логване на потребителите и запазването на сесиите. ПОдобни дупки в сигурността могат да ви навлекат сериозни проблеми. За успокоение на гореспоменатия Цветан Бакърджиев (metzo) – не съм променял профила му. (Всъщност промених му полето ‘с какво се занимавате’, за тестови цели и после го върнах на старото му положение.)
И така да се върнем отново на въпроса за сигурността – Абе вие ИДИОТИ ЛИ СТЕ????? Да не се повтаря повече.
На мен лично ми е супер неприятно това че някои може да ми влезе в акаунта, без дори да се опитва да направи това.
Ако не можете да се справите с проблема със сигурността с радост ще ви помогна ;)
За да не съм голословен прилагам два скрииншота:
В профила
и Променения профил

Искам да се извиня на засегната страна в случая Цветан Бакърджиев (metzo), не сам искал по никакъв начин, и се стараех да не му причиня вреда по време на нежелания от мен престой в неговия профил. Ако има нещо извинявай.

сеп 20

В последно време все повече се убеждавам че тези две понятия са неразривно свързани. Последното събитие което пак ме изуми е обработката на снимки в този език. За обработка на снимки се използват готови функции, примерно: imagegif, imagejpeg, imagepng. Като резултат се връща снимка в съответния формат. На тези функции може да се даде коефициент за качество. В PHP 4 за всяка се използва скалата от 0 до 100. До тук всичко е добре. Но в PHP 5 се решава, че това за всички функции да се използва една скала е лошо нещо. За да се разнообрази живота на програмистите се решава imagepng да използва скала от 0 до 9. Подобни хитрости, заради които се налага да губя доста време, докато намеря къде точно е проблема, са на път тотално да ме откажат от този език.
Маи е време да послушам съвета на един приятел и да мина на RoR.

сеп 6

За един проект ми се наложи да транслитерирам url-та. За целта използвах този версия на транслитерация от кирилица на латиница: как се транслитерира в Google. За осъществване на самата транслитерация използвам ето тази функция:

function transliteration ($string) {
$table = array(
'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d',
'е'=>'e', 'ж'=>'j', 'з'=>'z', 'и'=>'i', 'й'=>'y',
'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o',
'п'=>'p', 'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u',
'ф'=>'f', 'х'=>'h', 'ц'=>'c', 'ч'=>'ch', 'ш'=>'sh',
'щ'=>'sht', 'ъ'=>'a', 'ь'=>'', 'ю'=>'yu', 'я'=>'ya',
);

return strtr($string, $table);
}

Ако на някои му се стори полезно, да не се притеснява, а да почерпи по бира ;)