The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Apache - help."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Apache - help."
Сообщение от .htaccess emailИскать по авторуВ закладки on 30-Июл-02, 02:16  (MSK)
проблема такая: при выводе результатов cgi скрипта не выводяться переменные, хотя при выполнении из консоли - все нормально. Что делать? Спрашивали у умных людей, говорят:

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

но уломать этих людей на помощь - никак - все заняты сильно.

Вопрос: как же запустить этот транслятор? копался в мануалах по апачу - ненашел такого.

Помогите, плз.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Apache - help."
Сообщение от SiN emailИскать по авторуВ закладки on 30-Июл-02, 09:21  (MSK)
В cgi или в pl обязательно должна быть строчка (если cgi или pl предполагается запускать на web сервере):
#!/usr/bin/perl
Она как раз то и указывает откуда взять транслятор.
Второе надо указывать http заголовок
print ("Content-type: text/html\n\n");
Правда на счет второго не совсем уверен, но когда я разбирал чужую cgi у меня тоже ни чего не выводилось на экран до тех пор пока я не указал http заголовок.
Надеюсь поможет :))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Apache - help."
Сообщение от .htaccess emailИскать по авторуВ закладки on 30-Июл-02, 13:05  (MSK)
ну вот сам скрипт:
#!/usr/bin/perl

use CGI qw(:standard escapeHTML);

$k=0;

print "Content-type: text/html\n\n";

open (USERS, "/etc/squid.passwd");
while ($line = <USERS>)
{
    @users[$k] = split (":", $line);
    $k++;
}
close USERS;

print start_html("stat");

foreach $l (@users)

{
    open (ACCESS, "/var/log/squid/access.log");
    $sum=0;
    while (<ACCESS>)
    {
    ($time, $elapsed, $ip_from, $reply_code, $size, $method, $url, $ident, $hdata, $type) = split(" ");
    if ($ident eq $l)
        {
  if ($reply_code ne "TCP_DENIED\/407")
{
  open (OUT, ">>$ident.user");
  print OUT $ip_from." ".$url." ".$size."\n";
                                  close OUT;
                                  $sum=$sum+$size;
}
        }
    }
    close ACCESS;
    print "$l";
}

print ":";
print " $sum";
print " bytes\n";

print end_html;

вроде как все верно, но при выполнении он выводит:
": bytes "
в виде HTML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><title>stat</title>
</head><body>:  bytes
</body></html>

а вот когда через консоль:
Content-type: text/html

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
        "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"><head><title>stat</title>
</head><body>rat: 170899 bytes
</body></html>

т.е. результат должен выводится.

как быть?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Apache - help."
Сообщение от Аноним emailИскать по авторуВ закладки on 30-Июл-02, 14:54  (MSK)
[...]
>open (USERS, "/etc/squid.passwd");
[...]
>вроде как все верно, но при выполнении он выводит:
>": bytes "
[...]
>а вот когда через консоль:
[...]
></head><body>rat: 170899 bytes
></body></html>
>
>т.е. результат должен выводится.
>
>как быть?

permissions, сэр, permissions. nobody он и в Африке nobody.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру