User Tools

Site Tools


Translations of this page:
ru:hints

Hints

(Бес)полезные советы. Частично это конечно повторение известных вещей, но тем не менее …

Инклуды в пхп файлах

Уже не первый раз сталкиваюсь с конструкциями вида

include('http://otherdomain/1.html');

или

virtual('/scj/top/top.html');

причем таких конструкций может быть по 10 штук на темплейт. От скрипта это не зависит, так не надо делать вообще.

Почему:

ПХП отрабатывает ДО того как серфер получает страницу. Поэтому если у вас есть include('http://otherdomain/1.html'), который находится на другом сервере вы получаете задержку в отдаче страницы. А если по какой-то причине этот другой домен еще и решил притормозить, то у вас найнет тормозить в отдаче и оригинальный домен.

Даже если otherdomain на том же серваке, то как и в случае virtual('/scj/top/top.html'), на 1 запрос к серваку у вас получается как минимум 2: 1 запрос конкретно к вашему домену + 1 запрос include('http://otherdomain/1.html') или virtual('/scj/top/top.html').

Если у вас 10 инклудов вида virtual('/scj/top/top.html') то у вас сервак на 1 реальный запрос выполняет каждый раз еще 10 подзапросов. Как это отражается на нагрузке думаю объяснять не надо.

Как надо делать:

всегда юзать только локальные инклуды. Те virtual('/scj/top/top.html') надо делать как include('/home/user/domain/scj/top/top.html');

если надо инклудить файлик с дургого домена который на том же серваке - аналогично, просто другой путь.

Если файл на другом серваке то попросить админа прописать копирование этого файла по крону на локальный домен и опять же делать локальный инклуд.

еще вариант

readfile('http://domsin/1.html') - это аналогично include('http://...')

Как обработать параметры

обычно банероротаторы инклудят через JS, но некоторые локальные ротаторы требуют инклуда в темплейте и их инклудят вида

<?php include('http://domain.com/banner.php?x=3&y=2'); ?>

поскольку это не совсем хороший вариант лучше сделать так

<?php $_GET['x'] = 3; $_GET['y'] = 2; include('banner.php'); ?>

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

Запрет доступа для опредленных стран

в .htaccess

RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN)$ [NC] 
RewriteRule ^$ http://google.com [R,L]

Rotate pages for raws (unique timelife)

Часто сайты трейдят в узких нишах и на один и тот же cqn один и тот же серфер приходит несколько раз, но из разных источников. Для таких неуникальных посетителей иногда имеет смысл ротировать страницу. Те создать например 2 дизайна и уникам показывать 1, а неуникам 2 (3 4 5.. ).

Для этого в Settings - CJ pages можно вписать 2 и более строк, по одному дизайну на строку

/home/user/domain/design1.html
/home/user/domain/design2.html
/home/user/domain/design3.html

и при первом заходе юзер видит дизайн1 , при втором - 2 и так далее.

Если вы используете внутренюю ротацию есть 2 варианта.

1. В Rotation - Tube - Tube Settings тестовая опция ротирования страниц для равов. Смысл в следующем: если у вас на индексе тумбы и приходит рав, то автоматически ему показывает 2ю страницу. Если видел 2ю, то 3я, и так далее. Аналогично для категорий: если приходит прямо на категорию и данную страницу категории уже видел - показываем ему следующую. NOTE! Это правило срабатывает только в том случае, если реферер не ваш домен. Сделано дабы человек кликая с морды на тумбу категории всегда видел эту тумбу на открывшейся странице (те ему надо видеть первую страницу категории).

2. Только индексная страница как в стриме например. делаем Х файлов вида

domain/1.php

<?php
$_GET['page'] = 1;
include('/scj/cgi/index.php');

domain/2.php
<?php
$_GET['page'] = 2;
include('/scj/cgi/index.php');

и прописываем CJPages 

/home/user/domain/1.php
/home/user/domain/2.php

и так далее

Если надо сделать ссылки на трейдеров не через аут, то такие клики можно считать используя AJAX

Пример топа

<a target=_blank href='_MEMBER_1_URL' class='domain_css' trader='_MEMBER_1_'>test</a>

из чего получаем результат вида

<a target=_blank href='http://somedomain.com/' class='domain_css' trader='somedomain.com'>test</a>

те линки прямые. Теперь, что бы учитывать эти клики надо добавить код, который будет выполнять AJAX запрос

<script src='/YOUR_FOLDER/includes/js/jquery.js'></script>

<script type="text/javascript">
$(document).ready(function(){   
	$('.domain_css').each(function(){
		$(this).on('click', function(){
			$.get('/YOUR_FOLDER/cgi/out.php?member=' + $(this).attr('trader'),
				{
				},
		  		function(data) {
		  		}
			);


		});
	});

});

</script>

Те тут главное моменты:

  • поменять YOUR_FOLDER
  • каждый линк с топе имеет класс class='domain_css' и поле trader='somedomain.com'
  • потом по этому классу вешается событие на клик $('.domain_css').each(function(){

Page track

Можно проследить на какую страницу приходит траффик и какие есть переходы на сайте.

В Trade - Statistics - Page Track 2 колонки: Inbound Views (если реф не наш сайт) and Local Views (если реф - наш сайт)

Есть 2 варианта

1. &page_track=… в урле

2. в темплейте таг <!–PAGE_TRACK_….–>

На данный момент есть варианты

<!--PAGE_TRACK_CURRENT_PAGE--> 
<!--PAGE_TRACK_CATEGORY--> 
<!--PAGE_TRACK_любое_слово--> 
ru/hints.txt · Last modified: 2023/02/13 08:44 by admin