Avatar billede donslund Nybegynder
28. august 2002 - 21:55 Der er 28 kommentarer og
1 løsning

Vil ikke vise siden.

En side med fælgende kode:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<HEAD>
    <TITLE>Skriv</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
</HEAD>
<BODY>
test test
<%
response.write request.servervariables("var1")
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("numre.txt")
Set f = fso.OpenTextFile(filespec,2)
f.WriteLine request.servervariables("var1")
Set f = fso.OpenTextFile(filespec,1)
Response.write f.ReadLine
f.Close
%>
</BODY>
</HTML>

giver en fejl-500-serverfejl ved visning. Hvorfor det?
Avatar billede eagleeye Praktikant
28. august 2002 - 22:00 #1
Det kunne være fodi du skal skrive server.createobject:

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Avatar billede eagleeye Praktikant
28. august 2002 - 22:02 #2
Men ellers så kan du prøve i IE->Tools->Internet Options->Advanced og slå "show frendly HTTP error messages" fra . Så skulle du gerne få en bedre fejl kode/beskrivelse.
Avatar billede donslund Nybegynder
28. august 2002 - 22:08 #3
Det gav så denne fejl:

test test
Microsoft VBScript runtime error '800a0046'

Permission denied

/falck/skriv.asp, line 16

Linie 16: Set f = fso.OpenTextFile(filespec,2)
Avatar billede eagleeye Praktikant
28. august 2002 - 22:15 #4
Det kunne tyde på du ikke har rettigheder til at skrive til en fil i den folder..


Hvis du prøver at skrive: Set f = fso.OpenTextFile(filespec,1) i stedet for så åbner man for læsning men få du samme fejl.
Avatar billede donslund Nybegynder
28. august 2002 - 22:18 #5
å får jeg Bad fil mode i den linie hvori jeg forsøger at skrive til filen.
Avatar billede eagleeye Praktikant
28. august 2002 - 22:21 #6
Så er det fordi du skal havde skriverettigheder til den folder filen numre.txt ligger i. Er det din egen server??
Avatar billede donslund Nybegynder
28. august 2002 - 22:22 #7
nej
Avatar billede eagleeye Praktikant
28. august 2002 - 22:26 #8
Så må du kontakte din web-hotel og høre om du kan få skriverettigheder til den folder filen ligger i eller flytte den til en folder du har skrive rettigheder i. Eksvis hvor man ligger sine databaser.
Avatar billede donslund Nybegynder
28. august 2002 - 22:36 #9
nu ligger den samme sted som min batabase. Men jeg får stadigvæk permisiion denied.
Avatar billede eagleeye Praktikant
28. august 2002 - 22:38 #10
Så skal du rette denne linie til at åbne filen fra den rigtige folder, evt noget med:
filespec = Server.Mappath("/db/numre.txt")
Avatar billede donslund Nybegynder
28. august 2002 - 22:45 #11
Ja ja, så langt er jeg med. Men det virker ikke. Har skrevet til webhotellet omkring skriverettigheder. Vi får se. Jeg vender nok tilbage i morgen.
Jeg har flyttet til en folder der hedder cgi-bin. Det er der min db ligger.
Avatar billede donslund Nybegynder
30. august 2002 - 19:44 #12
Jeg fatter det simpelthen ikke.

Nu "kører" det. Jeg får ingen fejl, men den skriver ikke til filen.

Koden:

<%
' response.write request.querystring("var1")


Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("cgi-bin/numre.txt")
Set f = fso.OpenTextFile(filespec,8)
f.WriteLine request.querystring("var1")
Set f = fso.OpenTextFile(filespec,1)
Response.write f.ReadLine

f.Close

%>

Ved den sidste response.write sætning skriver den det samme hver gang. Hvorfor det?
Avatar billede eagleeye Praktikant
30. august 2002 - 19:46 #13
Prøv at sætte en f.close ind..:


f.WriteLine request.querystring("var1")
f.Close
Set f = fso.OpenTextFile(filespec,1)
Avatar billede eagleeye Praktikant
30. august 2002 - 19:47 #14
Hvad indeholder var1 ??
Avatar billede donslund Nybegynder
30. august 2002 - 19:49 #15
Avatar billede eagleeye Praktikant
30. august 2002 - 19:49 #16
Hvis den første linie i filen er tom eller et return og du så udskriver lige bagefter så udskriver den kun den komme linie... Eller skal du lave et loop som uskriver linie for linie sådan her:

do while not f.atendofstream
  Response.write f.ReadLine
loop
Avatar billede donslund Nybegynder
30. august 2002 - 19:51 #17
Min txtfil ser således ud:
loadcheck=true&numre=00000000,11111111,22222222


Og det gøt den uanset hvad jeg gør. Jeg har kun en linie og det skal der også kun være.
Avatar billede donslund Nybegynder
30. august 2002 - 19:56 #18
med do while skete der pludselig noget. Jeg tror der er ved at vise sig en løsning. Øjeblik.
Avatar billede eagleeye Praktikant
30. august 2002 - 19:57 #19
ok.. men med denne f.WriteLine skriver man en ny linie til filen. Hvis vi vil hvade skrevet en karakter efter linien skal du bruge f.Write den laver ikke en ny linie med ligger ind i slutningen af filen.

Har du lige tjekket indholdet af filen eller er det det du forvendter der er i filen..

Jeg ville tror filen så ud i stil med:

loadcheck=true&numre=00000000,11111111,22222222
12
12
12


og så x antal 12 taler alt efter hvor mange gange filen er loaded.
Avatar billede eagleeye Praktikant
30. august 2002 - 19:58 #20
WriteLine laver en vbCrLf i filen som svare til return knappen på keyboardet. hvis man skulle lave return i browseren må man skrive <br>
Avatar billede eagleeye Praktikant
30. august 2002 - 20:00 #21
Så hvis du vil havde en lang linie i din fil skal du ændre

f.WriteLine

Til:
f.Write


Du er dog nød til selv at slette de linier der er i filen lige nu.
Avatar billede eagleeye Praktikant
30. august 2002 - 20:01 #22
Hvis du vil havde linie skifte skrevet i browseren skal loopet lavet sådan her:

do while not f.atendofstream
  Response.write f.ReadLine & "<br>"
loop
Avatar billede donslund Nybegynder
30. august 2002 - 20:40 #23
pyha. Den er helt gal. Jeg ryddede op i min flasfil, men har slettet noget så nu er alle tal brugte uanset om de er i txtfilen eller ej.
Avatar billede eagleeye Praktikant
30. august 2002 - 20:43 #24
Øh jeg er ikke helt med?
Avatar billede donslund Nybegynder
30. august 2002 - 20:48 #25
Nej, det kan jeg godt forstå. Nu er den også tilbage hvor den var før så glem mit roderi. Jeg har fundet ud af, at den server jeg lægger det op på hele tiden for at teste ikke arbejder så hurtigt, så alle mine rettelser ved jeg faktisk slet ikke om virker alle sammen. Men jeg arbejder videre.
Avatar billede donslund Nybegynder
30. august 2002 - 21:08 #26
Uanset hvilket tal jeg tester på, så siger den, at den findes i forvejen. Koden fra Flash (selvom det er forkert kategori) er:

// checker om txt-fil er indlæst
if (loadcheck != "true") {
    trace("ikke endnu");
    gotoAndPlay(3);
} else {
   
    used = numre.split(",");
    trace(used[1]);
    for (i=0; i<used.length; i++) {
        if (nummer == used[i]) {
            hits++;
        } else {
            trace(hits);
        }
   
    }
    if (hits != 0) {
        gotoAndPlay(11);
    } else {
        gotoAndPlay(6);
    }
}


Kan du greje det?
Avatar billede eagleeye Praktikant
30. august 2002 - 21:12 #27
Skal du ikke start med at sætte hits = 0


    used = numre.split(",");
    trace(used[1]);
    hits = 0;
    for (i=0; i<used.length; i++) {
Avatar billede donslund Nybegynder
30. august 2002 - 21:16 #28
Det gjorde jeg nu et andet sted, men det hjalp åbentbart at sætte den ind der også. Nu tror jeg jeg (vi) er ved at være der. Jeg tester lige en masse gange.
Avatar billede donslund Nybegynder
30. august 2002 - 21:35 #29
Så kører det f.....

Rigtig mange tak for hjælpen og for din tålmodighed. Jeg vender nok tilbage med et nyt problem en anden dag.
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
Kurser inden for grundlæggende programmering

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