Avatar billede tballe Nybegynder
18. juli 2003 - 11:16 Der er 15 kommentarer og
1 løsning

Læse og skrive til en tekstfil på serveren

Hej er der nogen dom ved, hvordan man kan læse og skrive til en tekstfil ved hjælp af javascript? Gerne et kort kodeeks.

Jeg har tænkt mig at bruge filen til  en skjult tæller.
På samme måde som her med PHP.
<?php
$fil = "counter.txt";

$open = fopen($fil,"r");
$counter = fread($open,filesize($fil));
fclose($open);

$counter = $counter + 1;
// echo "Antal besøgende: $counter";

$write = fopen($fil,"w");
fwrite($write, $counter);
fclose($write);
?>


Alternativt, hvordan får man javascript til at fungere på en PHP side.

Hilsen tballe
Avatar billede Slettet bruger
18. juli 2003 - 12:00 #1
Du kan ikke skrive til eller læse fra filer med JavaScript.
Derimod kan du sagtens få JavaScript til at fungere på en "PHP-side", da det jo bare er en HTML-side, du udskriver vha. PHP.
Avatar billede =maddog= Nybegynder
18. juli 2003 - 12:41 #2
for at uddybe:
Du kan sagtens LÆSE fra en fil på serveren (det er jo det en browser er beregnet til), men ikke SKRIVE til en fil.
Avatar billede Slettet bruger
18. juli 2003 - 12:44 #3
Det kommer an på, hvordan man definerer "læse". Jeg vil mene, at man kan VISE en fil med JavaScript, men ikke LÆSE den. :)
Avatar billede =maddog= Nybegynder
18. juli 2003 - 13:08 #4
Nææeh du kan skam læse filer både som tekst og som xml med javascript. Prøv selv
http://www.dsr.kvl.dk/~maddog/exp377394.html
du kan jo prøve filen selv og index.html. bare skriv et filnavn i input feltet.
Avatar billede roenving Novice
18. juli 2003 - 15:04 #5
Hvis man afvikler det under asp på serveren kan man da vist det hele med Jscript, men det lyder ikke som om det er det, du ønsker.

Skrivning til disk kan man vel kun hvis Jscript afvikles af en server (og så kan der kun skrives til serverens disk!-), eller hvis du kører javascript fra f.eks. html-filer på din egen disk ...

Hvorfor bruger du ikke bare det du har i php ?-)

-- har ikke selv prøvet det men tager det ud fra udsagn om filesystemobject !o]
Avatar billede =maddog= Nybegynder
18. juli 2003 - 15:59 #6
Så vidt jeg husker kan man kun initialisere Automation serveren client-side med MSXML, Microsoft og under tiden MSXML2 og 3 protokol prefix. Hvis du skal starte til eksempel Scripting modulet op kræver det eksekvering under en active scripting host (serverside). FileSystemObject er i Scripting modulet.
myFSO = new ActiveXObject("Scripting.FileSystemObject");
om jeg husker ret.
Avatar billede roenving Novice
18. juli 2003 - 16:00 #7
Ja, præcis sådan står der også i min reference ...
Avatar billede tballe Nybegynder
18. juli 2003 - 16:26 #8
Grunden til jeg har problemer, er at jeg har skrevet funktionen til at læse og skrive til filer både i asp (VB) og php og det virker. Men jeg kan ikke få det til at virke sammen med forskellige javascripts, som jeg ikke orker at skrive om lige nu. Lige nu og her har jeg brug for at kunne etablere en simpel skjult tæller på forskellige sider. Jeg er sådan set lige glad med, hvad det er skrevet i. Jeg kan bare ikke få javascript til  at virke sammen med det andet.

<%

Set FSO = CreateObject("Scripting.FileSystemObject")
Spec = Server.Mappath("counter1.txt")
Set File = fso.OpenTextFile(Spec, 1)
Do While not File.AtEndOfStream

tal = File.ReadLine
Loop
tal = tal+1

File.Close

Set FSO1 = CreateObject("Scripting.FileSystemObject")
Spec = Server.Mappath("counter1.txt")
Set File = fso1.OpenTextFile(Spec, 1)
File.WriteLine tal
File.Close
Set FSO1 = Nothing %>

<html>

<head>
<title>SFAH</title>
<script type = "text/javascript" language = "javascript" src = "opdat.js"></script>

</head>

<body>

<P align="center" class="bund">
    <script>
    opdat();
    </script>

</body>

</html>

Her er det i en index.asp her virker mid sidst opdat() funktion ikke tager jeg det andet væk virker den fint. Jeg har prøvet at rykke runt på asp koden uden resultat. Jeg kan sagtens skrive en ny sidst opdatfunkt i enten php eller asp, det er ikke den kode der er problemet. men alle de andre steder på sitet hvor der der javascript på spil.

Hilsen tballe
Avatar billede tballe Nybegynder
18. juli 2003 - 16:33 #9
Hej maddog

Kan ikke se den side helt, mangler en scrolbar.
Tror i øvrigt ikke det er det jeg
hilsen tballe
Avatar billede =maddog= Nybegynder
18. juli 2003 - 19:07 #10
Hej du.
Prøv lige at læse det du har skrevet igennem. Det er totalt nonsens. Er du venlig lige at skrive det en gang til med tegnsætning (komma og punktum), samt korrektur-læse det.
Serverside-scripts er (naturligvis) ikke direkte tilgængelige clientside. Du kan bruge dit serverside script til at skrive og dit clientside til at læse. Ligeledes skulle det være klart, at du skal bruge Microsoft.XmlHttp og ikke Scripting.FileSystemObject til at åbne filen clientside.
Avatar billede Slettet bruger
19. juli 2003 - 10:20 #11
Ja, XML filer kan selvfølgelig læses, dog kun i IE (indtil videre).
Den med tekstfiler kendte jeg faktisk ikke - men det er jo også kun IE only.

Crossbrowser-løsninger kræver dog formentlig PHP.
Avatar billede tballe Nybegynder
19. juli 2003 - 11:59 #12
Hej maddog

Jeg får ikke vist hele din side. Så det giver ingen mening for mig. Jeg har prøvet at skrive eks. "test" i tekstfeltet og får en mærkelig side frem.
"Det er ikke det jeg søger" skulle der have stået i min sidste kommentar.
Prøv en gang selv at trykke på dit link, det giver ikke megen mening.

Tror ikke at jeg fortsætter her, skal i øvrigt på ferie, så jeg lukker spørgsmålet. Tak for forsøget.

Hilsen tballe
Avatar billede tballe Nybegynder
19. juli 2003 - 12:01 #13
Lukker nu.
Avatar billede =maddog= Nybegynder
19. juli 2003 - 15:34 #14
tballe. du får vist hele min side. der er ikke nogen fil der hedder "test" på min server så selvfølgelig sker der ikke rigtig noget. jeg sagde jo at du skulle prøve filen selv "exp377394.html" eller f.x. "index.html".
Indtil videre kan man åbne en connection i IE (med Active X), i Nerscape 6+ og Mozilla (med XmlHttpRequest) og i Netscape 4 (med nativ Java), og det er IKKE rigtigt når phoenixv hævder der er tale om IE-only script. I den udgave jeg har lagt ud er der ikke NS4 support da folk giver *BEEEP* i denne browser efterhånden.
Avatar billede Slettet bruger
19. juli 2003 - 19:03 #15
Sorry, jeg gør mig vist for klog på noget, jeg ikke aner en paphat om. Undskyld.
Avatar billede erikjacobsen Ekspert
19. juli 2003 - 19:08 #16
Hvis du kalder denne fil for opdat.asp (bemærk .ASP!):

<%

Set FSO = CreateObject("Scripting.FileSystemObject")
Spec = Server.Mappath("counter1.txt")
Set File = fso.OpenTextFile(Spec, 1)
Do While not File.AtEndOfStream

tal = File.ReadLine
Loop
tal = tal+1

File.Close

Set FSO1 = CreateObject("Scripting.FileSystemObject")
Spec = Server.Mappath("counter1.txt")
Set File = fso1.OpenTextFile(Spec, 1)
File.WriteLine tal
File.Close
Set FSO1 = Nothing %>

og så inkluderer den i en vilkårlig anden HTML-fil på denne måde:

<script type = "text/javascript" language = "javascript" src = "opdat.asp"></script>

så burde det virke.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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