Архив метки: PHP

deb-пакеты php5.5 и php5.3 под Debian Wheezy

Для одного клиента потребовалось обеспечить возможность переключения версии PHP для различных сайтов в панельке ISPConfig. На сервере установлен Debian Wheezy, в котором есть только PHP5.4.
Поэтому я скачал исходники PHP5.3 и PHP5.5 с сайта PHP: http://php.net/downloads.php, скомпилировал их и собрал из них простенькие deb-пакеты. Они включают в себя стандартный набор расширений и предоставляют бинарники для командной строки, cgi и php-fpm.
Выложил на github, вдруг кому-нибудь надо, чтоб быстро и работало:
https://github.com/scukonick/phpdeb

Можно спокойно устанавливать паралелльно дефолтному PHP, т.к. используются разные директории для установки.

Автор: AlexWinner

PHP MongoDB — получаем _id только что созданной записи (MongoID)

Ситуация: мы хотим получить _id только что созданной нами записи. То есть, например, мы создали юзера и хотим знать айдишник, который MongoDB присвоила ему. Делается это очень просто:
Добавляем элемент:

$x = array(‘foo’ => ‘bar’);
$c->insert($x); 

Проверяем внутренности $x:

var_dump($x);
array(2) {
  [«_id»]=>
  object(MongoId)#2 (0) {
  }
  [«foo»]
  string(7) «bar» 

 

} 

Таким образом, для того, чтобы узнать _id, достаточно вывести $x[‘_id’]

Автор: AlexWinner

PHP: Защита процесса авторизации от SQL-инъекций

Раньше, при разработки сайтов, никогда особо не акцентировал свое внимание на защиту от т.з. «SQL-инъекций». Что это такое думаю много говорить не стоит, просто процитирую, что об этом пишут на сайте php.net:

Принудительное внедрение вредоносных инструкций в SQL-запросы — методика, в которой взломщик создает или изменяет текущие SQL-запросы для работы со скрытыми данными, их изменения или даже выполнения опасных команд операционной системы на сервере базы данных. Атака выполняется на базе приложения, строящего SQL-запросы из пользовательского ввода и статических переменных.

Читать →

PHP: Проверка URL-адреса

Задача: необходимо проверить на валидность и существование URL, который отправляется пользователем через форму на сайте.

Для решения этой задачи написал простую функцию проверки, которую собственно и привожу ниже:
Читать →