Сегодня натолкнулся на интересный метов комментирования кода. Этот способ значительно ускоряет разработку. Описывать смысла нет, лучше я покажу на примере.
Допустим есть конфиг для базы данных. Почти всегода в конфиге указано несколько баз данных — «боевая», которая находится на сервере и локальная. И в конфиге приходится постоянно менять доступы к базе данных. Что бы ускорить этот процесс, можно сделать так:
Читать далее «Переключаемые комментарии в коде»
Месяц: Февраль 2013
Мелочи 1. Создание, обновление и удаление записи в SQL
Я решил написать несколько маленьких статей, в которых хочу описать элементарные действия с базой данных.
Создание новой записи в таблице:
INSERT INTO `test_table` (`field_1`, `field_1`) VALUES ('текст в первое поле', 'второе поле');
В этой строке test_table является названием таблицы, в которую будет добавлена запись. field_1 и field_2 — это поля, который будут заполнены.
Читать далее «Мелочи 1. Создание, обновление и удаление записи в SQL»
Установка Favicon на сайт
Favicon — иконка сайта. Размер может быть 16х16 или 32х32 пикселей. Favicon должен иметь формат .ico.
Устанавливается он очень просто, в одну строку, которую нужно добавить в
<link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
В некоторых источниках написано, что favicon.ico должен находится в корне сайта, не знаю на сколько это верно, у меня работает из любой папки. Еще может случиться так, что favicon не отображается, это из-за кеша браузера, нужно просто почистить кеш.
Сессии в IFrame-приложениях в Internet Explorer
Сегодня столкнулся с проблемой: в одном из моих IFrame-приложении в ВК в Internet Explorer не работает авторизация. Данные о юзере записываются в сессию, а Internet Explorer категорически отказывается работать с сессией в фрейме. Поискав в интернете, я нашел информацию о том, что IE просто отказывается читать сессионные куки из фреймов. Читать далее «Сессии в IFrame-приложениях в Internet Explorer»
Авторизация/регистрация пользователя в IFrame-приложениях ВКонтакте
Сегодня я начал разработку нового приложения для ВК. И начал с реализации авторизации пользователя. Хотя это мое уже не первое приложение я постоянно делаю авторизацию заново. И я решил сделать функцию авторизации, которую можно будет использовать в последующих приложениях.
Эта функция очень простая, но лвсе же проще использовать готовое чем постоянно писать одно и тоже.
Функция при запуске приложения получет id пользователя от ВК из get запроса и записывает в сессию(потом из сессии всегда можно быстро получить id), потом проверяет наличие юзера в базе данных, если пользователь новый, то делаем в бд запись о нем.
Читать далее «Авторизация/регистрация пользователя в IFrame-приложениях ВКонтакте»
phpMyAdmin. Отсутствие активности более 1440 секунд
Скорее всего, все кто занимается web-разработкой, сталкивались с phpMyAdmin. И у всех кто с ним работал, было такое, что phpMyAdmin открыт в одной вкладке, а Вы занимаетесь своим делом и спустя какое-то время возвращаетесь к phpMyAdmin, а там вас ждет такая надпись: «Отсутствие активности более 1440 секунд, пожалуйста, авторизуйтесь заново». Это жутко раздражает, но как это побороть до поры до времени я не знал. Но сегодня наткнулся в интернете на решение, оно очень простое. Нужно добавить в конфиг(config.inc.php) phpMyAdmin всего одну строку:
$cfg['LoginCookieValidity'] = 86400; // на сутки
Эта строка дает возможность не разлогиниваться в phpMyAdmin в течении простоя длиною в сутки.
Укорачивание урла с помощью API TinyUrl.com
Сегодня натолкнулся на «классную» функцию, которая умеет работать с API сайта tinyurl.com
Функция простая и короткая, но все же может пригодиться. Вот исходник:
function getTinyUrl($url) { return file_get_contents("http://tinyurl.com/api-create.php?url=".urlencode(trim($url))); }
Сравнение двух дат вида «Y-m-d H:i»
Функция для сравнения двух дат вида «Y-m-d H:i».
После вызова функция вернет 1 или 2 в зависимости от, того какая дата больше.
Все просто, сначала приводим дату и время к Unix виду, а потом сравниваем.
//сравнение двух дат типа: "Y-m-d H:i" function compareDateTime($date1, $date2){ //$date1 = "2013-02-21 12:59"; //$date2 = "2013-02-21 16:59"; $arr1 = explode(" ", $date1); $arr2 = explode(" ", $date2); $arrdate1 = explode("-", $arr1[0]); $arrdate2 = explode("-", $arr2[0]); $arrtime1 = explode(":", $arr1[1]); $arrtime2 = explode(":", $arr2[1]); $timestamp2 = (mktime($arrtime2[0], $arrtime2[1], 0, $arrdate2[1], $arrdate2[2], $arrdate2[0])); $timestamp1 = (mktime($arrtime1[0], $arrtime1[1], 0, $arrdate1[1], $arrdate1[2], $arrdate1[0])); if($timestamp1>$timestamp2){ return 1; }else{ return 2; } }
Дата ближайшего прошедшего понедельника
Сегодня в процессе работы, я столкнулся с необходимостью узнать дату ближайшего прошедшего понедельника. Вспомнив сколько раз мне уже это приходилось делать, я решил написать функцию и выложить ее сюда, возможно кому-нибудь пригодится. Если сегодня понедельник, то функция вернет сегодняшнюю дату:
function getPrevMonday(){ $result = false; for ($i=0; $i<=7; $i++) { if (date('w',strtotime('-'.$i.' day'))==1) { $result = date('Y-m-d',strtotime('-'.$i.' day')); break; } } return $result; }
Покупка в ВК в IFrame-приложениях
В этой статье я расскажу, как сделать оплату в Ваших IFrame-приложениях в ВКонтакте.
Все предельно просто, нужно сделать какую-нибудь внутреннюю валюту для Вашего приложения и продавать ее за голоса. Я назвал свою валюту просто — «монетки». Когда определились с своей валютой, нужно реализовать ее покупку. Для удобства разработки ВК сделали два режима оплаты: тестовая и «боевая». Тестовый режим доступен сразу после создания приложения, а рабочий, только после прохождения модерации.
Начнем писать код. В первую очередь нужно написать callback.php — этот скрипт указывается в приложении(во вкладке «Платежи») для обратного вызова. Callback.php — будет обрабатывать запросы от ВК, и отдавать информацию о нашем товаре(монетках) и обрабатывать статус заказа. В приведенном ниже коде все понятно, где нужно я написал комментарии. В коде я обращался к базе данных через модели, но Вы можете переписать под себя.
Читать далее «Покупка в ВК в IFrame-приложениях»