Gör det inte så svårt för dig!
Om någon surfar in på sidan och denna filen inte finns - skapa den!
------------------
Peter D
8 svar · 189 visningar · startad av Lukaspojken
"Dagens citat" följer med på varje sida så jag vill inte göra en db-hämtning varje gång man byter sida. Att skapa en statisk-includefil av det är därför mitt alternativ, men hur gör jag för att den ska göra en uppdatering varje ny dag. Citaten finns i en databas. Jag vet hur man skapar en statiskfil från databasen men jag vet inte hur jag ska lyckas med att göra det automatiskt?
------------------
Alltid lär man sig något nytt varje dag...
Gör det inte så svårt för dig!
Om någon surfar in på sidan och denna filen inte finns - skapa den!
------------------
Peter D
... eller en rad för varje dag, dvs 31 rader.
Om användaren surfar in idag, den 22:a, plockas rad 22 ut.
------------------
Peter D
Hur kan jag checka om en fil finns eller inte?
Det ska inte vara massa rader...det blir 365 rader som den måste gå igenom och det är inte så bra.
------------------
Alltid lär man sig något nytt varje dag...
Kolla om filen finns eller ej:
Set ObjLoggFile = Server.CreateObject("Scripting.FileSystemObject")
If ObjLoggFile.FileExists("citat.fil") Then Response.Write "jepp, filen finns"
Ett annat sätt är ju att spara citatet i en application, där du också sätter ett datum. Är det inte dagens datum så är det bara att hämta ett nytt citat från db:n och uppdatera datumet i application. :)
Det går ju göra på motsvarande sätt med en text-fil, vilket jag tycker är att föredra.
------------------
Peter D
Ska se lite vad jag kan hitta på...tack...
------------------
Alltid lär man sig något nytt varje dag...
Du kan kolla mitt exempel på en enkel schemaläggare här:
http://www.bengan.com/tips/default.asp?tips=asp_schema_2.asp
Använd den nedre på varje sida där citatet skall infogs så är du säker på att få dagens citat oberoende var besökaren kommer in.
Sen kan du göra koden för citathämtningen så att den dels sparar citatet i en txt fil och dels skriver ut det med Response.write.
Lägg sen koden så här:
' --- Kolla om det är ny dag och uppdatera isåfall filen. ---
If Application("citat") <> Day(Now()) Then
Server.Execute "citat_update.asp"
Application.Lock
Application("citat") = Day(Now())
Application.Unlock
Else
%>
<!-- #include file="citat.txt" -->
<% End If %>
citat_update.asp är alltså den fil som du kör själva uppdateringen i. Har du sidorna på IIS4 så får du istället lägga in all kod ovan för då funkar inte Server.Execute.
------------------
MvH
/Bengan
www.bengan.com | Brossans Räjser
"Better to be hated for who you are than loved for who you're not."
[Redigerat av Bengan den 22 jul 2001]
Vad innebär detta?
Application.Lock
Application("citat") = Day(Now())
Application.Unlock
------------------
Alltid lär man sig något nytt varje dag...
Du sparar helt enkelt dagens nummer i som ett applikations-värde. Funkar precis som en vanlig variabel fast det ligger i minnet och kan därför läsas av alla sidor.
Application.Lock bör man köra för att det inte skall bli en "krock" när flera sidor försöker spara samtidigt. Har ingen större betydelse i det här fallet men jag tycker det är bra att ta för vana och skriva så.
------------------
MvH
/Bengan
www.bengan.com | Brossans Räjser
"Better to be hated for who you are than loved for who you're not."