Avatar billede thebeginner Nybegynder
13. august 2002 - 19:51 Der er 3 kommentarer og
1 løsning

Skriv info til en fil og læs info fra samme fil ( cgi )

Hej til jer.

Jeg skal bruge et lille script der kan skrive information fra en form ( html ) til en tekst fil.

Hvordan kan jeg lige gøre dette... her er hvad jeg har fået sat sammen:

$logfile = "C:\\server\\tmp\\userlist.dat";
open filehandle, ">>$logfile";
print filehandle "Nick = $nick \n";
print filehandle "oprindelse= $oprindelse \n";
print filehandle "Email = $email \n";
print filehandle "-----------------------------------------\n";
close filehandle;

Scriptet skriver godt nok noget i en fil. Kun det nedenstående

nick =
oprindelse =
email =

Den skriver ikke indholdet af værdierne :-(
De felter som hedder nick, oprindelse, email er de samme felter som er i html dokumentet !!

Håber der er en der kan hjælpe...
Avatar billede sys64738 Nybegynder
13. august 2002 - 23:24 #1
#!/usr/bin/perl
print "Content-type:text/html\n\n";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@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/\n/ /g;
    $FORM{$name} = $value;
}

open(OUTF,">>userlist.dat") or dienice("Couldn't open userlist.dat for writing: $!");

print OUTF
"$FORM{'name'}|$FORM{'email'}|$FORM{'howreach'}|$FORM{'rating'}";

%boxes = ("des" => "Website Design",
          "svr" => "Web Server Administration",
          "com" => "Electronic Commerce",
          "mkt" => "Web Marketing/Advertising",
          "edu" => "Web-related Education" );

foreach $key (keys %boxes) {
    if ($FORM{$key} == 1) {
        print OUTF "$key,";
    }
}

print OUTF "|$FORM{'comments'}\n";
close(OUTF);
               
print <<EndHTML;
<html><head><title>Thank You</title></head>
<body>
<h2>Thank You!</h2>
Thank you for your feedback.<p>
<a href="index.html">Return to our home page</a><p>
</body></html>
EndHTML

sub dienice {
    my($msg) = @_;
    print "<h2>Error</h2>\n";
    print $msg;
    exit;
}
Avatar billede thebeginner Nybegynder
15. august 2002 - 16:09 #2
hEJ sYS64738

Jeg har kigget lidt på dit forslag, det kan nu nok bruges, men der er vist en fejl et eller andet sted...

Når den skriver den user.dat fil kommer kun e-mail adressen med :-(

Hvor kan fejlen ligge... Jeg giver dig point for det du har lavet pt.
Avatar billede sys64738 Nybegynder
15. august 2002 - 22:29 #3
Det var blot et eksempel men det er denne linie du skal skrive om så den passer til dine egne felter,:
...print OUTF
"$FORM{'name'}|$FORM{'email'}|$FORM{'howreach'}|$FORM{'rating'}";
...

så den skulle måske hedde,:
...
"$FORM{'nick'}|$FORM{'oprindelse'}|$FORM{'email'}";
...

Klø på... og tak for points
Avatar billede thebeginner Nybegynder
15. august 2002 - 23:17 #4
Hej sys64738

Takker, så virker det sku.. Det er bare okay :-))

Men men, jeg har altså et spørgsmål mere.. Håber du kan give en lige så god hjælp til det...

Hvordan trækker jeg så lige de informationer ud til en html side ?
Jeg kan se i scriptet at der er tilføjet nogle"|" tegn, det syntes jeg er en oki ide..

The Beginner..

Ps.. dit script kan nu bruges til en hel del..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester