Программирование > JavaScript & JScript

Как передать даные с помощью JavaScript в CGI?

(1/2) > >>

AprilDay:
Нужно передать свойство объекта JS в CGI, так чтоб это выглядело так же, как при вставке CGI с помощью SSI.

Макс:
AprilDay
лучше расскажи про свою конкртеную задачу без общих слов.

Если в общем, то данные от JS можно передать cgi-скрипты тремя методами : GET, POST и cookie. Все 3 способа требуют перезагрзки страницы

AprilDay:
Вопрос возможно не только по JavaScript, поэтому был задан в общем, как один из вариантов решения проблемы. :)

Если конкретно, то мне нужно реализовать статистику по разрешению экрана.

С помощью переменных среды не получается, потому как нет такой переменной, во всяком случае в той версии Apache, которая установлена у меня и моего "хостера".

Передача значений из JavaScripta связанна с некоторыми трудностями. Потому как, организовать передачу свойства объекта screen т.о. как это выглядит когда используется SSI ()  у меня не получилось.



Пробовала сформировать эту строчку с помощью innerHTML. Эффект был, но он оказался каким-то нестабильным. На моем сервере все работает, а на сервере "хостера" через раз, причем чаще не работает.
Как я понимаю эта строчка выполняется на стороне клиента. Так что возможно, что сервер здесь вообще не причем (если не считать исполнение CGI).

Выглядело это так:


function razresh() {
razr.innerHTML="\\\\";
}






Формируется статистика с помощью такого кода.

#!/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();

Phoinix:
Через JavaScript IMHO изврат, так лучше не делать...

Чучше все-таки использовать SSI, а пременные окружения скрипту передаются так:

AprilDay:
Спасибо :)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии