zemin serchug

Блог Zemin $erchuGG

Блог предпринимателя и баблострига

Приколоть пост
Прикольный приколотый пост


Сcылка:Описание лаб 7-11
zemin serchug
[info]zemin_serchugg
Описание лаб 7-11 : http://britter.ru/?docindex=18

Как убрать нах кнопку ускорителей в IE 8
zemin serchug
[info]zemin_serchugg
Как убрать нах кнопку ускорителей в Internet Explorer 8 при выделении текста.

Сервис->Свойства Обозревателя->Вкладка дополнительно.
Убрать галочку (Обзор->) "Отображать кнопку ускорителя при выборе"

Задобала эта сраная кнопка :)))))

Кеширование на php If-Modified-Since
zemin serchug
[info]zemin_serchugg
Хорошая проверенная реализация IF_MODIFIED_SINCE
Источник :
http://written.ru/articles/technologies/site_building/if_modified_since


За что я люблю PHP, так это за то, что гениальные вещи на нем пишутся в несколько строчек. В этой заметке я продолжу рассуждать о правильном использовании заголовков в PHP. Если вам не всё равно, как индексируется поисковиками ваш сайт, если вы хотите сэкономить трафик, вы нашли именно то, что нужно.

Как известно, кеширование на стороне браузера сокращает нагрузку на сервер. Но для часто обновляемых страниц у него есть существенный недостаток: информация в кеше может устареть и не соответствовать действительной информации.

Для каждого документа, отдаваемого сервером, желательно выдавать заголовок Last-Modified (в том числе для правильной индексации, например, Яндексом):

<?php

$mt 
filemtime($file_name);
header('Last-Modified: '.gmdate('D, d M Y H:i:s'$mt).' GMT');

?>

Для часто обновляемых страниц (я не говорю «динамических», так как страница может каждый раз собираться интерпретатором PHP, но фактически изменяться крайне редко) можно запретить кеширование следующим набором заголовков:

<?php

function no_cache() {     
header('Expires: Mon, 26 Jul 1997 00:00:00 GMT');     
header('Cache-Control: no-cache, must-revalidate');     
header('Pragma: no-cache');
}

?>

В принципе, для удовлетворительной работы сайта этого достаточно. Однако вместо полного запрета кеширования лучше применить более гибкий механизм с использованием заголовка If-Modified-Since. Он присутствует в запросе браузера, если в его кеше есть копия документа, и его значение — некая дата изменения этой копии. PHP-скрипт может посмотреть на эту дату и решить, стоит ли отдавать браузеру свежую страницу, или сообщить, что страница не изменилась, отправив ответ 304 Not Modified. Вместе с отправкой заголовка Last-Modified, код примет вид:

<?php
 
function date2unixstamp($s) { 
   
$months = array (         
        'Jan' => 1'Feb' => 2'Mar' =>3
        
'Apr' => 4'May' => 5'Jun' =>6
        
'Jul' => 7'Aug' => 8'Sep' =>9
        
'Oct' => 10'Nov' => 11'Dec' =>12 
    
); 

    
$a explode(' '$s); 
    
$b explode(':'$a[4]); 
    return 
gmmktime($b[0], $b[1], $b[2], $months[$a[2]], $a[1], $a[3]);
}
 
$mt filemtime($file_name);
$mt_str gmdate('D, d M Y H:i:s'$mt).' GMT';
 
if (isset(
$_SERVER['HTTP_IF_MODIFIED_SINCE'])) { 

    
$cache_mt $_SERVER['HTTP_IF_MODIFIED_SINCE']; 
    if (
date2unixstamp($cache_mt) >= $mt) { 
        
header('HTTP/1.1 304 Not Modified'); 
        exit; 
    }
}
header('Last-Modified: '.$mt_str);
echo 
$text;

?>

В операторе if мы не использовали проверку на равенство $_SERVER["HTTP_IF_MODIFIED_SINCE"] == $mt_str, а преобразовали дату вида Sun, 28 Jan 2007 07:56:48 GMT в формат unixstamp и сравнивали с датой изменения оригинального документа. Это нужно для решения двух проблем.

Дело в том, что последние версии Opera и Firefox исправно копируют содержимое заголовка Last-Modified ответа сервера в заголовок запроса If-Modified-Since (именно поэтому нам нужно было установить Last-Modified), и проверкой на равенство вполне можно было бы обойтись. Но, как всегда, не обошлось без капризов IE 6. Он к заголовку If-Modified-Sinceдобавляет параметр length, в чем и заключается первая проблема. Ее можно решить применением функции strpos, если бы не вторая проблема — хитрости поисковых роботов. Все они (кроме робота Рамблера, который действует по описанной выше схеме) в заголовке If-Modified-Since (если вообще его используют) передают не значение из Last-Modified, а дату последнего скачивания документа. В такой ситуации уже нельзя обойтись без упомянутого перевода дат в unixstamp (что и делает функция date2unixstamp).

Как же работает кеширование в браузерах? Если оно не запрещено вызовом функции no_cache, то в Firefox и в IE страница сохраняется в кеше, при последующих запросах выдается только она. Чтобы обновить страницу в кеше, нужно нажать комбинацию клавиш Ctrl + F5, обычная кнопка «Обновить» (F5) не помогает. Нужно отметить, что документы в кеше IE могут храниться очень долго. В Опере страница загружается из кеша при повторном переходе на нее по ссылкам, но кеш очищается по нажатию кнопки «Обновить» или клавиши F5. Следует быть аккуратным, так как CRTL+F5 в Опере — перезагрузка страниц со всех вкладок, которая может затянуться надолго при их большом числе.

Если запретить кеширование страницы функцией no_cache, то Опера и Firefox при обращении к такой странице используют механизм с заголовком If-Modified-Since, и это правильно. То есть кеширование всё равно происходит, но браузер спрашивает у сервера, изменилась ли страница на самом деле, или нет. Однако IE запрет на кеширование воспринимает буквально. В ходе экспериментов стало ясно, что если из трех заголовков no_cache убрать второй, то IE версий 6 и 7 начинает работать так, как нам нужно. Может оказаться полезным корректное использование заголовка Expires. В нем можно установить время, в течение которого будет использоваться только локальная копия документа в кеше. Этот способ позволяет справиться с излишне навязчивым кешированием в IE. Например, чтобы копия в кеше была действительна в течение суток, нужно использовать такой оператор:

<?php
 
header
('Expires: '.gmdate('D, d M Y H:i:s'time() + 86400).' GMT');
 
?>

Итак, как же использовать все эти возможности протокола HTTP? Обработка заголовка If-Modified-Since полезна в любом случае. Например, Яндекс рекомендует ее использовать. Если вы экономите трафик и если страницы обновляются редко, то запрещать их кеширование не нужно. Можно запретить их кеширование, тогда вместо него произойдет запрос к серверу с If-Modified-Since и 304 ответом. Это немного увеличит трафик, но позволит получать более правильную статистику посещений: пользователь зашел на страницу, а мы ему говорим, что страница не изменилась, но в статистике его учитываем. Если документы обновляются часто, практически всегда стоит запрещать их кеширование. Выдача 304 ответа в большинстве случаев скомпенсирует возможное повышение трафика.

Помимо описанного метода для проверки актуальности копии документа в кеше существует еще один, основанный не на дате изменения страницы, а на уникальном хеш-коде содержимого страницы. Общее название для обоих методов — Conditional Get, вы можете ознакомиться с дополнительной информацией о них.



Скачивание файлов по временным ссылкам без MySQL
zemin serchug
[info]zemin_serchugg
Решил сделать защиту от хотлинка, на одном из сайтов. Поискал готовые скрипты на PHP. Есть хорошие решения, например: http://blog.webmasterschool.ru/archives/250 http://www.compdoc.ru/internet/php/tmp_links/ Все скрипты справляются с поставленной задачей, но используют либо файлы, либо таблицы MySQL. Использовать временные файлы или MySql таблицы для хранения кодов неоправданно. Возможна также проверка по реферу - она не использует БД. Но неудобна тем, что приходится добавлять исключения для поисковых ботов вручную, прописывая их в .htaccess. Меня эти нюансы сильно раздражали, да и не красиво для ссылок использовать БД! Поэтому написал вот такой скриптик в несколько строк. Такой скрипт не будет использовать БД или временные файлы.

<?PHP

//Скрипт генерации временных ссылок, без БД или фременных файлов.
//Зачем использовать таблицы и SQL, если можно генерить ссылки с ключем, зависимым от времени?
//например так:

$timeout = 3600; // Один час
$filesdir = "downloads/"; // Слешь в конце

//
$secret = md5((int)(time() / $timeout)); //Всегда целое число, меняется раз в $timeout секунд;

if( isset($_GET['key']) ) {
	if( ($_GET['key'] == $secret) && //проверка ключа
			strlen($_GET['fn']) && file_exists($filesdir.$_GET['fn']) ) { //проверка файла

		readfile($filesdir.$_GET['fn']);die; //читаем файл
	} else {

		header ( 'HTTP/1.1 404 Not Found' );//Файл не найден
		die;
	}
}
?>

Скачать:<a href="?fn=file.doc&key=<?PHP echo $secret;?>">file.doc</a>


Интересует ваше мнение, м.б. чтото упустил.

Информеры
zemin serchug
[info]zemin_serchugg
Доброе утро.
В очередной раз выкладываю интересный сайт - инфамер.ру.

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

Адрес сайта : http://infamer.ru/

Приятного поиска информеров :)

Работа - регистрация FreeHost
zemin serchug
[info]zemin_serchugg
Суть следующая:
Регистрируете новый FreeHost(сайта, площадки) из списка ниже, и передаете мне ftp доступ.
Плачу за одну регистрацию 1 рубль. Чем больше хостов зарегистрируйте, тем лучше.
На 1 емаил можно зарегистрировать не более 5-10 хостов с одного сайта.

Доменное имя любое(3го уровня, типа vasy.itgo.com).
Email ваш, либо могу дать.
Необходима только регистрация. Больше ничего делать ненадо.

Минимальная выплата, от 1го рубля.

Список хостов, за регистрации на которых плачу.
http://free.1gb.ua/
http://host-ed.net/
http://vixo.pl/
http://by.ru/
http://tvheaven.com/
http://itgo.com/
http://www.unlimitedmb.com/
http://lhosting.info/
http://www.thumblogger.com/
http://www.xhostar.com/
http://www.110mb.com/
http://www.kinghost.com/
http://www.smutserver.com/
http://www.000a.biz/
http://sensualwriter.com/
http://blogbugs.org/
http://smut.com/
http://blogtur.com/

DB GROUPS ERROR - JCE 154
zemin serchug
[info]zemin_serchugg
Начал работать с Joomala. Последний разработал с ней года 3 назад.
Впечетление тоже.

Гавно гавном, Для вставки дизайна нужно читать иструкцию.

Только может быть это сделанно для развода заказчиков - чтоб чтото поменять/доделать нужно обращатся к разработчику, т.к. сам заказчик ничего не сможет поменять добавить интуитивно....

Сука, дебилы **анн** авторы, каким надо быть тупаком чтоб такое гавно создать. **ть.


Короче дело не в том, химичил там в JCE. Чтото там понажимал, похерил....
Когда заходишь сюда, /administrator/index.php?option=com_jce&type=install, пишет DB GROUPS ERROR, и тупит.

Чтобы починить нужно ввести administrator/index.php?option=com_jce&task=repair&type=groups, починится...

Аффтор Joomala (Или все аффторы) - Убейся(сь) об стену сильно.

Новый Форум на БриТТере
zemin serchug
[info]zemin_serchugg

Обновил сайт - файловый архив http://britter.ru.

Новый парсер .doc фалов, позволяет просматривать картинки  в .doc файлах!

По формату файлов .docx – обновил парсер таблиц. Теперь они выглядят как таблицы :)

Установил форум, для обсуждения документов, вот думал что лучше форум или блог.

Для обсуждения всетаки лучше форум


Яндекс – Русское сео
zemin serchug
[info]zemin_serchugg

russeo

Как и все в России, Яндекс сделан и ведет себя через одно узкое место…. о как блин, не стоит тягаться с яшей :(


Заработок – Новая биржа для блогов!
zemin serchug
[info]zemin_serchugg

rotapost_banner Очень приятная новость! В интернете появилась новая биржа для продажи ссылок монетизации блога! Авторы этой биржи, уже имеют успешные проекты в сети :) Сейчас, пока невелико количество вебмастеров, вы можете зарегистрироваться там одним из первых.  Я уже успел это сделать, что и вам советаю. Все таки лишние деньги не бывают лишние, а от вас ничего не требуется, кроме регистрации.

Все что нужно для участия в новой системе – это блог, с постом, размещенным более месяца назад. Все. Никаких кодов, и счечиков вас разместить на страницах своего блога, не просят, что очень упрощает процесс регистрации :)

В системе есть партнерская реферальная программа, которая позволяет получать до 25% с ваших реферов, в различные ситуациях. Для участия в партнерской программе, спешите зарегестрироваться по этой ссылке.

Выплаты поддерживаются на WebMoney. (R и Z кошельки), и другие платёжные системы, два раза в месяц. Очень приятная минималка для вывода – всего 100 руб.

После проверки вашего блога модератором, вы можете начинать зарабатывать!


Вы читаете журнал [info]zemin_serchugg