Avatar billede svinget Praktikant
19. august 2005 - 12:52 Der er 25 kommentarer og
2 løsninger

Afvis bruger der ikke har været logget ind i 30 dage

Hej

Jeg forsøger at lave en kode der afviser bruger der ikke har været logget på i 30 sage, men jeg får en syntax error. Håber nogen kan hjælpe med den rigtige kode:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../DB/database.mdb")
Conn.Open DSN


If DateDiff('d', log, Now()) <= 30 where Session("username") = "username" Then
  Response.write "Velkommen<br><br>"

else
response.redirect("no_access_old.asp")

End If
%>
/Svinget
Avatar billede medions Nybegynder
19. august 2005 - 12:55 #1
Prøv med:

If DateDiff('d', log, Now()) <= 30 AND Session("username") = "username" Then
  Response.write "Velkommen<br><br>"

else
response.redirect("no_access_old.asp")

End If

//>Rune
Avatar billede medions Nybegynder
19. august 2005 - 12:56 #2
Om ikke andet, hvad siger din fejl?

//>Rune
Avatar billede softspot Forsker
19. august 2005 - 12:58 #3
Er det ikke fordi du benytter apostrof i stedet for anførselstegn i DateDiff, altså:

If DateDiff("d", log, Now()) <= 30 where Session("username") = "username" Then
  Response.write "Velkommen<br><br>"

else
response.redirect("no_access_old.asp")

End If
Avatar billede softspot Forsker
19. august 2005 - 12:59 #4
Apostroffen fungerer jo som udkommenteringstegn i VBScript...
Avatar billede softspot Forsker
19. august 2005 - 13:01 #5
Indrømmet... Where er heller ikke så god i VBScript :D
Avatar billede medions Nybegynder
19. august 2005 - 13:06 #6
Så alt i alt burde det vel være:

If DateDiff("d", log, Now()) <= 30 AND Session("username") = "username" Then
  Response.write "Velkommen<br><br>"

else
response.redirect("no_access_old.asp")

End If

- dog mener jeg at man godt kan bruge ' og ' i en funktion?! :)

//>Rune
Avatar billede softspot Forsker
19. august 2005 - 13:12 #7
Hvis man kunne det, hvordan skulle VBScript-fortolkeren så finde ud af hvornår du mener kommentar og hvornår du mener string - mao. jeg erklærer mig uening :)
Avatar billede svinget Praktikant
19. august 2005 - 13:14 #8
hmmm med kode fra 13:06:21 får jeg denne fejl:
Wrong number of arguments or invalid property assignment: 'log'
Avatar billede softspot Forsker
19. august 2005 - 13:17 #9
Det er fordi der er en matematisk funktion som hedder log. Prøv at kalde den noget andet...
Avatar billede svinget Praktikant
19. august 2005 - 13:18 #10
Jeg har prøvet at kalde den log 2 - Det giver denne fejl:
Syntax error

/internal/result1.asp, line 29

If DateDiff('d', log2, Now()) <= 30 AND Session("username") = "username" Then
Avatar billede softspot Forsker
19. august 2005 - 13:20 #11
medions >> vedr. din kommentar 13:06:21 ang. brug af apostrof, så skriver MS på MSDN:

"As shown in the syntax section, you can use an apostrophe (') instead of the Rem keyword. If the Rem keyword follows other statements on a line, it must be separated from the statements by a colon. However, when you use an apostrophe, the colon is not required after other statements."

hvilket jeg tolker som at du ikke kan bruge den til andet end kommentar (da der ikke kræves andet end apostroffen for at starte en kommentar (i modsætning til REM, som kræver et kolon før REM-kommandoen).

Se det hele på:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsstmRem.asp?frame=true
Avatar billede softspot Forsker
19. august 2005 - 13:22 #12
du benytter nu igen apostrof i stedet for anførselstegn...???
Avatar billede svinget Praktikant
19. august 2005 - 13:25 #13
Ja, for ellers kan jeg slet ikke få siden vist:
The page cannot be found

Denne har jeg brugt et andet sted, og den virker:
SQL = "SELECT * FROM links Where DateDiff('d', log, Now()) <= 30 and navn = 'alle' Order By log Desc"
Avatar billede softspot Forsker
19. august 2005 - 13:29 #14
Jamen, det er fordi det benyttes i en SQL-streng, det er noget andet end at bruge det i VBScript...
Avatar billede softspot Forsker
19. august 2005 - 13:29 #15
Det er lidt forvirrende det her. Kan du ikke vise koden i sin helhed, så det er muligt at se sammenhængene...?
Avatar billede svinget Praktikant
19. august 2005 - 13:40 #16
ok - Den sidst nævnte er for at kunne se de poster der er mindre en 30 dage gamle. Men self, det er brugt i en SQL streng. Det havde jeg ikke lige tænket over. Måske er det slet ikke muligt?
Avatar billede softspot Forsker
19. august 2005 - 13:43 #17
Det kode som medions har skrevet i sin kommentar fra 13:06:21 burde fungere, så jeg skulle mene at der er noget andet galt med din kode hvis siden slet ikke kan vises. Det kan jeg dog kun hjælpe dig med at finde ud af hvis du viser mig koden... ;)
Avatar billede svinget Praktikant
19. august 2005 - 13:54 #18
Sorry  - korrekt. Koden 13:06:21 giver ikke fejl, men jeg bliver hele tiden redirect videre, selvom Log2 er lig med dags dato.
Avatar billede softspot Forsker
19. august 2005 - 14:00 #19
Prøv at sikre dig at Session("username") indeholder det du forventer... det kan være der årsagen ligger...
Avatar billede svinget Praktikant
19. august 2005 - 14:06 #20
Ahh selfølgelig - jeg ville jo sammenligne Session username med tabellen username, men det er jo ikke det jeg gør. Kan jeg overhovedet gøre det, for det kræver vel noget SQL streng indblandet?
Avatar billede softspot Forsker
19. august 2005 - 14:08 #21
Det ser ud til at det er lykkes for dig at trække log (som blev til log2) ud af databasen, så du kan sammenligne på den... så det kan du vel også gøre med username...?
Avatar billede svinget Praktikant
19. august 2005 - 14:20 #22
og alligevel ikke, for hvis jeg hard coder session username, så bliver jeg stadig redirectet. Jeg er nød til at hive Log2 ud i en session ved log on, og derefter sammenligne det i en IF sætning. Det er lidt for langhåret for mig :(
Men tak for hjælpen alligevel - Poster du et svar
Avatar billede softspot Forsker
19. august 2005 - 14:26 #23
Ehm... gemmer du sidste logon sammen med brugerens oplysninger, for så er det vel blot et spørgsmål om at hente et felt mere og lægge i session (ligesom du har gjort med username)... eller hvad?

Hvis du giver mig lidt flere oplysninger om hvordan din database er skruet sammen, så kan jeg evt. hjælpe dig med at konstruere et SQL der kan bruges til at hente de fornødne oplysninger ud...
Avatar billede svinget Praktikant
19. august 2005 - 14:46 #24
Det ville være rart med lidt ekstra hjælp. Jeg har nu fået Log2 lagt ind i en session ved navn log2, men hvordan kan jeg få det ind i IF sætningen?
Avatar billede softspot Forsker
19. august 2005 - 14:49 #25
Jeg vil tro det er sådan her så:

If DateDiff("d", Session("log2"), Now()) <= 30 AND Session("username") = "username" Then
  Response.write "Velkommen<br><br>"

else
  response.redirect("no_access_old.asp")

End If
Avatar billede svinget Praktikant
19. august 2005 - 15:03 #26
Hey - det virker. Takker mange gange :)
Avatar billede softspot Forsker
19. august 2005 - 15:06 #27
Og jeg takker for point :)
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