PDA

Просмотр полной версии : счетчик на PHP для новичка



kikuda
19.01.2005, 23:53
Короче
на отформатированный винч поставил винду, и сразу захотелось на свой старенький сайт поставить счетчик на PHP
я всиавляю в HTML страницу скрипт вида
<?php
$COUNT_FILE = "count.txt";
$message="";
$ip = getenv("REMOTE_ADDR")."::".getenv("HTTP_X_FORWARDED_FOR");
$datum=date("d.m.Y", time()-3*3600);
$fp = fopen("$COUNT_FILE", "rb");
flock($fp,1);
$contents=fread ($fp, filesize ($COUNT_FILE));
fclose ($fp);
$content= explode("\n",$contents);
$counts= explode("|",$content[0]);
$counts[3]=chop($counts[3]);
if ($counts[3]=="") {$counts[3]="1";}
if (!in_array ($ip, $content)) { $content[] = $ip; $counts[1]++; }
$counts[2]++;
$counts[3]++;
if ($counts[0]!=$datum) {
$message="total hits: ".$counts[3]."\ntoday hits: ".$counts[2]."\ntoday uniques: ".$counts[1];
$r11=$counts[1];
$r21=$counts[2];
$counts[0]=$datum; $counts[1]=1; $counts[2]=1;
}

echo ("Всего заходило:".$counts[3]."
За этот день:".$counts[2]."
Уникальных IP:".$counts[1]);
$content[0]=$counts[0]."|".$counts[1]."|".$counts[2]."|".$counts[3];
$fd = fopen("$COUNT_FILE", "a");
$locked = flock($fd,2);
if ($locked) {
$fp = fopen("$COUNT_FILE", "wb");

if ($message=="") { fwrite($fp, implode("\n",$content)); }
else { fwrite($fp,$content[0]); }

fclose($fp);
}
fclose($fd);
if ($message!=""):

mail("you@youmail.ru", "SITE TODAY STAT", $message, "From: Васи");
endif;
?>
создает конечно же файл count.txt на своем хостинге добавляет chmod 777 на него, но ничего не работает, подскажите плиз почему так?
Хост потдерживает PHP http://www.sagr.spb.ru/ это мой сайт

UUU
21.01.2005, 15:49
А что там не работает? все нормальнол - пусто. Причем абсолютно.
Ан нет, в одном фрейме есть

































<?
include("counter/counter.php");
?>


</BODY>
</HTML>


Вот отсюда и копай.

kikuda
22.01.2005, 13:21
<?
include("counter/counter.php");
?>
этот код ссылка на PHP файл с кодом счетчика
то типо теперь код PHP не в HTML коде а отделно вынесен, но все равно нихера не пашет, адреса все вроде бы нормальные.

UUU
22.01.2005, 21:11
Если сия конструкция присутствует в коде, то сие означает, что твой ПХП код не распарсен и не запущен.

kikuda
23.01.2005, 01:00
Если сия конструкция присутствует в коде, то сие означает, что твой ПХП код не распарсен и не запущен.
что значит не распарсен?

Hup
23.01.2005, 09:02
Если сия конструкция присутствует в коде, то сие означает, что твой ПХП код не распарсен и не запущен.
что значит не распарсен?

Это чисто технический термин означающий примерно сдедующее.
Т.к. PHP скрипт исполняется на лету, то ядру перед тем как его исполнять необходимо преобразовать данные в удобной для себя форме, т.е. разбор текста(извлечение необходимых данных) и есть парсинг :)

P.S. Все абстрактно и к словам не цепляйтесь

kikuda
23.01.2005, 12:44
да наверное код левый,
У кого-нибудь есть хороший год счетчика (простого)
слейте мне на мыло плиз 31@nm.ru или прям сюда

UUU
24.01.2005, 08:06
Значит ты не понял. До кода счетчика дело еще и не дошло. Сервер, прочитав статический файл, встретил там конструкцию по запуску счетчика, но он ее не воспринял как запуск ПХП и т.д.
А держит ли твой хостинг ПХП на эти расширения?
У некоторых настроен ПХП только на файлы с расширением ПХП.

kikuda
24.01.2005, 14:34
хост www.replay.ru PHP потдерживет
на странице где счетчик лежит менял расширение .php все равно не помогло

UUU
24.01.2005, 14:52
Я ПХП не знаю, вообще никак, но сравнив код счетчика и то, что привел я (выдержка из твоего файла) я заметил 1 отличие:
В первом случае у тебя написано
<?php
а во втором
<?

Отсюда я делаю вывод, что директива на запуск ПХП <?php

Твой глюкс....

Hup
27.01.2005, 12:27
UUU, странный вывод... Но <?php просто положено по - стандарту(в доке к PEAR читал), но и <? тоже подходит

kikuda, а логи Апача смотрел? Может просто нет прав на запись в твой файл, это между прочим самая прикольная ошибка =)

UUU
27.01.2005, 13:03
Я и написал, что не знаю ПХП :-), но когда надо - смотрю примеры и лезу в инет :-)
Судя по содержанию странички - она вообще не парсится.