Генерация XML файла средствами PHP

Генерация XML файла средствами PHP Добрый вечер! Сегодня я расскажу, как генерировать XML файл с данными с помощью PHP на примере специального  xml-файла в формате YMapsML. YMapsML — это формат файла с географическими данными, используюемый API Яндекс.Карт. В виде такого файла очень удобно передавать данные в Яндекс Карты, а если данные зависят от какого-либо параметра, то генерация такого файла с нужным набором данных Вам просто необходима.

Читать полностью

Постраничный вывод записей из БД

Постраничный вывод записей из БД Невозможно представить себе сайт (не визитную карточку) с большим количеством информации и чтобы вся эта информация хранилась в виде отдельных статических страниц, а не выводилась из базы данных динамическим образом. Однако, бывает что необходимо вывести большое количество записей, но в таком случае страница становиться очееень большой в высоту, что как минимум неудобно.

Данную проблему решить очень просто — необходимо всего лишь сделать постраничный вывод записей, например, по 20 записей на страницу. Как это сделать — об этом я и хочу вам сейчас рассказать.

Предположим: нам надо вывести из таблицы «news» все записи, разбив их на страницы по 20 новостей на каждой, если это потребуется.

Будем считать, что подключение к базе мы уже организовали, поэтому я напишу лишь скрипт постраничного вывода и разбиения на страницы, не описывая момент подключение и отсоединения от базы данных.По просьбе трудящихся я затрону момент подключения и отключения от базы данных.

Добавлено: Итак, начнём с подключения к базе данных, ведь именно с ней мы и будем работать в дальнейшем.

$link=mysql_connect("localhost","user","password"); // Подключаемся к серверу БД расположенном по адресу localhost используя логин user и пароль password.
mysql_select_db("dbname"); // Подключаемся к базе данных с именем "dbname"

Читать полностью

Что использовать: Session против Cookie

PHP: Когда надо использовать куки, а когда сессии. Важнейшей особенностью веб-программирования является возможность беспрепятственно передавать данные от одной страницы к другой. Чаще всего этой возможностью пользуются для передачи логинов пользователей, сообщений об ошибке, содержимого «тележек» в интернет-магазинах и т.д.

Что «сохранить» данные на странице, необходимо использовать следующие глобальные переменных: $_COOKIE или $_SESSION. Однако, не смотря на то, что в итоге вы достигните одну и ту же цель, эти переменные необходимо использовать только в определённых случаях. Целью данной статьи я ставлю задачу — дать краткий обзор различий Session (далее «сессии») и Cookie (далее «печеньки». Не надо говорить что я переводил промтом, мне просто действительно нравиться называть их «печеньками»), рассказать, когда надо использовать одно, а когда другое, а также рассказать об их «плюсах» и «минусах».

Их разница заключается лишь в способе хранения данных: Печеньки хранят данные в браузере пользователя, а Сессии на стороне сервера.

Основы сессий (кратко)

В двух словах, сессии — это механизм, который позволяет однозначно идентифицировать клиент (браузер) пользователя и созданный для этого клиента файл на стороне сервера, в котором будут храниться необходимые данные.

Плюсы сессий

  1. Легко можно хранить большие объёмы данных
  2. При каждой загрузке страницы, на сервер передаётся только ссылка на сессию, что позволяет экономить трафик, в отличии от «печенек», которые передают всю информацию.
  3. Данные храняться на веб-сервере, что делает сессии безопасными потому, что они не могут быть изменены или просмотрены на стороне клиента.

Минусы сессий

  1. Сессии прекращают свою жизнь при закрытии браузера или по истечению некоторого количества времени. Однако, срок жизни сессии можно изменить используя файл настроек — php.ini. Там же, вы можете сделать сессии вечными.

Основы «печенек»

«Печеньки» отправляются на сервер каждый раз, когда вы загружаете страницу. После создания «печеньки» ей задаётся срок жизни. По истечению этого срока — «печенька» прекращает своё существование.

Плюсы

  1. «Печенька» может существовать настолько долго, на сколько это необходимо сайту. Она будет существовать даже в том случае, если вы закроете и вновь отроете браузер.
  2. Позволяют использовать формы аля «входить автоматически».
  3. Можно хранить временную информацию,  различные пользовательские настройки, например, если пользователь просматривает список отсортированный особенном образом, то можно запомнить тип сортировки и использовать его автоматически для всех списков, просматриваемых этим пользователем.

Минусы

  1. Храняться на пользовательском компьютере, а следовательно, пользователь может просмотреть или изменить их.
  2. Можно хранить информацию, не превышающую определённого размера.
  3. Большее количество информации должно уйти на сервер, что требует больше трафика.

Использование печенек на практике

Создание печеньки.

Определение функции: bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Создание печеньки

<?php
    if (!isset($_COOKIE['Ordering'])) {
        setcookie("Ordering", $_POST['ChangeOrdering'], time() + 31536000);
    }
?>

Читать полностью

Свежие данные о курсах валют у вас на сайте

Свежие данные о курсах валют у вас на сайте Недавно закончил работу над одним из веб-сервисов. Во время разработке у меня появилась необходимость всегда иметь на сайте информацию о курсах валют на сегодняшний день. Соответственно, вариант ежедневного обновления руками — сразу отпал. Вдруг, я заболею, не будет интернета, забуду обновить, буду всю ночь гулять и проснусь только в 17 часов, а информация о курсах валюты должна быть свежая всегда. Первая мысль была таковой — найти в сети ресурс, где необходимая мне информация всегда «свежая», написать простой грабер и грабить необходимые данные. Но потом я вспомнил о такой очень хорошей вещи для веб-мастеров, как API и «отправился на поиски». Немного поискав я нашёл подходящий мне вариант — скрипт отдающий информацию о курсах практически всех валют в xml. Для начала мне нужны были курсы валют в рублях — для этой цели мне прекрасно подошёл API предоставляемый Центральным Банком Российской Федерации. На сайте всё прекрасно расписано: как работать с данными, какие управлять необходимыми данными, даже есть скрипт для работы с их xml-данными. Немного отредактировав скрипт, я получал необходимую мне информацию не в виде картинки, как это делает скрипт, а в виде массива хранящегося в php-сессии.

Читать полностью