webForumDet fria alternativet

Jag skulle vilja kunna......

6 svar · 393 visningar · startad av BwA

BwAMedlem sedan maj 200064 inlägg
#1

Från en html webform låta användare fylla i ett antal urls sen spara det till en data.txt dom skrivs över när det är en ny användare-hur gör man det???

Hur vet man at det är en i taget :-)???

Vore väldigt tacksam för hjälp!!!

BwA

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Ok, jag vet inte vilken av delarna du vill ha hjälp med men;


use CGI;
$urls = CGI::param('fält1') . "\t" . CGI::param('fält2') . "\t" . CGI::param('fält3'); # Osv så många fält du vill ha.
$urls =~ s/\t\t+/\t/g; # rensa bort angränsare mellan icke ifyllda fält
# Skriv till fil.
open(OUTDATA,">datafil.tab") | | die('Kan inte skriva till datafil.tab');
print OUTDATA $urls;
close(OUTDATA);

Det som nu står i filen är tab-separerade url'er (får man hoppas), och filen skrivs över varje gång.

------------------

/ J

[Redigerat av Jojoxx den 21 jun 2000]

[Redigerat av Jojoxx den 21 jun 2000]

BwAMedlem sedan maj 200064 inlägg
#3

Jag är ingen programerare...:)
open(OUTDATA,">datafil.tab")
ska jag byta datafil.tab till mindatafil.txt???

Sen vill jag bara ha en användare i taget :)

Måste nog fan plugga lite perl .-)

BwA

CoercriMedlem sedan feb. 200093 inlägg
#4

Det är ju inte så svårt att komma igång med cgi.

Eftersom Cgi kan skrivas i 10 olika program språk så bör man nog koncentrera sig på 1 dock.

Finns massvis med bra literatur om Cgi.

------------------
MVH / Coercri

QazMedlem sedan feb. 2000211 inlägg
#5

Japp, datafil.tab skulle kunna heta vad_du_vill.ada om du så ville det :e

För att låsa filen så att bara en användare i taget kan skriva till den gör så här..

use CGI;

$urls = CGI::param('fält1') . "\t" . CGI::param('fält2') . "\t" . CGI::param('fält3'); # Osv så många fält du vill ha.
                                        $urls =~ s/\t\t+/\t/g; # rensa bort angränsare mellan icke ifyllda fält
                                        # Skriv till fil.
                                        open(OUTDATA,">datafil.tab") | | die('Kan inte skriva till datafil.tab');
flock (OUTDATA,2);
print OUTDATA $urls;
close(OUTDATA);

[Redigerat av Qaz den 22 jun 2000]

BwAMedlem sedan maj 200064 inlägg
#6

Tack Alla Och Glad Midsommar!!!!

:)Återkommer efter ........

BwA

RobbanMedlem sedan dec. 19992 555 inlägg
#7

För att låsa filen så att bara en användare i taget kan skriva till den gör så här ...

Mja, skall vi titta lite på den koden. :)

open(OUTDATA,">datafil.tab") | | die('Kan inte skriva till datafil.tab');

Här öppnar du filen för skrivning, och raderar samtidigt innehållet i den.

flock (OUTDATA,2);

Här kör du flock. Problemet är bara att innehållet i filen raderas redan vid öppningen, innan du kör flock. Du riskerar alltså att radera innehållet i en fil som någon annan redan håller på med, och det kanske inte är så lyckat alla gånger.

Det här problemet tas upp i dokumentationen, och där finns också förslag på lösningar.

Dessutom bör du även kolla så att fillåsningen lyckades:

flock (OUTDATA,2) | | die ('Kunde inte låsa datafil.tab');

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

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)