IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   счетчик кликов на ссылку (http://www.imho.ws/showthread.php?t=96508)

toll 26.11.2005 02:40

счетчик кликов на ссылку
 
Помогите, пожалуйста, решить проблему.
Устновил счетчик нажатия на ссылку, который записывает количество нажатий в файл stat.dat
В этом файле только одна цифра.
Как дать команду из кода Web-страницы считать эту цифру из файла stat.dat, и отобразить ее на Web-странице?
Буду благодарен за ответ. toll-@tut.by

Stasik 26.11.2005 16:46

<?php
$handle = @fopen("stat.dat", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>

(C) PHP.NET ;)

toll 27.11.2005 02:23

Спасибо за внимание к моей проблеме. Вся проблема в том, что хост не поддерживает PHP в коде HTML страниц. CGI сценарии выполняются только в папке cgi-bin, а HTML-страницы только в WWW директории. Возможно ли считать данные из файла, который находиться в другой директори (cgi-bin) с помощью HTML кода из страницы, находящейся в WWW директории? toll-@tut.by

Scary Zet 27.11.2005 18:52

Афаик, нельзя.

Stasik 28.11.2005 12:19

можно.... или по SSI или элементарно в iframe можно и JS добавить

скриптик кладёшь в /cgi-bin/count.php

в страницу ставишь
<!--#exec cgi="/cgi-bin/count.php" -->
не будет работать можно страницу в *.shtml переименовать....

если пхп не исполняется, можно и в перле написать... а с ифреймом... я те подскажу если ССИ работать не будет.. писать в падлу Ж)

Hubbitus 28.11.2005 12:29

Можно, если доступны инструкции SSI типа virtual, exec, можно тогда включить ими результат выполнение CGI-скрипта.

toll 29.11.2005 01:54

SOS!!!
 
<!--#exec cgi="/cgi-bin/counter.php" -->
Stasik, это не работает, блин.
У меня есть HTM-страница main.htm, которая находится в WWW-директории, где хост не дает работать скриптам.
На странице есть ссылка "Скачать", при нажатии на которую
срабатывает скрипт counter.php, находящийся в cgi-bin директории, где
работают скрипты и cgi-сценарии.
Этот скрипт записывает количество нажатий на ссылку в файл stat.dat,
находящийся в cgi-bin. Вот этот скрипт counter.php:
<?php

$f=fopen("stat.dat","a+");
flock($f,LOCK_EX);
$count=fread($f,100);
@$count++;
ftruncate($f,0);
fwrite($f,$count);
fflush($f);
flock($f,LOCK_UN);
Header("location:/avt.rar");
?>

Как!!!!! прочитать информацию из файла stat.dat при загрузке страницы
main.htm ???????????? и отобразить на этой странице?
Я не верю, что это невозможно.

toll-@tut.by

Stasik 29.11.2005 02:09

да возможно всё... страницу в .shtml переиминовывал?

вот если не работает тогда будем с JS гемороиться...

вот скрипт count.php

PHP код:

<?php
echo "<html><script>";
echo 
"parent.getElementById('c').innerHTML = \"";
$handle = @fopen("stat.dat""r");
if (
$handle) {
while (!
feof($handle)) {
$buffer fgets($handle4096);
echo 
$buffer;
}
fclose($handle);
}
echo 
"\";";
echo 
"</script></html>";
?>

вот

в HTML:
Код HTML:

Файл скачан <div id="c"></div> раз.
и потом ниже в самом конце страницы:
Код HTML:

<iframe height="1" width="1" src="./cgi-bin/count.php" scrolling="no"></iframe>
вуаля.... (с граматикой (раз или раза) думай сам.... это домашнее заданее ;) )

aoxyz_30330 29.11.2005 04:45

а чего, на перле чтоли незя?

Hubbitus 29.11.2005 12:09

А что, SSI точно не доступен??

Только вместо iframe наверное лучше стандартный <script> юзать, зачем велосипед-то изобретать...

вот скрипт count.php
PHP код:

<?php
if ($handle = @fopen("stat.dat""r")){
$count fread($handlefilesize("stat.dat")); //Если ПХП не слишком старый, вместо этого всего сразу получаем file_get_contents
fclose($handle);
}
// else - Облом, обработать ошибку открытия файла (Лень, это же пример)
?>
document.open();
document.write('<?=$count?>');
document.close();

Ну и вызываем это где нужно уже непосредственно:
Код:

Файл скачан <script type="text/javascript" src="cgi-bin/count.php"></script> раз.
Повторяю еще раз, если есть SSI, то лучше на нем сделать, а не изобретать подобного.

Цитата:

aoxyz_30330:
а чего, на перле чтоли незя?
Можно, почему нет, то же самое будет приблизительно. НЕ важно кто выведет данные, важен способ их включения.

А еще лучше, попробуйте просто на странице вписать следующее:
Код:

<script type="php" src="cgi-bin/test_file.php"></script>
Это должно просто вызвать ПХП-файл на обработку и включение результатов. Это может быть первоначальный ПХП-файл, который и выводил количество, который на SSI включить пытались

Stasik 29.11.2005 15:09

это тоже дело, но просто я использую iframe т.к. его можно ещё и перегружать (извиняюсь за изобретение.....)


Часовой пояс GMT +4, время: 08:44.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.