AJAX – быстрый старт для новичков!

Автор: admin  /  Рубрика: cms, PHP

Попробую быстро и наглядно показать как и где использовать технологию AJAX.

Для начала коротко расскажу про аякс: это полусерверный, полуклиентский язык, а точнее асинхронный. Часть его выполняется на клиенте, часть на сервере, в итоге без перезагрузки страницы мы можем обновлять информацию на сайте, например подгружая ее из базы данных mySQL, причем даже с другого сервера!

Как это работает спросите?

Чтобы получить данные на сервере, XMLHttpRequest предоставляет два метода:

  • open – создает соединение
  • send – отправляет запрос на сервер

Данные возвращенные сервером извлекаем из атрибутов объекта XMLHttpRequest:

  • ResponseXml для файлов XML
  • ResponseText для обычного текста.

Важно: объект XMLHttpRequest долен быть создан для каждого нового файла для загрузки!!

Чтобы узнать о процессе извлечения и загрузки данных с сервера существует атрибут readyState объекта XMLHttpRequest, который возвращает следущие параметры от 0 до 4, причем нам важен только последний:

 0: не инициализирован.
 1: связь.
 2: запрос получен.
 3: ответ в процессе.
 4: закончено.

Рассмотрим подробнее атрибуты Объекта XMLHttpRequest:

readyState Код последовательно изменяет свое значение от 0 до 4, где 4 означает “готов”.
status 200 нормально,   404 – страница не найдена.
responseText содержит загруженные данные в виде строки символов.
responseXml содержит загруженные данные в виде файла XML
onreadystatechange обычно принимает в качестве значения функцию, когда readystatechange событие будет запущено.

ну и собственно методы:

open (mode, url, boolean)  mode: тип запроса, GET или POST
url:  расположение файла, вместе с путем.
boolean: true (асинхронный) / false (синхронный).
опционально:    Логин и пароль могут быть добавлены к аргументам.
send (“string”)  null  для метода GET.

Ну а теперь приведем пример:    (ну наконецто :) ))

 if (window.XMLHttpRequest) // Объект текущего окна
{
   xhr = new XMLHttpRequest(); // Firefox, Safari, ...
}
elseif (window.ActiveXObject)  // ActiveX версия
 {
   xhr = new ActiveXObject("Microsoft.XMLHTTP");  Internet Explorer
 }

инициировали, теперь ждем ответа

if (xhr.readyState == 4)
{
   // Received, OK
} else
{
  // Wait...
}

ну а дальше отправляем запрос:

xhr.open('GET', 'http://www.symple.ru/sitemap.xml', true);
xhr.send(null);

Все пример сразу и с HTML кодом:

<html>
<head>
<script>
function submitForm()
{
    var xhr;
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e)
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2)
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }

    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
                  document.ajax.dyn="Received:"  + xhr.responseText;
              else
                 document.ajax.dyn="Error code " + xhr.status;
         }
    }; 

   xhr.open(GET, "data.txt",  true);
   xhr.send(null);
}
</script>
</head>

<body>
    <FORM method="POST" name="ajax" action="">
         <INPUT type="BUTTON" value="отправить"  ONCLICK="submitForm()">
         <INPUT type="text" name="dyn"  value="">
    </FORM>
 </body>
 </html>

скачать ПРИМЕР можно здесь:  demo-symple.ru-ajax-post

жду комментариев!

Все о прокси

Автор: admin  /  Рубрика: PHP

Думаю что каждый хоть раз слышал раз слово прокси, но большинство даже не задумывалось что это такае и зачем они. Для начала рассмотрим их основные виды  прокси или proxy серверов, потомучто их довольно много.  Ну а общее предназначение всех прокси – скрыть свой реальное пребывание в интернете или на сайте, то есть сменить ip адрес.
Первый вид: HTTP proxy

Самый популярный вид прокси сервера, работает по протоколу HTTP.  В свою очередь подразделяются по анонимности:

  • прозрачные (transparent) – эти proxy не анонимные. Они во-первых дают знать, что используется proxy-сервер, а во-вторых “выдают” IP-адрес своего клиента. Они кэшируют информацию  и / или обеспечивают выход в Internet нескольких компьютеров через одно соединение.
  • анонимные - они показывают, что используется ПРОКСИ, однако не выдают IP-адрес пользователя.
  • искажающие - среднее между элитными и анонимными проксями.
  • реально анонимные (элитные) – не показывают реальный ip адрес и  они даже не сообщают о том, что используется proxy сервер. То есть web-сервер “считает”, что он работает непосредственно с клиентом – а клиентом для него является proxy. Такой вид прокси самый востребованный и естественно идеально подходит для скрывания своего настоящего ip адреса.

Списки прокси серверов легко можно найти на соответствующих сайтах, достаточно воспользоваться яндексом или гуглом. Так же сбор списков можно автоматизировать, для эгото существует достаточное количество софта., который заодно их проверяет на работоспособность.
Второй вид: HTTPS proxy

Они делают тоже самое что обычные http прокси и плюс к этому поддерживают шифрование по протоколу SSL. Такие прокси редкость и в паблике обычно их нет. Их используют для работы с сайтами которые работают с по протоколу HTTPS  – это различные платежные системы, почта у гугла и т д.
Третий вид: SOCKS proxy

Данный вид прокси умеет работать по следующим протоколам: (версия SOCKS4(a) – только TCP/IP, SOCKS5 – TCP/IP + UDP + авторизация + удаленный DNS-запрос).

Использование прокси для парсинга сайтов:

реализация на php с помощью CURL

$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEFILE, ‘cook.txt’);
curl_setopt($curl, CURLOPT_COOKIEJAR, ‘cook.txt’);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_REFERER, ‘http://www.google.ru/’);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, ‘Opera 9′);
сurl_setopt ($curl, CURLOPT_PROXY, $proxy );
$response = curl_exec($curl);
curl_close($curl);

cURL – быстрый старт для новичков

Автор: admin  /  Рубрика: PHP

Для начала разберемся что такое CURL и с чем его едят.
CURL – очень удобная библиотека в основном используют для эмуляции браузера и автоматического заполнения форм, хотя сфера его применения безгранична.
Чтобы установить curl необходимо скачать его с офсайта и следовать инструкциям, для Денвера еще проще, скачиваем пакет расширений и он сам все настроит.
сорри, времени нет, сегодня вечером допишу…

Создание ЦПУ – наглядно и на примерах для новичков

Автор: admin  /  Рубрика: PHP, SEO

Для начала разберемся что такое ЧПУ и зачем они.
ЧПУ – расшифровывается как Человеко Понятные Урлы. Например url вида www.mysite.ru/news/2010/ смотрится куда приятнее, короче и нагляднее чем www.mysite.ru/index.php?page=news&year=2010. Собственно я думаю вы уже поняли зачем нам ЧПУ, во-первых для удобства вашим пользователям, во вторых для поисковых систем таких как яндекс и гугл, такие страницы они лучше проиндексируют.

Теперь перейдем к практике как это действует и работает на сервере:

когда мы вводим адрес www.mysite.ru/news/2010/ сервер переделывает его в www.mysite.ru/index.php?page=news&year=2010, но незаметно для пользователя, при этом пользователь остается на первой странице, а скриптам передаются все необходимые параметры.
Всю данную работу выполняет не сам сервер (в частности Apache) а его модуль Mod_Rewrite.
чтобы преобразовывать ссылки нам необходимо в корне сайта разместить файл .htaccess и прописать в нем следующее


RewriteEngine On
RewriteRule news.html news.php

Первая строка включает наш модуль
Вторая строка задает правило в котором говорится что страницу news.html нужно преобразовать в страницу news.php

Это самый простой пример что я мог придумать, думаю в нем сложно запутаться.
Если что-то не получилось читаем все заново и пробуем, пробуем….
Аналогично для преобразования нескольких ссылок:

RewriteEngine On
RewriteRule news.html news.php
RewriteRule stati.html stati.php
RewriteRule catalog.html catalog.php

Более сложные условия преобразования мы рассмотрим в следующих выпусках
Быстрый старт mod_rewrite думаю получился

Кодировки – все что нужно знать

Автор: admin  /  Рубрика: HTML, CSS и веб-дизайн, PHP

В данной статье мы поговорим о том с какими кодировками все еще встречаются веб-мастера при создании сайтов.
Для начала напишу что на 2010 год веб-мастерам нужно знать только одну кодировкуUTF-8 (юникод). Данная кодировка поддерживает все языки мира и практически не имеет недостатков на сегодняшний день. Так все же какие недостатки остались, а точнее один недостаток: файлы сохраненные в юникоде utf-8 весят чуть больше чем файлы в однобайтовых кодировках, но поскольку эта разница не велика, да и текстовые файлы весят мало, то этот недуг трудно назвать недостатком.

Теперь собственно разберемся как сохранять наши html или php файлы в данной кодировке. Для начала скачаем PsPad – это текстовый редактор, который умеет работать с юникодом и прекрасно сохраняет его, для этого жмем формат-utf8. и сохраняем. Проще некуда.
О других кодировках поговорим в других выпусках.