---
title: "Jag skulle vilja kunna......"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/19066-jag-skulle-vilja-kunna"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "BwA"
published: "2000-06-21T15:45:00.000Z"
updated: "2000-06-22T13:42:00.000Z"
replies: 6
views: 420
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/19066-jag-skulle-vilja-kunna"
---

# Jag skulle vilja kunna......

## #1 — BwA, 2000-06-21T15:45Z

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

Permalänk: https://www.webforum.nu/p/19066

## #2 — Jojoxx, 2000-06-21T17:48Z

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.

Permalänk: https://www.webforum.nu/p/340782

## #3 — BwA, 2000-06-22T07:12Z

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

Permalänk: https://www.webforum.nu/p/340783

## #4 — Coercri, 2000-06-22T07:25Z

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.

Permalänk: https://www.webforum.nu/p/340784

## #5 — Qaz, 2000-06-22T08:39Z

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\]

Permalänk: https://www.webforum.nu/p/340785

## #6 — BwA, 2000-06-22T11:41Z

Tack Alla Och Glad Midsommar!!!!

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

BwA

Permalänk: https://www.webforum.nu/p/340786

## #7 — Robban, 2000-06-22T13:42Z

> 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") &#0124; &#0124; 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](http://www.perl.com/newdocs/pod/perlopentut.html#File_Locking), och där finns också förslag på lösningar.

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

```
flock (OUTDATA,2) &#0124; &#0124; die ('Kunde inte låsa datafil.tab');
```

Permalänk: https://www.webforum.nu/p/340787

---

Tråden på webben: https://www.webforum.nu/amne/programmering/19066-jag-skulle-vilja-kunna
