между прочим форма в iframe - неплохой вариант - просто указать в мета-тегах нужную кодировку и работать с фреймом, а не с родительским документом
ну так можно на лету конвертровать в php, при создании формы и при приеме данных
возможно javascript-ом конвертировать, наподобие iconv в php (оная функция отсутствовала у хостера - нашел аналогичный исходник), там просто смена одних ascii последовательностей на другие
____________________________________________________________________________
в пхп было:
function utf2win($string){ $out=''; for($c=0;$c<strlen($string);$c++) { $i=ord($string[$c]); if($i<=127) @$out.=$string[$c]; if(@$byte2) { $new_c2=($c1&3)*64+($i&63); $new_c1=($c1>>2)&5; $new_i=$new_c1*256+$new_c2; $out_i=($new_i==1025)?168:(($new_i==1105)?184:($new_i-848)); @$out.=chr($out_i); $byte2=false; } if(($i>>5)==6) { $c1=$i; $byte2=true; } } return $out;}
вообще то это клоакинг, наверно лучше (для отвода глаз) сделать просто 2 версии каталогов товаров, а уже в зависимости от ip выделять в меню "Товары таких-то магазинов", чтобы структура сайт была постоянная, менялись только ссылки на разделы, но альтернативная версия всегда была доступна (хотя бы через карту сайта)
Можно и без крона
в начале файла - кэширующую функцию:
ob_start('cacher');
суть которой - проверка сохраненной статической версии файла. (если файла нет - создать и вывести буфер в браузер, если есть - просто вывод в браузер)
вроде того:
function cacher($buf,$url)
{
$path=str_replace('/','---',$url); // чтобы урл стал именем файла, а не путем
$file='/static/'.$path;
if(!is_file($file)
fopen($file,w+);
fputs($file,$buf);
fclose($file);
}
return $buf;
это так, набросок...
Для небольших сайтов неплохо было бы сделать переменную "Последнее обновление" и выдавать её как дату модификации (сайт ведь не каждый день обновляется, по крайней мере его разделы),
просто с новым обновлением сайта менять дату.
___________________________________
В начале файла вставить код:
$d="дата последнего обновления";
$lm=gmdate('D, d M Y H:i:s',$d).' GMT';
if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']))
$ims=preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
if($ims==$lm)
header('HTTP/1.0 304 Not Modified');
exit;
header('Last-Modified: '. $lm);
А у меня денюжка новую цифру кажет (был 70, стал 90).
p.s. Прошу не пинать если что, интернет сегодня вообще глючит...
ASCII-арт ищите, есть даже спец софт для "рисования"
ну, если не от пс, можно не отдавать/изменять javascript-файл через php, например, если реферер не соответствует странице, с которой он вызван (правда будет большой процент ложных срабатываний)
___________________________
Делал (до сих пор развиваю) информер, рефереры шлются самые экзотические, с страниц в кеше поисковиков, с предыдущих страниц (☝), со всяких онлайн-веб-компрессоров, так что много подводных камней, как извращенный вариант - незамаскированный ява-скрипт вызывает с параметрами (нужными) маскируемый скрипт :)
У соседей была тема: ко всему этому арабы (WM Metals FZE - ОАЭ) обязуются кило WMG менять на реальные килограммовые слитки http://owebmoney.ru/inform/inform73.shtml