webForumDet fria alternativet

Hämta id.

Perl & Ruby

23 svar · 484 visningar · startad av Kent · sida 2 av 2

Frågan, av Kent

Hur gör man för att hämta ett unikt id i perl, ex jag har 50 olika txt filer, 1.txt 2.txt osv, som jag vill öppna i guestbook.cgi?id=12, ungefär som en gästbokhosting, hur löser jag det.

Läs frågan i sin helhet →
Medlem sedan dec. 19992 555 inlägg
#21

Det fungerar för mig i.a.f. Fram till rad 20 vill säga, där ju scriptet avslutas eftersom du har en exit.

Vad säger felloggen?

use CGI ":standard";

Om du ändå laddar CGI-modulen så kan du göra det enklare för dig genom att använda den när du läser indata från användaren. Detta gör du genom att byta ut:

$in = $ENV{'QUERY_STRING'};
@in = split(/[&;]/,$in); 
foreach $i (0 .. $#in) { 
$in[$i] =~ s/\+/ /g; 
($key, $val) = split(/=/,$in[$i],2); 
$key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge; 
$val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge; 
$in{$key} .= "\0" if (defined($in{$key})); 
$in{$key} .= $val; }$id = "";
if ($in{'id'}) { 
$id_number = ($in{'id'}); 
$id_number =~ s/[^0-9]//g; 
}

Mot:

$query = new CGI;
$id_number = $query->param('id'); 
$id_number =~ s/[^0-9]//g;

Det brukar rent allmänt rekommenderas att man använder CGI-modulen snarare än att skriva dessa rutiner själv. En anledning att inte använda CGI-modulen kan möjligen vara att den är ganska stor, och tar relativt lång tid på sig att ladda. Men om du ändå laddare den ser jag ingen anledning till att inte utnyttja den fullt ut. :)

------------------
Robban < robban@lipogram.com >

Medlem sedan juli 2000355 inlägg
#22

Nu funkar det perfekt.!!!
En fråga till bara, om jag även vill hämta olika användare i från users.txt och visa de olika färger eller typsnitten som dom har valt hur gör jag då.?
Mycket tacksam för hjälp med detta.

Medlem sedan juli 2000355 inlägg
#23

Ingen som kan detta.
Jag vill hämta 12.txt, och sedan rad nr 12 från users.txt, hur löser man det??

Medlem sedan dec. 19992 555 inlägg
#24

Du kan normalt sett (undantaget är om du vet exakt hur många bytes varje rad innehåller) inte gå in och läsa en specifik rad i en textfil, utan du måste läsa från början och räkna dig fram till rad 12.

Efter att du läst in filen med:

@lines = (<GUESTBOOK> );

... så har du ju rad tolv i $lines[11].

------------------
Robban < robban@lipogram.com >

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)