Недавно я изменил формат своего веб-сайта на php (, а не на html ), т.е. я переименовал все свои HTML-страницы с расширением.php и исправил ссылки с моим файлом.htaccess.
Мне нужно отслеживать мои новые php-страницы с помощью Google Analytics, поэтому я создал отдельный php-файл, содержащий фрагмент javascript Google. Я разместил его в корне моего веб-сайта и связал с ним каждый из моих тегов php с помощью этого кода после тега <body>
:
<?php include_once("analyticstracking.php") ?>
Моя проблема в том, что это работает только с моей страницей index.php. Все другие мои страницы не могу найтиanalyticstracking.php
(в Dreamweaver пишет, что "analyticstracking.php" отсутствует на локальном диске. Получить")
Если я изменю ссылку (, добавив "/" )к:
<?php include_once("/analyticstracking.php") ?>
то все мои страницы могут найти файл, но Google Analytics не отслеживает мою активность.
Я использую «Аналитику -в реальном времени», чтобы проверить это.
Вот мой адрес www.brp -architects.com. (В настоящее время используется
<?php include_once("/analyticstracking.php") ?>
так как этот код с «/» позволяет всем моим страницам найти мой php-файл кода отслеживания ).
Вся причина, по которой я это делаю, заключается в том, что я могу использовать фрагмент PHP-кода для получения IP-адресов посетителей моего веб-сайта, получая IP-адрес прокси-сервера:
<?
if (getenv(HTTP_X_FORWARDED_FOR)) {
$ip_address = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ip_address = getenv(REMOTE_ADDR);
}
?>
Спасибо за ваши ответы!
Вот мой фрагмент отслеживания из файла analyticstracking.php:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-5434990-2']);
_gaq.push(['_trackPageview']);
setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over 30 seconds\'])',30000);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Ссылка на мой код отслеживания находится прямо под открывающим тегом body :
<?php include_once("/analyticstracking.php") ?>
-. 121 ---1918082-
У меня есть скрипт, в котором платежные системы приходят с подтверждениями оплаты. Чтобы сделать страницу безопасной, поскольку она может получить доступ к информации о заказе и другим материалам, связанным с пользователем, мне пришлось ограничить доступ по ip (/24 ), как следует:
$ipAllowed = array(
'192.192.192',
'172.172.172'
);
$ipAllowed = str_replace(".", "\.", implode("|", $ipAllowed));
if(!preg_match("/^($ipAllowed)\.[0-9]{1,3}$/", $_SERVER['REMOTE_ADDR'])){
header('HTTP/1.0 403 Forbidden');
die('You are not allowed to access this file.');
}
*ip просто для примера
До того, как я использовал:
if(!in_array(@$_SERVER['REMOTE_ADDR'], array('ips here'))); //only works with full ip
Массив !in _был намного аккуратнее, чем тот, который я использую сейчас, но мне нужно что-то, что работает с /24 ips или даже с обоими!
Знаете ли вы что-то, что работает лучше/быстрее, надежнее и аккуратнее?
@rap -2 -h Как вы сказали, это более аккуратная версия, которая работает с полным ip, /24 или даже /16
$ipAllowed = array( '192.168.1.153' '172.172.172');
$allowed = false;
foreach($ipAllowed as $ip):
if(strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) $allowed = true;
endforeach;
if (!$allowed) {
header('HTTP/1.0 403 Forbidden');
die('You are not allowed to access this file.');
}