Список сообщений Станислав Крунич

Вопрос-Ответ по ООП PHP
Im-ieee (24 Сентября 2012 / 08:46)
Можно как-нибудь так: protected static $obj = new vasija(); ... $obj->person
Нельзя! 3-ой Уг )) ! Во первых это ошибка синтаксиса. а именно, присвоение класса в свойстве за приделами метода, во вторых он protected а ты определил его без наследования. а в третьих ты вызвал его не как static, а как все свойства которые начинаются на P ))))…
Написал: Станислав Крунич
Переменная плюс запрос
Твой запрос DELETE FROM `lol_bilet1` чистит таблицу. Соответственно, в ней будет пусто при следующей выборке. Причем сдесь error_reporting? Ошибка в действии пользователя
Написал: Станислав Крунич
Вопрос-Ответ по php
saiy.ru/ru/ <- STOP больше не будет линков, это не папочная структура, это виртуальная структура реврайта. Если робот перейдет на /ru/razdel он фактически будет в /radel/
Написал: Станислав Крунич
Вопрос-Ответ по php
Почему ?
Написал: Станислав Крунич
Вопрос-Ответ по php
PS. Это Zend 2 . но легко переделать под себя и будет у вас теперь универсальный LocalSetup.

О , Боже, кто администратор этого убожества ? Почему я раскладываю свое сообщение на 3!!!! Куска !!! И каждый раз пишет что надо ждать 60 сек! Вы че блин ? Как в танке сидите )) Я же зарегистрировался тут , почему не имею права писать сообщения.. Ужс, 19 век
Написал: Станислав Крунич
Вопрос-Ответ по php
if(isset($shortLang) && preg_match("/[a-z]{2}?/i", $shortLang)) // если нашли в URL
{
if(isset($config['languages'][$shortLang]))
{
// Устанавливаю локаль и куки на 1 мес
$translator->setLocale($config['languages'][$shortLang]['locale']);
setcookie('lang', $shortLang, time()+2878400, '/', $e->getRequest()->getServer('HTTP_HOST'));
$e->getViewModel()->setVariables(array('lang' => $shortLang)); // устанавливаю в layout
}
}
else // если не нашли в URL, читаем сначала из кук
{
if(isset($cookies['lang']) && preg_match("/[a-z]{2}?/", strtolower($cookies['lang'])))
{
if(isset($config['languages'][$cookies['lang']]['locale'])) {
$translator->setLocale($config['languages'][$cookies['lang']]['locale']);
$e->getViewModel()->setVariables(array('lang' => $cookies['lang'])); // устанавливаю в layout
}
else {
$translator->setLocale($config['languages'][$acceptLang]['locale']);
$e->getViewModel()->setVariables(array('lang' => $acceptLang)); // устанавливаю в layout
}
}
else
{
$translator->setLocale($config['languages'][$acceptLang]['locale']); // ставлю из браузера
$e->getViewModel()->setVariables(array('lang' => $acceptLang)); // устанавливаю в layout
}
}
}

Добавлено через 01:07 сек.
Вызываю так
[php]
/**
* onBootstrap(MvcEvent $e) Этот метод слушатель (listeners) события bootstrap
* в рамках событийной модели ZF2
* инкапсулятор различных палагинов (сервисов) при автозагрузке
* @access public
* @param \Zend\Mvc\MvcEvent $e
* @return object
*/
public function onBootstrap(MvcEvent $e)
{
$app = $e->getApplication(); // Наше приложение
$sm = $app->getServiceManager(); // Сервис менеджер
$e = $app->getEventManager(); // Менеджер событий

$e->attach(MvcEvent:E VENT_ROUTE, array($this, 'initLocale'), 1); // локаль
}
[/php]
Написал: Станислав Крунич
Вопрос-Ответ по php
У себя так всегда определял.. Вариант универсальный
На сайте есть например 3 языка (RUS | EN | UA )

При первом заходе на сайт, определение берется из HTTP_ACCEPT_ENCODING, или же если в url была ссылка по шаблону /(ua|ru|en) он подключает язык из моего конфига далее все это записывает в Cookies и уже при следующем обновлении страницы берет из Cookies . Сменить в Cookies другую локализацию, можно перейдя по ссылкам на сайте /(ua|ru|en) и он снова перезапишет локаль

Добавлено через 01:10 сек.
/**
* initLocale(MvcEvent $e) метод установки локализации сайта
* по URL , запись в кукис или сессию (по defaul из HTTP_ACCEPT_LANGUAGE )
* @param \Zend\Mvc\MvcEvent $e
* @access public
* @return null
*/
public function initLocale(MvcEvent $e)
{
$app = $e->getApplication(); // приложение

//$response = $e->getRequest()->getHeaders()->get('Accept-Language')->getPrioritized();
$acceptLocale = \Locale::acceptFromHttp($e->getRequest()->getServer('HTTP_ACCEPT_LANGUAGE'));
$acceptLang = substr(strtolower($acceptLocale), 0, 2);
$translator = $app->getServiceManager()->get('MvcTranslator'); // получаем объект translator'a
$cookies = $app->getRequest()->getCookie(); // достаю куки
$shortLang = $e->getRouteMatch()->getParam('lang'); // ищу в url &lang=??
$config = $app->getServiceManager()->get('Config'); // достаю настройки
$translator->setCache($this->__setCacheStorage(1)); // кэширую локаль
Написал: Станислав Крунич
Инъекция исполняемого кода
Вы еще такое пишете ? За это не нужно в скором времени будет беспокоиться..
Инъекции в скриптах были опасны 5 лет назад...
Сейчас PHP 5.5 C версии 5.3 используйте sp_register_autoload() и namespaces!
И никогда не волнуйтесь по поводу include , require.
SQL тоже самое ,PDO и подготовленные выражения как замена intval() и mysql_real_esc ...как там там дальше , забыл )).
А такие функции , как eval(), exec(), system() по умолчанию всегда отключены.. Буря в стакане
Написал: Станислав Крунич