Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать счетчик посещений? 
V
    Опции темы
Олюнчик
Дата 20.12.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Ребята, помогите со счетчиком.
Все дело в том, что мой сайт написан на html.
И нужно в самом низу сранички, слева от копирайтов и прочего, разместить число просмотров страницы. Как это сделать? Счетчик сделать нужно просто из обычных цифр... графика не нужна.

Заранее спасибо. smile
PM MAIL ICQ   Вверх
Nab
Дата 20.12.2006, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Если не поддерживается никакое скриптование на сервере, то никак...
Поищите внешний сервис... их много в сети...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 20.12.2006, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Nab, да нет же...
Это задание такое, типа лаба... локальный хостинг через Апач. smile
PM MAIL ICQ   Вверх
Nab
Дата 20.12.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



ну тады во первых форум не тот smile
А во вторых, поиск по форуму рулит... smile
Вот здесь Короб давал неплохой пример
http://forum.vingrad.ru/topic-122087.html


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 20.12.2006, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



И чего? smile
У меня-то не перловый файл, а html-ный...
Как мне быть?

Я так понимаю, нужно вставить в html-код что-то типа этого:

Код

<br />Количество просмотров страницы: 


А дальше как? Нужно ссылку на соответсвтующий cgi-сценарий писать или что?

 smile 
PM MAIL ICQ   Вверх
Nab
Дата 20.12.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Ээээээ, внимательно прочтите мое первое сообщение....
Если это просто статичный HTML то НИКАК

А если поддерживается хоть что-то, из серверного скриптования, то можно делать...
SSI есть? cgi-bin есть? настроен? работает? перл вообще стоит, простой скрипт выполняется?
Код

#/usr/bin/perl -w

print "Content-Type: text/html\n\n";
print "Ok!\n";

1;



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Materium
Дата 20.12.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 4.12.2006
Где: Питер

Репутация: нет
Всего: 2



Тебе что просто оформить нужно инструментами HTML? ))) Как Nab написал без скриптовых языков ты ничего не посчитаешь и никуда не запишешь. А оформить можно десятками разных способов. Так что нужно?

--------------------
#!sub abc {return "ok"}${&abc()}="TMTOWTDI";print "$ok";
PM MAIL   Вверх
Олюнчик
Дата 20.12.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Nab
Materium, надо обязательно инструментами перла делать. smile
Перл стоит, апач тоже, отдельные скрипты выполняются.. 

Цитата

А если поддерживается хоть что-то, из серверного скриптования, то можно делать...


Как узнать?

А еще такая проблема - сделала рассылку и опрос на сайте, вроде все норм, апач запущен, но при нажати соотвественно на "Подписаться" и на "Голосовать" вместо запуска этих сценариев винда выводит окно о загрузке данных файлов.. Почему? Как с этим бороться?  smile 
PM MAIL ICQ   Вверх
Nab
Дата 20.12.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Нужно сформировать корректный заголовок HTTP.
Хотя к делу это не относиться...

Вставить счетчик просто на страницу HTML нельзя... скрипт не выполниться... поэтому в большинстве случаев и юзают картинки... Они подгружаются отдельным запросом...
В Вашем случае можно попробовать SSI, а более верно формировать всю страницу перлом, вместе со счетчиком... тогда у Вас простого html не будет а будут только скрипты которые при отдаче страницы будут подставлять туда значение счетчика... Это можно сделать как используя любую систему шаблонов, так и напрямую вставив html код в код перл...



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 21.12.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Цитата(Nab @ 20.12.2006,  22:32)
В Вашем случае можно попробовать SSI, а более верно формировать всю страницу перлом, вместе со счетчиком... 

Как это сделать?
Как форматировать страницу перлом? У меня уже все готово на html, не хочу переделывать все на перл...

Ребят, помогите написать хоть ЧТО-НИБУДЬ, любой счетчик, чтобы было попроще выполнить...
Скоро уже преподу показывать надо. smile 

Это сообщение отредактировал(а) Олюнчик - 21.12.2006, 00:41
PM MAIL ICQ   Вверх
Nab
Дата 21.12.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(Олюнчик @ 21.12.2006,  00:13)
Цитата(Nab @ 20.12.2006,  22:32)
В Вашем случае можно попробовать SSI, а более верно формировать всю страницу перлом, вместе со счетчиком... 

Как это сделать?
Как форматировать страницу перлом? У меня уже все готово на html, не хочу переделывать все на перл...

Я так и не понял, что именно Вам нужно?

SSI (Server Side Includes) - включения на стороне сервера... файлы почти тотже HTML, только имеют дополнительные конструкции и как правило имеютт расширение .shtml.
Если они включены в апаче, то можно такой вот конструкцией
включить в состав вашей страницы еще и содержимое страницы page.shtml
Код

<!--#include virtual="page.shtml" -->

или результат выполнения скрипта
Код

<!--#exec cgi="my_script.pl" -->


если все формировать перлом, то это отдельный разговор, потому как учитывая что у вас уже сформированный html, то прийдется переписать все ссылки... и вообще это надо было заранее продумывать... как рисуя простой html туда вставлять динамику...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
korob2001
Дата 21.12.2006, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Вот немного переделанный счётчик, который я приводил раньше.
Код

#!/usr/bin/perl
use DB_File;
use CGI qw(param);

my %counter = ();
my $count = 0;
my $page  = param('page');

tie(%counter, "DB_File", "/home/localhost/cgi-bin/counter/count") or die $!;
if (exists $counter{$page} ) {
    $count = ++$counter{$page};
} else {
    $count = $counter{$page} = 1;
}
untie(%counter);
print "Content-type: text/html\n\n";
print $count;

Допустим путь к нему выглядит так /cgi-bin/counter/counter.pl
В том месте HTML страницы, где ты хочешь видеть счётчик, просто подключай SSI.
Например код главной страницы:
Код

<html>
    <head>
        <title>Home</title>
    </head>
    <body>
        <!--#include virtual="/cgi-bin/counter/counter.pl?page=Home" -->
    </body>
</html>

Обрати внимание на то, что при обращении к скрипту нужно передавать параметр, что бы он знал, как идентифицировать счётчик. Это говорит о том, что нужно изменять этот параметр на каждой странице, где ты используешь счётчик. Если выше мы передали параметр Home, для главной страницы, то для гостевой книги вполне подойдёт Guestbook, т.е. наш SSI тэг будет примет такой вид:
Код

<!--#include virtual="/cgi-bin/counter/counter.pl?page=Guestbook" -->




--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Олюнчик
Дата 21.12.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



korob2001, не получается. smile
Может я в пути к файлу что не так сделала... не знаю. smile(

А какое расширение должно быть у файла

Код

#!/usr/bin/perl
use DB_File;
use CGI qw(param);

my %counter = ();
my $count = 0;
my $page  = param('page');

tie(%counter, "DB_File", "/home/localhost/cgi-bin/counter/count") or die $!;
if (exists $counter{$page} ) {
    $count = ++$counter{$page};
} else {
    $count = $counter{$page} = 1;
}
untie(%counter);
print "Content-type: text/html\n\n";
print $count;


И почему у тебя в тексте программы "/home/localhost/cgi-bin/counter/count" , а путь ты написал "Допустим путь к нему выглядит так /cgi-bin/counter/counter.pl" ?

Добавлено @ 12:36 
Цитата

[Thu Dec 21 12:33:27 2006] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at z:\LOCALH~1\cgi-bin\counter.pl line 4.


Вот какая ошибка в logs. Что это значит?
PM MAIL ICQ   Вверх
Nab
Дата 21.12.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(Олюнчик @  21.12.2006,  12:27 Найти цитируемый пост)
А какое расширение должно быть у файла

А это зависит от того как настроен апач, обыкновенно .pl или .cgi.

Цитата(Олюнчик @  21.12.2006,  12:27 Найти цитируемый пост)
И почему у тебя в тексте программы "/home/localhost/cgi-bin/counter/count" , а путь ты написал "Допустим путь к нему выглядит так /cgi-bin/counter/counter.pl" ?

Потому что физическое расположение файла на диске абсолютно никак не связано с тем, как путь к этому файлу видит клиент (броузер или еще какой...). URL формируется тоже в связке с настройками апача. Параметр DocumentRoot или что-либо подобное.

Учитывая что у тебя винда, то путь к счетчику должен быть скорее всего таким:
Код

z:\LOCALH~1\cgi-bin\counter\count


Цитата(Олюнчик @  21.12.2006,  12:27 Найти цитируемый пост)
Цитата
[Thu Dec 21 12:33:27 2006] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at z:\LOCALH~1\cgi-bin\counter.pl line 4.
Вот какая ошибка в logs. Что это значит?

Олюнчик, будьте добры взять словарик и перевести что это значит... всеже здесь форум программистов а не переводчиков... и надо хоть как-то самой двигаться....

А значит это, что компиляция завершилась ошибкой на 4 строке скрипта. Чтоб задавать такой вопрос  желательно еще и ваш файлик показать... Что у вас в 4 строке? Потому как в скрипте который вы привели в 4 строке пусто...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 21.12.2006, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Цитата

[Thu Dec 21 14:27:02 2006] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at z:\LOCALH~1\cgi-bin\counter.pl line 3.


counter.pl
Код

#!z:/usr/Perl/bin/perl

use DB_File;
use CGI qw(param);

my %counter = ();
my $count = 0;
my $page  = param('page');

tie(%counter, "DB_File", "/server/localhost/cgi-bin") or die $!;
if (exists $counter{$page} ) {
    $count = ++$counter{$page};
} else {
    $count = $counter{$page} = 1;
}
untie(%counter);
print "Content-type: text/html\n\n";
print $count;

PM MAIL ICQ   Вверх
Nab
Дата 21.12.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Вообщето если бы у вас не было DB_File, то перл бы так и сказал...
А тут не понятно...
попробуйте первые строки изменить так:
Код

#!z:/usr/Perl/bin/perl -w

use strict;
use DB_File;
use CGI qw(param);




--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 21.12.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Цитата

[Thu Dec 21 14:51:42 2006] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at z:\LOCALH~1\cgi-bin\counter.pl line 4.


Код

#!z:/usr/Perl/bin/perl -w

use strict;
use DB_File;
use CGI qw(param);

my %counter = ();
my $count = 0;
my $page  = param('page');

tie(%counter, "DB_File", "/server/localhost/cgi-bin") or die $!;
if (exists $counter{$page} ) {
    $count = ++$counter{$page};
} else {
    $count = $counter{$page} = 1;
}
untie(%counter);
print "Content-type: text/html\n\n";
print $count;

 smile 
Видимо, ему что-то не нравится тут 'use CGI qw(param);'

Добавлено @ 14:54 
А ошибка 500
Цитата

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



--------------------------------------------------------------------------------

Apache/1.3.20 Server at localhost Port 80

PM MAIL ICQ   Вверх
Nab
Дата 21.12.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Да нет, тут ошибка вроде на DB_File? он у вас вообще стоит?

Попробуйте просто вот такую команду:
Код

perl -MDB_File

У меня правда, он на нее вот так ругается:
Код

Can't locate DB_File.pm in @INC (@INC contains: d:/bin/perl/lib d:/bin/perl/site /lib .).
BEGIN failed--compilation aborted.




--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 21.12.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Попробовала. Вот.
Цитата

[Thu Dec 21 15:41:28 2006] [error] [client 127.0.0.1] BEGIN failed--compilation aborted.


Код

#!z:/usr/Perl/bin/perl -MDB_File

PM MAIL ICQ   Вверх
Nab
Дата 21.12.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



ЭЭЭЭЭ, нет smile

Это:
Код

perl -MDB_File

нужно выполнить просто из командной строки вашей виндоус....... smile



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Олюнчик
Дата 21.12.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 16.12.2006

Репутация: 1
Всего: 1



Ребята! Спасибо!
Я разобралась!!!

 smile 
PM MAIL ICQ   Вверх
Nab
Дата 22.12.2006, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(Олюнчик @  21.12.2006,  22:50 Найти цитируемый пост)
ебята! Спасибо!Я разобралась!!!

Какая толковая девушка smile
Только не забудьте закрыть тему....


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.