webForumDet fria alternativet

Hämta info till shtml!

3 svar · 137 visningar · startad av nordan

nordanMedlem sedan juni 2000949 inlägg
#1

Hej
Om man har ett program som registrerar antal nerladdningar av program som man har på sin sida och vill lägga in viss info med ssi.
Alltså om man typ har en logg fil som ser ut så här.

prog. 1 nerladdningar: 42
prog. 2 nerladdningar: 2
prog. 3 nerladdningar: 57

Nu skulle jag vilja få in dessa olika värden i en shtml sida på bestämda platser.
Gå detta att göra med ett perl program?

tex skulle det kunna se ut så här:

<table>
<tr>
<td>Antal nerladdningar av prog 1 är</td><td>Värdet (i detta fall 42)</td>
</tr>
<tr>
<td>Antal nerladdningar av prog 2 är</td><td>Värdet (i detta fall 2)</td>
</tr>
<tr>
<td>Antal nerladdningar av prog 3 är</td><td>Värdet (i detta fall 57)</td>
</tr>
</table>
Jag vill alltså hämta väden med hjälp av perl programmet till shtml sidan. Det går ju med SSI men jag förstår inte hur man skall kunna dela upp värdena så att man får 42 på ett ställe
2 på ett annat ställ
OSV...
MVH
O
God Jul
//nordan

JoakimMedlem sedan dec. 199982 inlägg
#2

vore smidigare om du hade loggen i "vanligt" format för textdatabas med t.ex. | som avgränsare. Då skulle din logg se ut (ungefär) så här:

1|42
2|2
3|57

sen skriver du ett litet script som hämtar värden från den rätta raden beroende på vilket id-nummer du använder när du anropar scriptet. Altså.. om du lägger in en ssi som anropar statistik.cgi?id=1 så går scriptet till raden med id 1 och hämtar värdet 42 och returnerar detta. Om du tycker det är krångligt så säg till så kan jag skriva ett exempel.

------------------
--------
Joakim Johansson
Vice VD / tekniker
Stereo Communication

nordanMedlem sedan juni 2000949 inlägg
#3

Hej
Du gärna tala om hur man skriver detta script?
Eller visa ett lite ba så att jag kommer igång

//nordan :)

JoakimMedlem sedan dec. 199982 inlägg
#4

Hej!

Det här scriptet läser från filen och returnerar "statusen". Databasen skall vara i formatet:

id|nedladdningar|

t.ex.:

1|4513|
2|2354|
osv.

Vill du veta hur många nedladdningar filen med id 2 har anropas scriptet med:
filnamn.cgi?id=2

#!/usr/bin/perl
# Script för att hämta och läsa data från textdatabas

# Databasfilen
$db_file = "data.db";
# Ändra till din fil/sökväg

use CGI::Carp qw(fatalsToBrowser);

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
if (length($buffer) < 5) {
$buffer = $ENV{QUERY_STRING};
}

@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

$value =\~ tr/+/ /;
$value =\~ s/%(\[a-fA-F0-9\]\[a-fA-F0-9\])/pack("C", hex($1))/eg;
$value =\~ s/\[\\;\\&#0124;\\\\ \]/ /ig;
           
push(@values,$value); push(@names,$name);   
$input{$name} = $value;

}

open (ORGDB,"$db_file");
@data=<ORGDB>;
close (ORGDB);

if ($input{'id'}){&get_status;}
else {&error;}

sub get_status {

foreach $line (@data) {
($db_id,$db_status) = split(/\|/, $line);

if ($db_id == $input{'id'}){
print "Content-type: text/html\n\n";

#Ändra den här print-satsen så den passar dig
print "$db_status nedladdningar";

$id_found = "yes";
}

                  }

if ($id_found ne "yes"){&error;}
}

sub error {

print "Content-type: text/html\n\n";
print "<FONT FACE=\"Verdana\" SIZE=\"2\">\n";
print "<B>FEL</B><BR>";
print "Scriptet har inte anropats korrekt eller så kunde ingen data med det ID du angett hittas.";
print "</FONT>";

  }

Lycka till!

------------------
--------
Joakim Johansson
Vice VD / tekniker
Stereo Communication

255 ms totalt · 3 externa anrop · v20260731065814-full.30151723
133 ms — hämta forumlista (db)
119 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)