/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
html output og env(ip addresse)
Fra : Kasper Baas


Dato : 23-04-01 15:20

Hej

1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens browser.

2. Samtidig er jeg intereseret i at hører hvordan jeg får fadt i clientens
ip addresse fra browseren.

Please advice..

Mvh. Kasper



 
 
Peter Makholm (23-04-2001)
Kommentar
Fra : Peter Makholm


Dato : 23-04-01 15:22

"Kasper Baas" <baas@post1.tele.dk> writes:

> 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens browser.

Tillykke

> 2. Samtidig er jeg intereseret i at hører hvordan jeg får fadt i clientens
> ip addresse fra browseren.

Brug remote_host() metoden fra CGI.pm objektet.

--
hash-bang-slash-bin-slash-bash

Kasper Baas (23-04-2001)
Kommentar
Fra : Kasper Baas


Dato : 23-04-01 15:30

> > 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens
browser.
>
> Tillykke

tak..
mit problem er at jeg intet får ud til browseren ved print men kører jeg
scriptet lokalt kommer det fint ud.

> > 2. Samtidig er jeg intereseret i at hører hvordan jeg får fadt i
clientens
> > ip addresse fra browseren.
>
> Brug remote_host() metoden fra CGI.pm objektet.

du skulle vel ikke have et eksempel.

Mvh. Kasper



Lars Balker Rasmusse~ (23-04-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 23-04-01 15:40

"Kasper Baas" <baas@post1.tele.dk> writes:
> mit problem er at jeg intet får ud til browseren ved print men kører jeg
> scriptet lokalt kommer det fint ud.

$| = 1;

> > Brug remote_host() metoden fra CGI.pm objektet.
>
> du skulle vel ikke have et eksempel.

perldoc CGI
--
Lars Balker Rasmussen "Special is bad."

Lars Balker Rasmusse~ (23-04-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 23-04-01 15:37

"Kasper Baas" <baas@post1.tele.dk> writes:
> 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens browser.

Jamen, det gør du bare.

(Prøv at læse det du skrev een gang til...)

> 2. Samtidig er jeg intereseret i at hører hvordan jeg får fadt i clientens
> ip addresse fra browseren.

$ENV{REMOTE_ADDR}
--
Lars Balker Rasmussen "Special is bad."

Kasper Baas (23-04-2001)
Kommentar
Fra : Kasper Baas


Dato : 23-04-01 15:43

> > 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens
browser.
>
> Jamen, det gør du bare.
>
> (Prøv at læse det du skrev een gang til...)

Jeg omformulerer:

1. Kan du give mig et eksempel på hvordan man kan skrive til en web browser
fra en while løkke.

Mvh. Kasper



Lars Balker Rasmusse~ (23-04-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 23-04-01 15:59

"Kasper Baas" <baas@post1.tele.dk> writes:
> > > 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens
> browser.
>
> Jeg omformulerer:
>
> 1. Kan du give mig et eksempel på hvordan man kan skrive til en web browser
> fra en while løkke.

Det er da det samme du skriver.

while (condition()) {
print "<hr>\n";
}

Dit problem er (kunne jeg forstå på dit svar til Peter), at du ikke ser
det output din while-løkke laver MENS den arbejder. Men det kan man
altså ikke gætte ud fra det du skriver ovenfor.

Skriv i toppen af dit script:

$| = 1;

Fra perldoc perlvar:

$| If set to nonzero, forces a flush right away and
after every write or print on the currently selected
output channel. Default is 0 (regardless of whether
the channel is actually buffered by the system or
not; $| tells you only whether you've asked Perl
explicitly to flush after each write). Note that
STDOUT will typically be line buffered if output is
to the terminal and block buffered otherwise.
Setting this variable is useful primarily when you
are outputting to a pipe, such as when you are
running a Perl script under rsh and want to see the
output as it's happening. This has no effect on
input buffering. (Mnemonic: when you want your
pipes to be piping hot.)


--
Lars Balker Rasmussen "Special is bad."

Trond Michelsen (23-04-2001)
Kommentar
Fra : Trond Michelsen


Dato : 23-04-01 15:59

"Kasper Baas" <baas@post1.tele.dk> wrote in message
news:9c1evk$hgj$1@news.inet.tele.dk...
> > > 1. Jeg vil gerne skrive ud i HTML fra en while løkke til clientens
> browser.
> > Jamen, det gør du bare.
> > (Prøv at læse det du skrev een gang til...)
> Jeg omformulerer:
> 1. Kan du give mig et eksempel på hvordan man kan skrive til en web
browser
> fra en while løkke.

while () {
print "<blink>Dette er HTML</blink><br>\n";
}

--
Trond Michelsen




Kasper Baas (23-04-2001)
Kommentar
Fra : Kasper Baas


Dato : 23-04-01 16:09

tak.. jeg fandt ud af at min while løkke aldrig kørte..

Jeg prøver at grep fra en text fil på ip niveau og få outputtet til en html
side.

Kan man på en nem måde skrive noget fra /var/log/messages |grep
192.168.1.100 til en $var for derefter at skrive den ud i browseren.

Mvh. Kasper



Lars Balker Rasmusse~ (23-04-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 23-04-01 16:21

"Kasper Baas" <baas@post1.tele.dk> writes:
> Kan man på en nem måde skrive noget fra /var/log/messages |grep
> 192.168.1.100 til en $var for derefter at skrive den ud i browseren.

$var = `grep 192.168.1.100 /var/log/messages`;
print $var;
--
Lars Balker Rasmussen "Special is bad."

Kasper Baas (23-04-2001)
Kommentar
Fra : Kasper Baas


Dato : 23-04-01 17:07

> $var = `grep 192.168.1.100 /var/log/messages`;
> print $var;

Tak jeg får dog stadig intet ud i browseren. please advice. Det virker fint
lokalt på maskinen men ikke i en browser:

Mvh. Kasper

#!/usr/bin/perl

#use strict;
use CGI qw(:all); # Lets us grab vars passed from web
server
use CGI::Carp qw(fatalsToBrowser); # Sent fatal errors to browser

#$CGI::POST_MAX=1024*100; # Maximum 100k posts to prevent CGI DOS attacks
#$CGI::DISABLE_UPLOADS=1; # Disable uploads to prevent CGI DOS attacks

print header(), start_html();
$var = `grep $ENV{REMOTE_ADDR} /tmp/test.txt`;
#$var = `grep 192.168.1.10 /tmp/test.txt`;
print $var;
print end_html;




Nezar Nielsen (24-04-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 24-04-01 12:30

"Kasper Baas" <baas@post1.tele.dk> skrev i en meddelelse
news:9c1jt0$40q$1@news.inet.tele.dk...
> > $var = `grep 192.168.1.100 /var/log/messages`;
> > print $var;
>
> Tak jeg får dog stadig intet ud i browseren. please advice. Det virker
fint
> lokalt på maskinen men ikke i en browser:

Kunne det tænkes, at den bruger apache kører som ikke har lov til at læse
filen/skifte til det bibliotek filen ligger i?

prøv evt. at udskrive brugerens ip inden du grepper, hvis den er tom er det
sikkert derfor - eller kig om du overhovedet har nogen ENV-variable:

print "$_ => $ENV{$_}<br>\n" for keys %ENV;

--
Mvh. Nezar Nielsen
http://fez.dk/




Jacob Brandrup (25-04-2001)
Kommentar
Fra : Jacob Brandrup


Dato : 25-04-01 12:54

> > Tak jeg får dog stadig intet ud i browseren. please advice. Det virker
> fint
> > lokalt på maskinen men ikke i en browser:

har du husket : print "Content-type:text/html\n\n";
i starten af dit script (den er jo ret vigtig hvis man vil lave html via
perl )

Jacob N. Brandrup



Kasper Baas (25-04-2001)
Kommentar
Fra : Kasper Baas


Dato : 25-04-01 14:19

Tak for stor hjælp, fejlen fandt jeg da det pinligt nok gik op for mig at
den $ENV{REMOTE_ADDR} jeg sad ved ikke eksisterede i filen jeg greppede fra.

Mvh. Kasper






Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste