Автор Тема: Передача из ХТМЛ-документа параметров скрипту...  (Прочитано 3018 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Вот что на самой страничке...
http://www.glebushka.hut.ru/cgi-bin/hot/logstat/glebstat/infolog.cgi?login=1" WIDTH="1" HEIGHT="1" BORDER="0">
Я этим надеюсь запустить скрипт и передать параметр логин=1
В самом файле скрипта infolog.cgi...
use CGI;#подключаем модуль
$q=new CGI();#создаём модуль
$login=$q->param(\'login\');#надеюсь этим получить в переменную значение 1...
Далее неплохо бы, что бы скрипт получил такие значения, как $ENV{\'REMOTE_ADDR\'}
Почему ничего не получается?
Ну к чему все это, лучше бы водки выпили...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
а чего не получается? Все правильно, все нормально.
$ENV{\'REMOTE_ADDR\'}  таким способом определяется.
Может ты у себя это локально проверял и сервер не запустил? :)

потом редирект на сам рисунок сделай и готово

print "Location: http://glebushka.hut.ru/img.gif\\n\\n";
 в исканиях.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
То есть оно без редиректа не работает?
Пошёл менять...
Ну к чему все это, лучше бы водки выпили...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
То есть оно без редиректа не работает?
Пошёл менять...

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

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Дык не работает!
« Ответ #4 : 12 Апреля 2002, 03:30:03 »
Файл создан, указан атрибут 0664!
use CGI;#подключаем модуль
$q=new CGI();#создаём модуль
$login=$q->param(\'login\');
$logfile = "/home/g/glebushka.hut.ru/cgi/hot/logstat/glebstat/$login.pl";
#файл, где храниться инфа для юзера
&get_date;

open (FILE, ">>$logfile");#открываем файл для дописи
print FILE "$ENV{\'REMOTE_ADDR\'};\\n"; #IP-шник юзверя, пришедшего на сайт...
print FILE "$ENV{REMOTE_HOST};\\n";#Имя хоста посетителя, которое обычно совпадает с доменным именем посетителя
print FILE "$ENV{\'HTTP_USER_AGENT\'};\\n"; #Браузер юзверя
print FILE "$ENV{\'HTTP_REFERER\'};\\n";  #Сслающаяся страница (откуда пришёл)
print FILE "$date\\n";#время захода юзверя на сайт
print FILE "---------------------------------------\\n";
close(FILE);
print "Location: http://glebushka.hut.ru/favicon.ico\\n\\n";
exit;
После этого, хоть чего-нить должно остаться в файле, а?
Страница, где вызывается скрипт:
http://www.glebushka.hut.ru/regedit7.html
сразу после тега боди...
Чего не так?
Ну к чему все это, лучше бы водки выпили...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
ээ
« Ответ #5 : 12 Апреля 2002, 03:53:24 »
все так, а что ничего не пишется?
1. Сделай везде проверку, по типу:
open() or &log("Can not open, reason $!");
и докинь подпрограммку:

sub log {
open(LOG, ">>log.txt") or die("Can not open LOG: $!");
print LOG @_;
close LOG;
exit;
}
увидишь свой лог.


2. Закинь рисунок для начала видимый - если загрузится, значит скрипт сработал ;)

3. кстати, довольно неразумно выглядит это:
$login=$q->param(\'login\');
$logfile = "/home/g/glebushka.hut.ru/cgi/hot/logstat/glebstat/$login.pl";
;) типа небезопасно, можно всякубю хрень передать, а ты это открывать будешь.

4. Может вместо param тут лучше будет такое:

if ($ENV{\'QUERY_STRING\'}=~/login=(\\d+)/){$login=$1;}
else{die("Bad file name!");}
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
о еще
« Ответ #6 : 12 Апреля 2002, 04:02:02 »
у тебя счетчик будет не самый правильный: картинка будет кешироваться ну и при обновлении - ничего ты не увидишь (кстати, может и не работало, т.к. ты там небось с десяток раз побывал и у тебя уже картинка из кеша берется, а как я появился :) сработало)
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
и еще
« Ответ #7 : 12 Апреля 2002, 04:04:53 »
совсем необязательно передавать параметры скрипту в таком виде
script.pl?имя=значение
Если значение одно ;)
то проще так:
script.pl?значение (например script.pl?9 )

И оно содержится в $ENV{\'QUERY_STRING\'}, т.е. прямо оттудова хапаешь и проверяешь (главное проверить что передается)
 в исканиях.

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
Цитировать
кстати, может и не работало, т.к. ты там небось с десяток раз побывал и у тебя уже картинка из кеша берется, а как я появился  сработало)

Угу... Спасибо, что кликнул по ссылке, а то бы я вообще сегодня не спал:), всё скрипт сверял, да на ф5 жал, как идиот, хотя может и без как:))))))))... Ну да ладно, лучше пойду я спать...
Кстати, как сделать "правильный счётчик"?
Ну к чему все это, лучше бы водки выпили...

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Кстати, как сделать "правильный счётчик"?

;) лучше взять готовый rambler например.. зачем свой сервер грузить, когда можно получить нечто по кач-ву не хуже?

а вообще, нужно подумать как бы предотвратить кеширование на статичных страницах, наверное тут нужен javascript, который бы генерировал некое случайное число в ссылке с картинкой.
 в исканиях.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
наверное тут нужен javascript, который бы генерировал некое случайное число в ссылке с картинкой.

Не обязательно, можно и перловым скриптом добавить
$rand_numb = int( rand( 10000000 ));

вызов получится
http://www.glebushka.hut.ru/cgi-bin/hot/logstat/glebstat/infolog.cgi?$user-$rand_numb
The documentations is your friend

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Цитировать
Не обязательно, можно и перловым скриптом добавить
$rand_numb = int( rand( 10000000 ));

Не-а: он это использует на статичных html страницах.
 в исканиях.

 

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