kollade här på brw´s skript... ser att det är ingen vanlig db:koppling... hur ändrar man denna kod till vanlig???
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={SQL Server};SERVER=servern;UID=login;PWD=password;Database=databas"
SQLStmt = "SELECT * FROM users WHERE login = '" & FixaTecken(Request.Form("login")) & "' AND password = '" & FixaTecken(Request.Form("password")) & "'"
Set RS = Connection.Execute(SQLStmt)
If RS.EOF Then
Response.Redirect("default.asp")
Else
Session("userid") = RS("id")
Response.Redirect("insidan.asp")
End If
%>
fråga 2: om man vill ha mer sessioner än "userid" hur lägger man till det då?
fråga 3: vad står "EOF" för?
fråga 4: just nu på min inloggningsgrej så när man ska logga ut kommer man typ till en sida som heter "logout.asp" som fixar all utloggning... kan man istället göra en include av denna "logout.asp" fil på förstasidan (dit man kommer först när man besöker sidan utan att vara inloggad)?
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open ("driver={Microsoft Access Driver (\*.mdb)}; DBQ=" & Server.MapPath("Sökvägen till din databas.mdb"))
Visa = "SELECT \* FROM users WHERE Username='" & Request.Form("Username") & "' AND Password='" & Request.Form("Password") & "'"
Set RecSet = Connect.Execute(Visa)
If RecSet.EOF Then
RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
Response.Redirect("login.asp")
Else
Session("Username") = RecSet("Username")
Session("Password") = RecSet("Password")
Frågan är om det är bra att ha användarnamn och lösenord i session...man kanske borde bara ha id...?
okej, tack! det funkar prima, men en sak, jag som då ska kunna komma till en viss sida eftersom jag är webmaster, hur gör jag då? jag har en include på varje sida som ska skyddas för att kolla om man har rätt upggifter inne...
men nu, varför tuggar den bara på denna kod?:(detta är includen)
<%
If Session("username") = "" Then
Response.Redirect("test.asp")
ElseIf Session("password") = "" Then
Response.Redirect("test.asp")
ElseIf Session("username") = "crisse6" Then
Response.Redirect("xxxx.asp")
End If
Session.Timeout = 10
%>
+ att jag vill ha så att BARA om jag skriver in crisse6 och lösenordet så kommer jag till admin sidan!
konstigt...på adminsidan har jag samma include som på alla andra sidor!
I dit läge så skulle jag ha gjort så här:
Lägg till ett ja/nej-fält i databasen som du kan kalla för Admin.
Om den är ikryssad då har du adminrättigheter.
Sen är det ju bara att kolla:
If RecSet("Admin")= True Then
Response.Redirect("xxxx.asp")
Else
Response.Redirect("test.asp")
End If
he, he ... ja, fast då kan man inte inkludera den på alla sidor.
Det som händer är att den kollar om session är true och sedan redirectar den. Om nu sessionet är true så kommer den att redirecta hela tiden, dvs en evighets loop.
Det man ska göra är:
If Session("Admin") <> True Then
Response.Redirect "login.asp"
End If
Denna kod kan inkluderas på alla sidor, förutom på login sidan då *ler*, utan att få en evighetsloop.
Nog hadde jag hoppats på att du förstod bättre än så!!!
Sciptet som jag skrev skall ju bara ligga på en sida, där han loggar in. Därefter så skapar man ju en session eller en coccies som talar om att man är admin.
Sen är det ju bara att använda. Vad är det som säger att du måste ha en includefil i varje sida som säger att du är ADMIN?????
Eller???
varför då ha en inloggning?
Tänk om ngn försöker att gå in på min "gömda" katalog och av en händelse råkar få tag på min adminsida .... vad har då inloggningen för funktion?
om man gör som jag så kan de komma till min adminsida ... fast, de blir redirectade tillbaka till en inloggningssida ...
Nja, som jag tänkte/har gjort är att om man har det fältet med, som jag beskrev ovan, så på sidan efter inlogning kan det dyka upp en knapp till admin sidan.
Sedan på alla adminsidorna så inkludera man ett script som om man inte är inloggad, skickar en tillbaka.
Väldigt snarlikt det du menar, men med en liten finnes bara....
tack för all hjälp!
bara en fråga... jag har tre frames... en där uppe, mitten och i botten... i mitten sker det mesta... men nu vill jag ha typ så här:
Din status: Online, Du har 1 nytt meddelande osv... men detta ska var i botten framen... hmmm.... jag kan inte använda global.asa så jag vill ha så att när man är inte är inloggad så står det inte ngt där nere men direkt när man loggat in står det status....
okej, nu har jag fått hjälp med den utskrivningen om man är "Online" eller "Offline" Tackar PatrikB
men nu en annan sak, jag vill ha dessa fyra kompinationer:
Om man har ngt nytt meddelande
Hur många medlemmar det är på sidan
Om man är Online eller Offline
Och hur många gånger man varit inne på grodan
okej, löste alla kod tillsammans... allt funkar utom att det står -1 när den ska visa hur många medlemmar det finns... hmmm? kolla koden ! (psst.. inga felmess får jag =) )
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
'#### db koppling 2 #####
Set Databas2 = Server.CreateObject("ADODB.Connection")
MdbFilePath2 = Server.MapPath("mess.mdb")
Databas2.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath2 & ";"
'##### db koppling 3 #####
Set Databas3 = Server.CreateObject("ADODB.Connection")
MdbFilePath3 = Server.MapPath("users.mdb")
Databas3.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath3 & ";"
'###### Slut på db-kopplingar ########
'##### lite sql grejs #########
SQL = "SELECT * FROM users"
strsql2 = "select count(*) as antalnya from meddelande where till = '" & session("username") & "' and status='oläst'"
sql3 = "SELECT * FROM users"
'##### Slut på sql grejs
'##### köra dom #####
set rsStatus=Databas.execute(SQL)
set rsMess=Databas2.execute(strsql2)
set rsUsrs=Databas3.execute(sql3)
%>
<%
If Session("username") > "" Then
Response.Write "Online"
Else
Response.Write "Offline"
End If
%>
<%
Response.Write "<a href=""mejl.asp"" target=""detail""><span style=""text-decoration:none;"">Du har " & rsMess("antalnya") & " nya meddelanden</a>"
%>
<%
intTotMembers = rsUsrs.RecordCount
'## -- skriv ut antal medlemmar --
Response.Write intTotMembers
'## -- loopa igenom recsetet --
'## -- till sist, förstör recset och conn object --
Set rsUsrs = Nothing
Set Databas3 = Nothing
%>
<%
Set rsStatus = Nothing
Set Databas = Nothing
Set rsMess = Nothing
Set Databas2 = Nothing
%>