20. juli 2007 - 20:42Der er
22 kommentarer og 1 løsning
Sletning af post i database
Jeg har en asp-fil der ser sådan ud. Og den virker sådan, at den linker til en htm-fil: spillerliste_slet.htm med en formular, hvor spilleren skal indtaste sit nummer for at slette posten. Jeg synes bare at det er lidt for usikkert, da man jo på den måde kan komme til at slette en anden spillers data (hvis man skriver forkert nummer) Jeg har godt nok fundet nogle ekempler her på eksperten.dk, hvor man blot klikker på linket for at slette data, men det kan jeg ikke få til at virke. Så mon ikke der er nogen der kan hjælpe mig med en bedre løsning?
' Fortsæt indtil rs er gennemløbet (EOF = End Of File) Loop else Response.Write "Der er ikke nogen tilmeldinger i denne kategori" Response.Write "<p>Hvis du ønsker at tilmelde dig kan du gøre det her fra siden.</p>" Response.Write "<a href='spillerliste_tilmeld.htm' class='link'>Tilmeld</a>" end if ' Luk recordsettet rs.close set rs = nothing
' Luk databaseforbindelse Conn.Close Set Conn = Nothing %>
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Ja, det er meningen at man blot skal slette den aktuelle post (sædvanligvis sig selv). Og ja, jeg er godt klar over at man "bare" kan gå ind og slette de andre også, hvis man har lyst til det. Men sådan må det lige være i starten, så må vi se om jeg får det udbygget med andre muligheder. Jeg er nemlig nybegynder, og skal tage det i "små" bidder. Jeg checker om det virker, når jeg kommer hjem fra Odense, og så lægger jeg selvfølgelig et svar ind med resultatet. Sidder lige og spekulerer på hvad default.asp er for noget? Har godt nok sådan en i roden på serveren, men det er ikke en jeg selv har lavet/lagt ind.
default.asp er den fil som der bliver vist når man besøger et domæne, på samme måde som index.html (mener at man også kan kalde den index.asp)
Hvis du vil have at man kun kan slette sit eget navn, så kan man evt. lave det sådan at man skal indtaste et password før den vil slette eller du kan lave et "mini bruger system" og så skal du kigge lidt på det der hedder "sessions"
i spillerliste.asp får jeg denne fejl (bemærk at jeg i ovenstående kode har ændret id til nummer (=feltnavnet i databasen) og det kom til at se korrekt ud:
Microsoft VBScript compilation error '800a0400'
Expected statement
/asp/slet.asp, line 60
end if ^
Jeg har blot kopieret din kode ind i filen slet.asp skulle jeg have ændret noget her også?:
Det er faktisk der jeg er begyndt med grundprincipperne og nu er jeg ved at udvide mulighederne, hvorfor jeg benytter de gode eksperter herinde.
Men tak for tippet alligevel.
Du har i en tidligere kommentar til mig skrevet sådan:
Hvis du vil have at man kun kan slette sit eget navn, så kan man evt. lave det sådan at man skal indtaste et password før den vil slette eller du kan lave et "mini bruger system" og så skal du kigge lidt på det der hedder "sessions"
Kender du et godt sted hvor jeg kan se noget om det der hedder "sessions"? Kan ikke se det som et selvstændig punkt herinde på Eksperten.
det er en funktion i asp (der står noget på html.dk her http://www.html.dk/tutorials/asp/lektion12.asp) men princippet er at når mna fx. laver et login system, så kan man lave en session (forstil dig at det er en variabel som man kan tildele en værdi) som kun den person der logger ind har.
eks:
Hvis jeg har en bruger i en database så har jeg et id (autonr) og når jeg så logger ind med mit password kan man gør sådan at fx. session("id") vil indeholde mit idnr så kan man fx i din løkke ved "slet" funktionen skrive:
<% if session("id") = rs("Nummer") then repsonse.write "DIN SLET FUNKTION" end if %>
Hvis det er helt uforståenden kan jeg godt lave et lille hurtigt loginsystem som eksempel du kan se på!
Jeg lavede et i går for en sikkerheds skyld :) og består af 3 filer og databasen. i databasen har jeg tilføjet feltet "Password" og de 3 filer er:
default.asp - login siden logud.asp - et logud sript, man ser ikke den side da man bliver sendt tilbage til default.asp liste.asp - som er med spillerne
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Opretter forbindelse til batabasen set Conn = server.createobject("ADODB.connection") Conn.Open "DBQ=" & server.mappath("medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"
'undgår tegn der vil crache loginfunktionen strBruger = Trim(Replace(request.form("bruger"),"'","''" )) strPass = Trim(Replace(request.form("pass"),"'","''" ))
LogSQL = "SELECT * FROM Medlemmer where Navn = '" & strBruger & "' AND Password = '" & strPass & "'" Set rsLog = Conn.Execute(LogSQL)
If Not (rsLog.BOF Or rsLog.EOF) Then
'tildeler session("id") brugers eget idnr Session("id") = rsLog("Nummer") 'tildeler session("login") værdien true, til kontrol af login Session("login") = true 'Ændre udløbstiden for sessionen til 15 min Session.Timeout=15
'sender bruger til den beskyttede side ved login response.Redirect("liste.asp") else 'skriver fejlbeked, hvis oplysningerne ikke er korrekte response.write "fejl i login" end if
Conn.Close Set Conn = Nothing
end if %> <html> <head> <title>Login side</title> </head>
<% 'Følgende linjer gør at man ikke kan bruge "history back" knappen efter at have logget ud Response.Expires = 0 Response.ExpiresAbsolute = Now() - 1 Response.AddHeader "pragma","no-cache" Response.AddHeader "cache-control","private" Response.CacheControl = "no-cache"
Response.Buffer = True
'hvis man ikke har fået tildelt en true værdi kan man ikke se siden og sendes til default.asp (se nederst i dokumentet) if session("login") = true then %> <html> <head> <title>Liste</title> </head>
Conn.Close Set Conn = Nothing %> </body> </html> <% else 'sendes til default.asp hvis man ikke har adgang til siden response.Redirect("default.asp") end if %>
Du har været forudseende ;-) Jeg kigger på det i aften når jeg er kommet hjem fra arbejde - så hører du nærmere, og så må vi finde ud af noget med nogle flere point til dig.
og det virkede bare perfekt første gang. Har beholdt min gamle spilleroversigt hvor man ikke behøver login og lavet linket til "afmeld" om så man kommer direkte til login-siden. Nu er jeg ved at strikke en formular sammen så man kan få oplyst pw via en returmail, hvis man skulle glemme det. Det bliver lidt primitivt, men sådan må det være i starten, så kommer udvidelserne nok hen ad vejen. Nok en gang tak for den store hjælp, det var rigtig dejligt og brugerne af det site jeg er ved at lave, er rigtig glade for muligheden med at man kan se hvem der spiller live rollespil i vores forening. Hvis du er nysgerrig er det toenderlive.dk
Synes godt om
Ny brugerNybegynder
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.