Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: AprilDay от 17 Января 2004, 17:21:47
-
Нужно передать свойство объекта JS в CGI, так чтоб это выглядело так же, как при вставке CGI с помощью SSI.
-
AprilDay
лучше расскажи про свою конкртеную задачу без общих слов.
Если в общем, то данные от JS можно передать cgi-скрипты тремя методами : GET, POST и cookie. Все 3 способа требуют перезагрзки страницы
-
Вопрос возможно не только по JavaScript, поэтому был задан в общем, как один из вариантов решения проблемы. :)
Если конкретно, то мне нужно реализовать статистику по разрешению экрана.
С помощью переменных среды не получается, потому как нет такой переменной, во всяком случае в той версии Apache, которая установлена у меня и моего "хостера".
Передача значений из JavaScripta связанна с некоторыми трудностями. Потому как, организовать передачу свойства объекта screen т.о. как это выглядит когда используется SSI () у меня не получилось.
";
}
Формируется статистика с помощью такого кода.
#!/usr/bin/perl -w
use strict;
use CGI qw(:all);
use Fcntl qw(:flock);
use CGI::Carp qw(fatalsToBrowser);
sub isblock {
open(SEM, ">files/sem")|| die "Невозможно создать sem: $!";
flock(SEM, LOCK_EX)|| die "Блокировка невозможна: $!";
}
sub noblock {
close(SEM);
}
sub razresh {
my ($r, %razr, %razresh);
isblock();
dbmopen(%razresh, "files/razresh", 0644);
%razr=%razresh;
$r=param(\'width\')." x ".param(\'height\');
if ($razr{$r}) {
$razresh{$r}++;
} else {
$razresh{$r}=1;
}
dbmclose (%razresh);
noblock();
}
print "Content-type: text/html\\n\\n";
razresh();
Выводится с помощью такого:
#!/usr/bin/perl -w
use strict;
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);
sub statistika {
my (%razr, %razresh);
dbmopen(%razresh, "files/razresh", 0644);
%razr=%razresh;
dbmclose (%razresh);
print qq(\\t\\t
\\n);
print qq(\\t\\tРАЗРЕШЕНИЕ
\\n);
foreach (keys %razr) {
print qq(\\t\\t$_ - $razr{$_}
\\n\\n)
}
print "Content-type: text/html\\n\\n";
statistika();
-
Через JavaScript IMHO изврат, так лучше не делать...
Чучше все-таки использовать SSI, а пременные окружения скрипту передаются так:
-
Спасибо :)
-
А какие это переменные окружения сервера содержат разрешение экрана у клиента?
AprilDay, ты ради интереса посмотри на код спайлоговского счетчика.