Все публикации
Защита PHP скриптов от копирования +10
Безопасность
Бывает так, что вам неохота предоставлять исходные коды проектов, которые вы разрабатывали. Для этого можно использовать программы-обфускаторы, о которых недавно шла речь.
А бывает, что вам не так хочется закрыть исходный код, как защитить скрипт от копирования. На мой взгляд, сокрытие исходного кода, в большинстве случаев, не имеет смысла без защиты от копирования. Некоторые обфускаторы, шифрующие код (а не просто коверкающие), имеют возможность лочить скрипт под определенный домен или айпишник. Но, во-первых, мы же не хотим для каждого домена перешифровывать все исходники? Во-вторых, мне удалось разлочить эту защиту одной строкой в начале скрипта:
$_SERVER['HTTP_HOST']='разрешенный домен';
Я долго искал в интернете решение для защиты от копирования. На форумах этот вопрос часто обсуждался, в основном, задавали его новички, а опытные (видимо) программисты отвечали "— Ты дурак, кому нужен твой код. Учи матчасть, да и вообще php-скрипты ничего не достойны!". Что ж, подумал я. Наверное, действительно нельзя. Но подождите, тот же Битрикс (фу) выдает лицензии на отдельные сайты, при этом вы получаете открытый исходный код после покупки лицензии. Что же мешает скопировать его на несколько своих сайтов? Я не знаю, а если вы знаете — скажите мне пожалуйста.
В итоге, делать защиту от копирования пришлось самому. Я поставил такие исходные условия задачи:
Скрипт, очевидно, должен быть зашифрован, например Зендом. Но мне понравился Lock It — во-первых, он не требует Зенд Оптимайзера, и, во-вторых — стоит недорого. Но сейчас речь не о том, как шифровать скрипт, а как защитить его от копирования. Поэтому идем дальше, просто будем считать, что исходный код закрыт. Очевидно, что это необходимое условие.
Я хочу выдавать ключ (я назову его лицензией) на каждый экземпляр скрипта. То есть я хочу каждому человеку отдавать только лицензию, а скрипт пусть валяется во всеобщем доступе.
Лицензию привязывать к домену, но если у домена есть синонимы — скрипт должен работать и при обращении через них. Главное, чтоб это был один и тот же экземпляр скрипта.
Никаких коннектов на другой (мой) сервер. Скрипт должен быть самодостаточным.
Никакого доверия скрипта к серверным переменным или переменным окружения во время проверки лицензии. Их можно легко переопределить.
Решение
1. Выдача лицензии и проверка действительности лицензии скриптом
Я создаю ключ к домену приблизительно таким образом:
$key = md5($domain.$secretword);
Cкрипт проверяет свою лицензию так:
$key == md5($domain.$secretword);
Действительно, некрасиво хранить $secretword в самих скриптах. Поэтому здесь можно использовать шифрование с открытым ключом. При выдаче лицензии я буду подписывать ее своим закрытым ключем, а скрипт, при проверке лицензии, открытым ключем будет проверять действительность лицензии. Но я не нашел в стандартном комплекте PHP никаких функций шифрования с открытым ключом, даже RSA (я слепой?). Если поможете — буду благодарен.
Итак, скрипт проверил правильность лицензии. То есть, подходит ли указанный ключ к указанному домену. Идем дальше.
2. Проверка домена
Как скрипт может проверить, лежит ли он на указанном домене? У нас нет доверия к $_SERVER['HTTP_HOST'].
Так же, по условиям — никаких коннектов на другой сервер. Значит, коннектимся сами к себе по предполагаемому домену, и проверяем мы ли там находимся
А точнее:
1) сохраняем случайное число на сервре (например, во временном файле)
2) обращаемся по адресу наш_домен.ру/наш_скрипт.php?action=скажи_число
3) проверяем, какое число нам отдают по этому адресу. Если оно соответсвует тому, что мы сохранили, значит, по адресу находимся мы
0) нулевым пунктом надо добавить отдачу сохраненного числа, если нас вызвали с параметром action=скажи_число
Я немного упростил алгоритм, на самом деле для каждого обращения к скрипту нужно отдельно учитывать эти случайные числа.
Теперь скрипт знает, что лицензия действительна, и что он лежит на соответствующем домене. Основная задача решена!
Вы скажите — wtf, скрипт при каждом обращении будет дергать сам себя? Действительно, жестоко как-то. Поэтому:
3. Временная лицензия
При первом обращении, если проверка прошла успешно, скрипт сохраняет во временном файле временную лицензию.
Временная лицензия представляет собой что-то ноподобие md5(сегодняшняя_дата, домен, секретное слово).
Теперь при каждом запросе мы проверяем только временную лицензию, которая действительна в течение дня. Как только со временной лицензией что-то неладное (поменяли, удалили, прошли сутки) — скрипт опять проверит всё серьезно и сохранит новую временную лицензию.
4. Выполнение скрипта на локальном компьютере без лицензии
Было бы идеально, если бы скрипт не требовал лицензии при запуске на локальном компьютере. Зачем, спрашивается, человеку требовать с меня лицензию, если он просто хочет протестировать скрипт на своем компьютере? Он должен скачать его, и пользоваться. А вот когда он поставит скрипт на сервер, тогда и прийдет ко мне.
Я не знаю как решить эту задачу. У меня пока есть 3 варианта решения, но они мне не нравятся:
1) Если скрипт лежит на домене без точек (типа http://myscript/) — считать, что это виртуальный домен, значит, скорее всего, это локальное тестирование. Недостаток этого метода — умельцы создадут виртуальный домен на своем сервере, а настоящий домен сделают синонимом. Так же, непонятно что делать с доменом localhost.
2) Проверка $_SERVER["REMOTE_ADDR"]. Проверяем наличие '127' в начале ip-адреса. Недостаток — можно переопределить эту переменную перед выполнением скрипта.
3) Смешно, но можно проверить операционную систему сервера. И разрешить выполнение под Windows. Только не бейте меня, это всего лишь вариант.
Как написать граббер +24
PHP
<?php
/*
*Как написать граббер.
*автор: nc_soft
*28.09.07
*/
/*
Любой граббер для удобства можно разделить на ТРИ оcновных части-этапа:
-получение
-обработка
-выдача
Получение.
Для того, что бы граббер нормально функционировал необходимо написать функцию для получнения
страницы с удаленного хоста по заданному url, надежнее пользоваться сокетами
(потому что библиотека CURL установлена не везде и не всегда, использовать file_get_contents()
и комбинации implode('',file(..)) конечно тоже можно, просто сокет предоставляет побольше возможностей.
Напишем функцию получния страницы по урл.
*/
function data($path,$host)
{
/*
$path путь к файлу скрипта, а так же передаваемые параметры
$host сграббливаемый хост (например, sasisa.ru)
*/
$fp = fsockopen($host, 80);
if (!$fp)
{
die('ошибка');
}
else
{
$out = "GET $path HTTP/1.0\r\n";
$out .= "Accept: image/gif, application/xhtml+xml, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "Host: $host\r\n";
//прикинемся оперой-мини
$out .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n";
$out .= "Cache-Control: no-cache\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$headers = "";
while ($str = trim(fgets($fp)))
$headers .= "$str\n";
$body = "";
while (!feof($fp))
$body .= fgets($fp);
fclose($fp);
}
//возвращаем данные
return $body;
}
/*
Итак, функция для получения страницы готова, теперь составим функцию для обработки данных, тоесть для
выреза рекламы, подмены ссылок итп
*/
/*
function process($s)
{
Здесь сложно дать какие-то рекоммендации, все "грабберописание" состоит в основном в
придумывании этой функции, сделаем пока что "заглушку" на этом месте
return $s;
}
*/
/*
Для корректной работы грабба необходимо теперь правильно определять переменную $path, для примера давайте граббить
всем известный http://wen.ru/forum/index.php
пример очень характерный, потому что многие "потенциальные жертвы" грабов (загруз центры например)
состоят как раз из одного файла
*/
//с хостом определились
$host='wen.ru';
if (empty($_SERVER['QUERY_STRING']))
{
//начальная позиция
$path='/forum/index.php';
}
else
{
//новые параметры
$path='/forum/?'.$_SERVER['QUERY_STRING'];
}
/*
теперь необходимо зайти на страницу форума и посмотреть ее в коде
видно что ссылки выдаются так
<a href="/forum/?p=1&f=1&w=htm">Общение</a>
для работы грабба достаточно изменить ссылку так
<a href="index.php?p=1&f=1&w=htm">Общение</a>
что и сделаем в функции process
*/
/*function process($s)
{
$s=str_replace('<a href="/forum/','<a href="index.php',$s);
return $s;
}*/
//можно в принципе запускать (ПЕРВЫЙ ЭТАП)
$s=data($path,$host);
//обрабатываем (ВТОРОЙ ЭТАП)
$s=process($s);
//выдаем результат (ТРЕТИЙ ЭТАП)
/*
третий этап не так прост как кажется, если вы граббите загрузки, то
необходимо организовать переадресацию на прямую ссылку с контентом
*/
header('Content-type:text/html;charset=utf-8');
echo $s;
/*
как видим, граббер вполне работает, только не грузятся смайлики,
давайте подкорректируем это и впишем свой копирайт на страницу
*/
function process($s)
{
$s=str_replace('<a href="/forum/','<a href="'.$_SERVER['SCRIPT_NAME'],$s);
//смайлы
$s=str_replace('<img src="','<img src="http://wen.ru/',$s);
//копирайт
$s=str_replace('</body>','<div>(c)snippets</div></body>',$s);
return $s;
}
/*
разумеется, вы не сможете написать в тему или создать ее, тут надо использовать
POST запросы, задача этой статьи не создание флудер-скрипта а ознакомление с
принципами написания грабберов.
*/
?>
Грамотный выбор хостинга +50
Хостинги
Выбор хостинга для сайта
При создании сайта для заработка в интернет или просто, нужно позаботиться о многих вещах, потому что если хоть что-нибудь пойдет не так как нужно, об успешном ресурсе можно забыть. Кроме выбора правильного домена, CMS, дизайна и тематики нужно выбрать по-настоящему хороший хостинг.
Функционал компании:
Это услуги, которые нам предлагает хостинговая компания – должен быть ровно таким, какой нужен нашему сайту. Исключение: можно выбрать хостинг, функционал которого будет шире, чем нам требуется.
Объем дискового пространства:
Этот параметр показывает, сколько места на жестком диске сервера будет для Вас зарезервировано. Принцип “Чем больше, тем лучше” конечно работает, но не стоит переплачивать за место, которое будет пустовать. Если Ваш сайт уже готов, то узнать, сколько места он займет просто, в противном случае придется определять это “на глаз”. В любом случае лучше выбрать хостинг, с небольшим запасом дискового пространства. Часто начинающие веб-мастера смотрят только на этот параметр, но при выборе хорошего хостинга он далеко не самый важный.
Технологии:
Собственно нужно знать, будут ли поддерживаться PHP, MySQL, Perl, CGI, SSI и др. А так же нужно узнать какие именно версии поддерживаются. Они должны совпадать с теми, которые требует Ваша CMS.
Количество возможных ftp-аккаунтов и e-mail -ящиков
которые можно создать. В принципе, если Вы хотите выбрать хороший хостинг для единоличного пользования, то можно обойтись и 1 аккаунтом и 1 ящиком.
Панель управления:
интерфейс, через который вы будете управлять хостингом – настраивать доступ к файлам, создавать ftp-аккаунты, почтовые ящики, управлять доменами и т.д. Наиболее популярные сейчас – Cpanel и DirectAdmin. Естественно справочники по ним будет проще найти. Какой выбрать хостинг в случае, если выбор идет между двумя этими панелями – дело вкуса каждого.
Как происходит закачка файлов на сервер:
Сейчас каждый уважающий себя хостер предоставляет возможность закачивать файлы через web-интерфейс и по ftp-протоколу. Хотя встречаются и те, кто предлагает только web-интерфейс. От них лучше отказаться сразу, потому что такой способ закачки неудобен, он медленный и о качестве остальных услуг приходится сомневаться. Лучше от выбора последнего хостинга отказаться.
Бэкапы:
Хостинговая компания может гарантировать сохранность ваших данных двумя способами: время от времени делать резервную копию Вашего сайта или использовать несколько жестких дисков с помощью raid контролера. При этом диски будут взаимозаменяемы и, если с одним из них что-то случится, то второй будет продолжать работать. Лучше выбрать хостинг, где будут использоваться оба способа. В прочем, как бы хорошо хостеры не делали бэкапы, свою резервную копию нужно хранить у себя и почаще ее обновлять.
Предустановленные скрипты:
Хостер может предложить продать Вам место на диске, где уже будут установлены CMS, скрипты рассылок, статистики и т.д. Это будет полезно, если не хочешь делать все сам. В любом случае стоит убедиться в том, что не придется платить за предустановленные скрипты, если они Вам не нужны
Домены и субдомены:
На хостинге со среднестатистическим тарифом хватает места больше чем на один сайт, а вот реальной возможности расположить там N сайтов может и не быть. Ограничивать чисто сайтов может максимальное количество доменов.
Вероятно, в будущем Вам может пригодиться возможность создания субдоменов (например, poddomen.site.ru – субдомен основного домена site.ru), поэтому стоит убедиться, сколько можно создать субдоменов и можно ли вообще это делать. Соответственно лучше не выбирать хостинг без этой возможности.
Количество баз данных
Если Вы собираетесь держать несколько сайтов на одном хостинге, то кроме доменов Вам нужно будет и несколько баз данных (для каждого сайта своя), если же, конечно, ваши сайты используют БД.
Качество услуг
Хостер может пообещать ежедневный бэкап, неограниченный трафик, быстрый сервер, хороший саппорт (поддержку) и 100-процентный аптайм, но на деле же всего этого может и не быть. Но как выбрать хостинг в этом случае? Нужно попробовать выяснить действительно ли так хорошо работает хостинговая компания до того, как платить ей.
- Начнем с грустного. Неограниченного объема трафика не бывает, как бы хостер это не обещал. Предел есть всегда, только узнать вы можете о нем слишком поздно. Трафик создает нагрузку на сервер, а хостинговой компании нужно отбивать затраты на его содержание.
Поэтому если решать какой хостинг лучше – с ограниченным трафиком или нет: ответ не будет очевиден. Когда вы превысите «неограниченный» размер трафика то хостер может сделать одно из трех:
1) Просто отключить ваш сайт, сославшись на то, что он потребляет слишком много мощности сервера (а этого проверить Вы не сможете);
2) Попросить Вас (читай – потребовать) перейти на более дорогой тариф, мотивируя тем же;
3) Просто попросить доплатить, аргументы хостера вряд ли изменятся. Лучше всего, перед оплатой выяснить у саппорта, что подразумевается под «неограниченным трафиком». Если саппорт что-то не договаривает, то лучше этот хостинг не выбирать.
- Нужно выяснить, как часто делаются бэкапы на сервере, и как долго хранятся резервные копии. Не лишним будет почитать в отзывах, о том добросовестно ли хостинговая компания делает бэкапы.
- Аптайм (Uptime) – время, в течение которого сервер находится в рабочем состоянии. Значение в 100% лишь теоретическое, а вот к 99.9% процента нужно стремиться. И нужно выбирать хостера, который не только стремится к нему, а уже достиг.
- Операционная система. Лучше выбирать сервера, где стоят ОС GNU/Linux или Free BSD. Они надежнее и дешевле.
- Скорость канала и работы сервера. Первая показывает, с какой скоростью сервер может обмениваться информацией с вашими пользователями, а вторая – с какой скоростью он будет исполнять ваши скрипты. Фактически скорость лучше измерять на глаз, открыв парочку сайтов, которые расположены у того же хостера. Если они загружаются быстро – отлично. Также нужно воспользоваться различными сервисами. Например, host-tracker.com.
- Физическое расположение сервера. Об этом можно найти информацию на сайте компании или уточнить в службе поддержки. Если сервер будет находиться в одном регионе Вашими пользователи, то загружаться сайт у них будет быстрее (при других равных условиях). Но при выборе хостинга лучше руководствоваться этим свойством в последнюю очередь.
- Техническая поддержка, она же саппорт (support). Очень важно, чтобы в службе поддержке были профессионалы, еще лучше, если эти профессионалы будут отвечать быстро, а в идеале – еще и вежливо. К сожалению это не всегда так. Перед оплатой можно отправить пару тестовых вопросов в саппорт и если они ответят за несколько часов – значит все хорошо. Сутки – плохо. Больше – очень плохо.
Некоторые хостеры обещают саппорт, работающий круглосуточно, но мало у кого он действительно работает в таком режиме. Поэтому если хостинговая компания честно призналась, что ее служба поддержки работает с 9 до 18 часов – это ей только в плюс, потому что лучше выбрать хостинг, который не обещает, а реально предоставляет оговоренные услуги.
- Неплохо выяснить, кто вообще стоит за названием компании – физическое или юридическое лицо. Реальная компания обычно ответственнее относится к своим обязанностям, но и цены у нее выше. Если услуги хостинга предоставляет Вам частное лицо, то это тоже не всегда плохо – некоторые работают не хуже компаний, а цены у них ниже. Какой хостинг лучше: предоставляемый серьезной компанией или частным лицом – выбор не всегда очевиден. Отличить компанию от отдельного человека можно по нескольким признакам:
1)на сайте компании можно найти полные контактные данные, включая адрес и регистрационные данные компании, а не только e-mail и icq.
2)Услуги компании можно оплатить несколькими способами, включая кредитные карты и банковские переводы, а не только web money.
3)Компания заключает с Вами полноценный договор, а не требует согласия с набором правил. Хотя и толку от договора не больше, потому что смысл его в том, что хостер конечно постарается хорошо работать, но в случае чего, ничем Вам не обязан.
Цена:
Понятно, что цена не должна быть очень высокой, но и сверх низкую тоже лучше не искать. При правильном выборе хостинга желательно чтобы цена была пропорциональна ожидаемым доходам сайта.
Еще несколько слов нужно сказать о том, что при выборе сильно доверять отзывам не стоит. Возможно, у людей были другие потребности, им просто не повезло, или они сами не слишком адекватны. Идеально, если хостингом пользовался Ваш хороший знакомый.
Еще пару слов о том, что редко удается ответить на вопрос какой выбрать хостинг. Часто приходится перебрать несколько компаний, прежде чем найти ту, услуги которой Вас устроят. Но если знать, как выбрать хостинг и обращать внимание на те вещи, о которых говорилось выше, то найти хороший хостинг можно быстрее.
Итак, я ответил на вопрос «Как выбрать хостинг?». Если кратко, то вот что нам нужно: хостинг, где у нас будет запас дискового пространства, возможность разместить еще несколько сайтов, возможность использовать ftp-протокол, запас месячного трафика, возможность создать несколько баз данных, удобная панель управления. При этом сервер должен все время работать, причем быстро. Сапорт должен вовремя и информативно отвечать. При всем этом цена не должна быть слишком высокой.
Многие хостеры предлагают moneyback (манибек). Это означает, что можно воспользоваться услугами хостинга и, если вам что-то не понравиться отказаться от услуг и вернть назад свои деньги.
Ну вот и конец уважаемый читатель и ещё хочу подчеркнуть не кий совет
Выбирайте тот хостинг который проверен людьми и временем,интересуйтесь у людей на форумах,спрашивайте отзывы,смотрите отзывы о Хостинг Коипании,если вам не безразлична судьба сайта!
Что такое SEO и кто такой Cеошник? +5
SEO
INTRO/SEO
Вы, наверное, уже встречали на сайтах и блогах мнение, что лучший заработок в интернете – заработок на своих сайтах. Встречали и инструкции и советы по созданию. Кто-то из вас пробовал сделать собственный сайт, но так и не получил отдачи, а кто-то сразу подумал о том, что подобных сайтов очень много и отыскать ваш в поисковых системах пользователю будет затруднительно. На форумах вам писали, что нужно учить СЕО, однако что такое SEO так никто и не сказал..
Именно проблемой повышения позиции в выдаче поисковых систем и занимается SEO.
Другими словами: SEO – это набор методов, направленных на повышение позиций сайта в выдаче поисковых систем по какому-либо запросу.
Идея проста: Чем выше ваш сайт в выдаче поисковых систем, тем больше на сайте будет посетителей. Чем больше будет посетителей, тем больший доход будет приносить сайт.
Расшифровывается SEO как Search Engine Optimization – поисковая оптимизация.
Методов повышения позиций очень много, и случаев, когда нужно применять тот или иной тоже большое количество, так что SEO – это целая наука.
С другой стороны в SEO почти нет точно доказанных фактов и 100%-ых приемов, нет гарантии, что вам удастся продвинуть сайт выше, чем другие. Так что SEO можно сравнить и с шаманскими танцами с бубном. Но неважно с чем сравнивать SEO, важно, что поисковая оптимизация – интересный, перспективный и довольно выгодный процесс.
Здесь не будут подробно описаны способы оптимизации сайта, эта вводная статья о том, что такое SEO, кто такой сеошник и с чего начать изучать SEO.
Кто такой сеошник?
Люди, которые занимаются SEO – оптимизаторы или СЕОшники (разг.).
Можно разделить оптимизаторов на 2 категории:
1) Те, кто занимается SEO профессионально, при этом продвигая сайты своих клиентов за определенную сумму.
2) Те, кто продвигает собственные сайты с целью заработать на них.
Обычно первые более профессионально подходят к работе, более подкованы в теоретической части. Вторые – практики, редко изучают алгоритмы поисковиков, пользуются своими наработками.
Часто встречаются и те, кто продвигает и свои сайты и сайты заказчиков, да и сеошники первой категории обычно приходят из второй, т.е начинают изучать СЕО-оптимизацию на своих сайтах, а с чего начать изучать SEO Вам, написано в конце поста
Методы оптимизации
Приемы оптимизации сайтов – тема отдельной статьи, даже статей. Сейчас лишь скажу, что в общем виде SEO сводится к двум вещам – создании страниц на сайте, релевантных нужному запросу и получении ссылок с других сайтов.
Со ссылками более или менее понятно, а первую фразу поясню:
“Страница релевантна запросу” означает, что она отвечает на вопрос запроса, содержит нужную информацию.
Например, запрос “автомобильные новости”, страница с этими самыми новостями будет релевантна, а страница кулинарного сайта нет.
Если говорить совсем просто, то поисковики определяют релевантность по наличию слов и фраз из запроса на странице и их количеству. Чем больше этих ключевых фраз или слов, тем страница релевантнее. Значит, она будет интереснее пользователю, значит, она будет выше в выдаче.
Ну, это в идеале. На практике все сложнее.. Но стоит запомнить, что все поисковики стремятся выдавать пользователю наиболее релевантные и полезные страницы. Это нужно помнить при оптимизации.
SEO – белое, серое ,черное
Как написано выше – в идеальном случае первым в выдаче будет самый удобный, полезный и качественный сайт. Однако алгоритмы поисковых систем не совершенны. Поисковик не может оценить удобства навигации, красоты дизайна, точности информации и т.д. Поэтому продвинуть на первые места можно далеко не самые полезные сайтыОтсюда получается деление методов оптимизации на 3 группы:
- Белое SEO:
Создается качественный сайт. Наполняется большим количеством полезных текстов. Ведутся работы над повышением качества сайта с точки зрения пользователя. Тексты остаются естественными, без искусственного увеличения количество упоминаний ключевика. Ссылки получаются также естественным путем (на хороший сайт всегда кто-нибудь сошлется).
Черное SEO:
О том, что такое черное SEO есть разные мнения, но вот основные признаки:
О пользователе здесь думают мало. Основной метод – искусственное увеличение количества ключевиков в тексте, причем увеличение значительное. Метод получения ссылок – спам. Обычно такие сайты делаются для получения большого количества посетителей и отправки их на другой сайт. Такие черные сайты называют дорвеи. Их не любят как пользователи, так и поисковики. Последние с ними активно борются, поэтому дорвеи долго не живут. Исключения – качественные дорвеи, созданные опытными сеошниками.
Серео SEO:
Что-то среднее между первыми двумя методами. Сайты делаются хоть и для людей, но количество ключевиков повышается (в ущерб качеству текста). Закупаются ссылки с других сайтов. Хотя Серая оптимизация и не запрещена, если с ней переборщить, то можно получить санкции от поисковиков.
C чего начать изучать SEO? / заключение
Выше уже написано, что сеошник должен знать много и уметь этим пользоваться. Второе приходит с опытом, а первое с уставшими от чтения глазами.
Статей и книг сейчас хватает, правда не все они одинаково полезны, не все подойдут новичку.
Мне в свое время в изучении SEO помогло создание этого блога. Я писал посты об оптимизации и вместе с этим узнавал новое.
Вы можете сделать также, а можете начать усиленно читать.
Начать рекомендую с общих статей и постепенно углу***ся в тему.
Можете начать с прочтения книги Игоря Ашманова «Оптимизация и продвижение сайтов в поисковых системах». В ней расписаны общие принципы работы поисковиков, оптимизации, продвижения, рекламы в сети и т.д. Книга старовата, но эти принципы не изменились.
После прочтения этой книги, станет понятно, о чем идет речь в сео-блогах.
В прочем, C чего начать изучать SEO решать Вам. Главное добиться результата.
Теперь вы знаете понятие SEO, кто такие сеошники и чем они занимаются.
Условные конструкции PHP +27
PHP
Итак, типы. Язык php – язык с динамической типизацией. В отличие от многих языков программирования, таких как C, C++, Java, мы не должны четко указывать тип для каждой из наших переменных. Более того, тип переменной может меняться. Что такое тип? Тип переменной – это вид информации, которая хранится в переменной. К примеру: $text = “строка” – означает, что перенная $text содержит строковый тип данных, и, соответственно, переменная $text – строковая переменная, а $var = 5 – соответственно целочисленная переменная.
Тип меняется например в следующем случае:
$text = "строка";$text = 5;
Здесь переменная сначала была строковой, а потом стала целочисленной.
Не смотря на то, что в большинстве случаем мы не должны следить за типами наших переменных, все-таки существуют задачи, где без этого не обойтись. К примеру:
$text = "5"; $text = $text + 7;Скорее всего такой код вызовет ошибку, так, как к строке мы прибавляем число. И если бы интерпретатор все делал за нас, то не понятно, что мы хотели. То ли результат соединения двух строк “57? , то ли сложение двух чисел 13.
Итак, php поддерживает 8 простых типов:
boolean (логический); integer (целый); float (с плавающей точкой); string (строковый). array (массив); object (объект). resource (ресурс); NULL.Я не буду писать про каждый из типов здесь. Про каждый из типов, я расскажу в контексте других постов. А сейчас достаточно их запомнить или добавить пост в закладки, чтобы знать где оно лежит)).
Условные конструкции. Условные конструкции – конструкции выполняющие определенное действие, если соблюдается определенное условие. В языке php это конструкция if…else. Эту конструкцию нельзя изучать в отрыве от типа boolean. Сама конструкция выглядит так:
if (условие) {
действие 1;
действие 2;
действие n;
}
else {
другие действия;
}
Имеенно в качестве условия и выступает переменная типа boolean. Это достаточно простой тип. Он может принимать всего 2 значения: TRUE и FALSE. Существуют операторы, которые могут принимать эти же 2 значения – это операторы сравнения: == , <=, >=, > , < и !. Соответственно это – равно, меньше или равно, больше или равно, больше, меньше и логическое НЕ. К примеру:$a = 4; $b = 6; $a == $b; - возвращает FALSE $a <= $b; - возвращает TRUE $a < $b ; -возвращает TRUEВернемся к управляющим конструкциям. В условии должен быть boolean. Например стоит задача: Если число подписчиков больше или равно 1000, то вывести надпись вы не можите подписаться, если меньше, то вывести надпись вы подписались.
<?php
$num = 100; //Вводим число подписчиков
if ($num >= 1000) { // проверяем колличесво подписчиков.
echo "вы не можите подписаться";
}
else {
echo "вы подписались";
}
?>
Единственное, о чем я здесь не рассказал – это комментарии. Все что написано после двух слешей, не считается программой, а предназначено только для читающего код.
Мануал по регуляркам php +22
Регулярные выражения
Синтаксис регулярных выражений
Регулярное выражение Означает
foo Строка “foo”
^foo Строка начинается с “foo”
foo$ Строка заканчивается на “foo”
^foo$ «foo» встречается в строке только один раз
[abc] a, b, или c
[a-z] любой символ в нижнем регистре
[^A-Z] любой символ, не находящийся в верхнем регистре
(gif|jpg) Означает как «gif” так и “jpeg”
[a-z]+ Один или более символов нижнего регистра
[0-9.-] Любая цифра, точка или знак минус
^[a-zA-Z0-9_]{1,}$ Любое слово, хотя бы одна буква, число или _
([wx])([yz]) wy, wz, xy, или xz
(^A-Za-z0-9) Любой символ (не число и не буква)
([A-Z]{3}|[0-9]{4}) Означает три буквы или 4 цифры
PHP-функции для регулярных выражений
Функция Описание
preg_match() Функция preg_match() ищет строку по заданному шаблону, возвращает true, если строка находится и false, в остальных случаях
preg_match_all() Функция preg_match_all() находит все вхождения строки, заданной по шаблону
preg_replace() Функция preg_replace(), действует по тому же принципу, что и ereg_replace(), за исключением того, что регулярные выражения можно использовать как для задания шаблона поиска, так и для строки, на которую следует заменить, найденное значение.
preg_split() Функция preg_split(), действует так же как split(), за исключением того, что регулярное выражение можно использовать в качестве параметра для шаблона поиска.
preg_grep() Функция preg_grep() ищет все элементы входного массива, возвращая все элементы, соответствующие шаблону регулярного выражения.
preg_quote() Экранирует символы регулярного выражения
Trojan.Winlock (баннерный вирус) +15
Разное
В России набирает обороты эпидемия компьютерных вирусов семейства Trojan.Winlock. "В январе 2010 года количество россиян, пострадавших от вредоносных программ, требующих за разблокировку Windows отправить платное SMS-сообщение, составило несколько миллионов", - сообщает российский разработчик средств информационной безопасности компания "Доктор Веб".
Первые модификации Trojan.Winlock появились около 3-х лет назад. На тот момент они не представляли серьезной угрозы. В частности, вирусы автоматически удалялись с компьютера через несколько часов после установки, не запускались в безопасном режиме Windows, а стоимость SMS-cообщений, которые требовали отправить авторы "троянца", была не столь высокой, как сейчас (в среднем около 10 рублей в сравнении с 300-600 рублями).
С ноября 2009 года эта схема отъема денег пользуется все большим успехом у злоумышленников – новые модификации Trojan.Winlock становятся все более опасными. За снятие сообщения о блокировке Windows, которое выскакивает поверх всех окон и делает невозможным нормальную работу на компьютере, вирусописатели требуют гораздо больше денег. "Троянцы" уже не удаляются автоматически из системы через некоторое время, но приобретают дополнительный функционал.
В частности, они препятствуют запуску некоторых программ в зараженной системе (файловых менеджеров, антируткитов, утилит для сбора информации, которая может помочь в лечении системы).
Вредоносные программы семейства Trojan.Winlock распространяются через "бреши" в Windows (в частности Internet Explorer), вредоносные сайты (скачиваемые кодеки), эксплойты iframe, а также ботнеты (авторы ботнета продают установку какой-либо вредоносной программы на зараженном компьютере).
Только за январь число пострадавших в России от блокировщиков Windows составило несколько миллионов пользователей. С учетом того, что средняя стоимость SMS-сообщения – 300-600 рублей, предположительные потери россиян от этого вида вредоносного ПО только в первом месяце 2010 года составили сотни миллионов рублей.
В связи с тем, что с каждым днем появляются новые модификации Trojan.Winlock, незащищенными остаются даже те пользователи, которые применяют постоянно обновляемые антивирусные решения различных производителей.
Специалисты "Доктор Веб" считают необходимым привлечь внимание официальных властей к этой проблеме. Их помощь в обнаружении людей, регистрирующих номера, на которые злоумышленники требуют отправлять платные SMS-сообщения, могла бы уменьшить число потенциальных жертв. Кроме того, компания призывает операторов сотовой связи блокировать эти номера по первым же жалобам абонентов.
Случай с Page Rank равным 100 +34
SEO
Позднее Google заявил, что это была всего лишь случайность - всего лишь один неправильный "0", случайно попавший в код алгоритма по определению рейтинга. Именно этот ноль спровоцировал нечто совершенно непредсказуемое - ошибку, ошибку настолько необычную и странную, словно бы ее и не существовало. Но, конечно же, она была, и она изменила жизнь одного человека. Этим человеком был Джош, 20ти с чем-то лет. Как и многие его ровесники, он интересовался Интернетом.
Когда Джош проснулся тем судьбоносным утром и решил сделать очередную запись в своем он-лайн дневнике ( он хотел описать свой кошмар, который был слишком необычным для ночи пятницы, но, в конце концов, в мире ведь происходило столько кошмарных событий), то почувствовал, что что-то изменилось. В журнале было 320 комментариев к его последней записи, которая носила довольно простое название: "Встреча и ужин с Джоан". 320 комментариев. Это было на 320 комментариев больше обычного. Его он-лайн дневник существовал уже больше года, и даже сам Джош не считал его слишком уж захватывающим (ведь он отражал его жизнь, как и все он-лайн дневники).
Сотни комментариев к одной лишь записи? И эти комментарии были написаны реальными людьми и почти не содержали спама. Они критиковали его грамматику или обсуждали качество еды в упомянутом им пабе. Некоторые посетители просто болтали или зашли сказать "Привет!". Так что же произошло? Какой-то крупный сайт ссылался на его дневник? Учитывая количество посетителей (а в это утро их было более миллиона), Джош бы не удивился, узнав, что Amazon или Apple использовали свои главные страницы для рекламы его дневника.
Затем он проверил почту. Его ящик был забит письмами до отказа. Причем, что было странно, в темах некоторых писем встречались слова "рейтинг сайта". Джош хорошо знал, что благодаря скромному обмену ссылками с другими сайтами, его маленький он-лайн дневник имел Page Rank 3. Неплохо с точки зрения алгоритма Google, но ничего особенного. Итак, Джош открыл одно из этих писем. В следующий момент он ринулся на кухню за чашкой кофе и сигаретой.
Page Rank 100. Очевидно, его дневник достиг Page Rank равного 100!! Уже выпив кофе, Джош понял, ЧТО это означало. Он позвонил своему другу, который интересовался поисковыми машинами и посещал компьютерные курсы. Мэтт приехал быстро, ведь он никогда с таким не сталкивался. Также быстро он проверил рейтинг слов, использованных Джошем в дневнике. Он ввел "ужин", и БУМ! - его сайт оказался на первом месте в результатах поиска Google по этому слову. Сотни миллионов людей заходили на Google, тысячи из них осуществляли поиск по слову "ужин", и сотни из них в ту же минуту заходили на дневник Джоша.
И это слово было не единственным. На самом деле, сотни слов и словосочетаний, например, "ужин в ресторане", "Сан-Франциско", "встречаться" или "одиночки" занимали первые места в результатах поисков. Джош, как правильно отметил Мэтт, получил абсолютную власть над миром. Как пульт дистанционного управления, добавил он шутя.
"Что бы ты ни сказал, ЧТО бы ты ни сказал, тебя услышат. И услышат очень многие. Никому не говори об этом, но ты станешь богатым. И знаменитым".
"Совсем неплохо", - подумал Джош. "Ведь быть богатым и знаменитым - значит иметь много денег и пользоваться популярностью", - подытожил Мэтт.
И действительно, спустя три месяца Джош стал знаменитостью. Каждое его слово где-то цитировалось. CNN. ABC. BBC. Slate. Wired. Daily Mirror. New York Times. В некоторых газетах появились "колонки Джоша". Он никогда не думал, что так много журналистов будут использовать в своих статьях остроумные комментарии, найденные с помощью Google. Существовали форумы поклонников Джоша, сайты, на которых эссеисты комментировали посты Джоша. Иллюстрации. Объяснения. Обсуждения.
Джош, постепенно осознав необходимость сказать что-либо хоть отдаленно интересное, решил посвятить свой личный дневник комментариям к событиям, происходящим в мире.
Но он не был слишком проницательным. По сути, Вы бы посчитали его довольно несведущим в политических делах. Его стиль не был уникальным - миллионы подобных дневников создавались и до него. Так говорил Ваш случайный попутчик в автобусе. Так говорили все. Но у Джоша был рейтинг 100. И Google ничего не знал об этом.
Поэтому когда Джош говорил о ситуации в Ираке, президенту приходилось назначать пресс-конференцию. Когда Джош понял, что его операционная система "глючит", Биллу Гейтсу приходилось делать заявление, в котором он говорил, что сделает все возможное, чтобы помочь "среднему пользователю". (Джошу немного не понравилось, что его считают "средним пользователем", и Билл Гейтс устроил еще одну пресс-конференцию, во время которой он пообещал не использовать подобных терминов).
На самом деле, когда Джош говорил о чем-либо, что его не устраивало, то все менялось к лучшему за два-три дня. Никто не любит плохой рекламы.
Поговорим о контроле над разумами? Так, когда бы Джош ни упоминал понравившийся ему диск, он попадал в десятку лучших, а песни с этого диска становились хитами во всем мире. Не всем нравились эти песни, но нужно же было следовать модным тенденциям. (Loudon Wainwright III в числе "Самых лучших поп-исполнителей", а у него еще даже альбом не вышел).
Джош мог заключать мир, придумывать новую продукцию, закрывать магазины, делать моду (список можно продолжать…), он мог изменить жизнь целого поколения.
И, конечно же, Джош знал, почему все знаменитости жаловались на внимание прессы и общественности. Когда он заходил в магазин, все девушки начинали хихикать. На улице люди оборачивались и показывали на него пальцем. Черт возьми, по его саду постоянно шныряли фотографы. Джош чувствовал, что ему нужно поскорее изменить свое к этому отношение, принять стиль жизни рок-звезды, чтобы всегда знать, что делать, говорить и как себя вести. Возможно именно поэтому говорящая кукла Джош (Мател довольно хорошо его нарисовал) произносила шаблонные фразы типа "Ты знаешь, что ты этого хочешь", или "Весь мир - это один большой он-лайн дневник" или "Послушайте, не слушайте меня" или "Друг мой, я тебя не знаю".
Он потерял только одного друга, и это был Мэтт. Мэтт чувствовал, что у Джоша уже нет времени как это было раньше… как это было раньше, когда Джош встречался в баре с ним и Джоан. И Мэтт решил окончить весь этот маскарад. Он написал письмо Google. И Google отреагировал. Страничка Джоша не только получила Page Rank равный 0, но также была под запретом во всех классификациях (забанена). Джош как будто перестал существовать.
Конечно же, как позднее говорил Джош, он еще какое-то время наслаждался статусом звезды, но спустя несколько недель СМИ обратили свое внимание на кого-то другого. Может быть, это было к лучшему. Ведь ему на самом деле не было что сказать миру. В своем дневнике он все также описывал свои кошмары, которые, безусловно, стали еще более абсурдными. У него даже появилось время, чтобы встречаться с Мэттом и Джоан. Но осознание того, что ему посвятят пусть и маленькую, но все же страничку в будущих книгах по истории, сделало его самодовольным и немного ленивым.
После всей этой шумихи вечерами Джошу просто хотелось найти маленький тихий ресторан и отдохнуть там. Послушать музыку, поужинать. Но когда его спрашивали, нравится ли ему еда или музыка, или просили выразить свое мнение о политических событиях в мире, то наступала неловкая пауза. Менять мир было задачей ему не по силам. Сегодня Джош нашел такой ресторанчик. Он закурил, ожидая, пока ему принесут заказ.
Тем же вечером кто-то из сотрудников Google хохотал от души. Он только что вставил всего лишь один неправильный "0" в код алгоритма по установлению рейтинга, "0", который был настолько необычным и странным, словно его и не существовало.