29. april 2006 - 22:25
Der er
16 kommentarer og 1 løsning
Problemmer med min beskyttelse af mit nyhedssystem login /sessio
hej jeg har et problem med min beskyttelse ved mit nyhedsystem. Problemt besåtr i at jeg har en kode øverst på siden som skal beskytte siden så det kun er admin der kan komme ind. Men hver gang jeg er logget ind som admin og prøver at oprette en nyhed og jeg trykker på opret i min formular (submit) ryger jeg ud af admin border og ender på forsiden og nyheden er ikke blevet oprettet... Scriptet i toppen af siden :: <% if isEmpty (session("id")) Then Session.Timeout = 20 Session.Contents.RemoveAll() Response.Redirect("Default.asp") End if %> Scriptet til min admin login :: <!--#include file="../includes/inc_forbindelse.asp" --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <link href="../Layout/design.css" rel="stylesheet" type="text/css"> </head> <% If Request.QueryString("action") = "login" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","''")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'","''")) If (Len(strUID) > 0) And (Len(strPWD) > 0) Then Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM protect WHERE (Username = '" & strUID & "') AND (Password = '" & strPWD & "')", database If (Not rs.BOF) And (Not rs.EOF) Then intUID = rs("id") intTRAN = rs("transfer") Else strERR = "Access Denied" End If If Len(intUID) > 0 Then Session("id") = intUID Response.Redirect intTRAN End If Else strErr = "Access Denied" End If If Len(strErr) > 0 Then strErr = "<p><font color=""red"">" & strErr & "</font></p>" End If End If %> <!-------------------------------------------------------- Login formularen ------------------------------------------------------------> <form method="post" action="default.asp?action=login"> <table class="Text" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="Overskrift">Login ::</td> </tr> <tr> <td> <a href="reg.asp"><img style="margin-top:2px;" src="../layout/register.gif" border="0"></a> </td> <td> <a href="#"><img style="margin-top:2px;" src="../layout/password.gif" border="0"></a> </td> </tr> <tr> <td width="50%">ID:</td> <td width="50%"><input class="logFelt" type="text" name="Brugernavn"></td> </tr> <tr> <td width="50%">Pass:</td> <td width="50%"><input class="logFelt" type="password" name="Adgangskode"></td> </tr> <tr> <td colspan="2" align="right"><input class="logGo" type="submit" value="Login" name="Action"></td> </tr> <tr> <td colspan="2"> <%=strErr%> </td> </tr> </table> </form> </body> </html> Nyheds system script :: <table class="matchesText" border="0" width="487" style="float: center; margin-top:6px;" cellpadding="0" cellspacing="1"> <tr> <td> <% If Request("action") = "" then %> <Form method="post" action="am_news.asp?action=skriv"> </td> <tr> <td>Overskrift:</td> <td><input class="logFelt" type="text" name="overskrift"></td> </tr> <tr> <td>Name:</td> <td><input class="logFelt" type="text" name="Navn"></td> </tr> <tr> <td>Tekst:</td> <td><textarea class="textArea" cols="40" rows="10" name="text"></textarea></td> </tr> <tr> <td>Billedefilnavn:</td> <td><input class="logFelt" type="text" name="billede"></td> </tr> <tr> <td><input class="skrivGo" type="submit" name="Submit" value="Opdater"> </form> </td> </tr> <tr> <!-- her bliver slet includet --> <td colspan="2"> <!--#include file="../includes/inc_slet.asp" --> </td> <% End if %> <!----------------------- Start på script til indskrivning i database ----------------------> <% If Request("action") = "skriv" then %> <!--#include file="../includes/inc_forbindelse.asp" --> <% Set news = Server.CreateObject("ADODB.Recordset") news.Open "news", database, 2, 2 News.AddNew news("overskrift") = Request.Form("overskrift") news("Navn") = Request.Form("Navn") news("text") = Request.Form("text") news("billede") = Request.Form("billede") news("dato") = Date() news.Update Response.Redirect("am_news.asp") %> <% End If %> </tr> </table> Håber at der er nogle af jer der vil prøve at se om i kan finde problemmet med scriptet så jeg kan få det til at virke. Det er meget vigtig da det er et eksamens projekt...
Annonceindlæg fra Bluecircle
29. april 2006 - 23:35
#1
du sætter jo ikke session("id") til at være noget nogen steder eller hvad? ikke i det viste i hvert tilfælde.
29. april 2006 - 23:37
#2
Det er denne fil (sikkerheds filen) jeg includer på mit nyheds system :: <% if isEmpty (session("id")) Then Session.Timeout = 20 Session.Contents.RemoveAll() Response.Redirect("Default.asp") End if %>
29. april 2006 - 23:39
#3
jo jeg har fundet det hvor du sætter "id" enten har du ikke et felt i din tabel der hedder id, eller også er søgeningen tom
29. april 2006 - 23:42
#4
hmm Ok jeg forstår ikke helt hvad du mener. men har en felt i min database som hedder "id" Forstår bare ikke når man adder nyhed at den så går til forsiden. Nyheds system virker ellers fint når man ikke har incluedet sikkerheds filen = <% if isEmpty (session("id")) Then Session.Timeout = 20 Session.Contents.RemoveAll() Response.Redirect("Default.asp") End if %>
29. april 2006 - 23:44
#5
jo jeg har forstået det nu du kan ikke have den i toppen af den side, da sesssion("id") aldrig når at blive sat før den tjekker og sender dig væk. koden bliver jo udført fra toppen af siden og nedefter. du er nød til at fjerne den fra loginsiden, men så have den på alle andre sider. altså dit tjek
29. april 2006 - 23:45
#6
eller også køre den efter, du har kigget i db efter brugernavn og pw.
29. april 2006 - 23:45
#7
og sat session
29. april 2006 - 23:48
#8
kan du ikke lige prøve at sætte det ind i scriptet er ret ny i asp kun haft det i 3 uger så. ikke lige den største hej til det :D
29. april 2006 - 23:49
#9
hvis du ikke har det tjek på din loginside, det har du vist ikke alligevel, hvis jeg lige samler mig sammen og læser ordentligt efter .............. så prøv lige at udskrive din session("id") efter du har sat den.. Session("id") = intUID response.write session("id") 'Response.Redirect intTRAN
29. april 2006 - 23:53
#10
kan jeg ikke lige se hele koden - bare som den nu er...
29. april 2006 - 23:54
#11
Login script :: <!--#include file="../includes/inc_forbindelse.asp" --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <link href="../Layout/design.css" rel="stylesheet" type="text/css"> </head> <% If Request.QueryString("action") = "login" Then strUID = Trim(Replace(Request.Form("Brugernavn"),"'","''")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'","''")) If (Len(strUID) > 0) And (Len(strPWD) > 0) Then Set rs = Server.CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM protect WHERE (Username = '" & strUID & "') AND (Password = '" & strPWD & "')", database If (Not rs.BOF) And (Not rs.EOF) Then intUID = rs("id") intTRAN = rs("transfer") Else strERR = "Access Denied" End If If Len(intUID) > 0 Then Session("id") = intUID Response.Redirect intTRAN End If Else strErr = "Access Denied" End If If Len(strErr) > 0 Then strErr = "<p><font color=""red"">" & strErr & "</font></p>" End If End If %> <!-------------------------------------------------------- Login formularen ------------------------------------------------------------> <form method="post" action="default.asp?action=login"> <table class="Text" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="Overskrift">Login ::</td> </tr> <tr> <td> <a href="reg.asp"><img style="margin-top:2px;" src="../layout/register.gif" border="0"></a> </td> <td> <a href="#"><img style="margin-top:2px;" src="../layout/password.gif" border="0"></a> </td> </tr> <tr> <td width="50%">ID:</td> <td width="50%"><input class="logFelt" type="text" name="Brugernavn"></td> </tr> <tr> <td width="50%">Pass:</td> <td width="50%"><input class="logFelt" type="password" name="Adgangskode"></td> </tr> <tr> <td colspan="2" align="right"><input class="logGo" type="submit" value="Login" name="Action"></td> </tr> <tr> <td colspan="2"> <%=strErr%> </td> </tr> </table> </form> </body> </html>
29. april 2006 - 23:55
#12
protect script :: <% if isEmpty (session("id")) Then Session.Timeout = 20 Session.Contents.RemoveAll() Response.Redirect("Default.asp") End if %>
29. april 2006 - 23:55
#13
Nyheds system script :: <!--#include file="inc_protect.asp" --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <link href="../Layout/design.css" rel="stylesheet" type="text/css"> </head> <body topmargin="0" class="background"> <div align="center"/> <table border="0" width="930" class="tblbg"> <tr> <td> <div align="center"> <!-- HER BEGYNDER TABEL ER HOLDER STYR PÅ ALLE TABELERNE --> <table border="0" width="880"> <tr> <td> <!-- TOP BANNER TABEL --> <table border="0" width="880" cellpadding="0" cellspacing="0"> <tr> <td> <!--#include file="../includes/inc_banner.asp" --> </td> <td> <!--#include file="../includes/inc_top_menu.asp" --> </td> </tr> </table> <!-- TOP BANNER TABEL SLUT --> <!-- LEFT MENU STARTER HER --> <table border="0" width="190" cellpadding="0" cellspacing="0" style="float: left; margin-top:11px;"> <tr> <td> <!--#include file="inc_DBlogout.asp" --> </td> </tr> <tr> <td> <img src="../layout/spacer.gif" height="14"> </td> </tr> <tr> <td> <!--#include file="../includes/inc_team.asp" --> </td> </tr> <tr> <td> <img src="../layout/spacer.gif" height="14"> </td> </tr> <tr> <td> <!--#include file="../includes/inc_head_sponsor.asp" --> </td> </tr> </table> <!-- LEFT MENU SLUTTER HER --> <!-- RIGHT MENU STARTER HER --> <table border="0" style="float: right; margin-top:7px;" cellpadding="0" cellspacing="0"> <tr> <td> <!--#include file="../includes/inc_statistics.asp" --> </td> </tr> <tr> <td> <!--#include file="../includes/inc_logo.asp" --> </td> </tr> <tr> <td> <img src="../layout/spacer.gif" height="14"> </td> </tr> <tr> <td> <!--#include file="../includes/inc_main_sponsor.asp" --> </td> </tr> <tr> <td> <img src="../layout/spacer.gif" height="14"> </td> </tr> <tr> <td> <!--#include file="../includes/inc_partners.asp" --> </td> </tr> </table> <!-- RIGHT MENU SLUTTER HER --> <div align="center"> <!-- TEXTBOX STARTER HER --> <table class="matchesText" border="0" width="487" style="float: center; margin-top:6px;" cellpadding="0" cellspacing="1"> <tr> <td> <% If Request("action") = "" then %> <Form method="post" action="am_news.asp?action=skriv"> </td> <tr> <td>Overskrift:</td> <td><input class="logFelt" type="text" name="overskrift"></td> </tr> <tr> <td>Name:</td> <td><input class="logFelt" type="text" name="Navn"></td> </tr> <tr> <td>Tekst:</td> <td><textarea class="textArea" cols="40" rows="10" name="text"></textarea></td> </tr> <tr> <td>Billedefilnavn:</td> <td><input class="logFelt" type="text" name="billede"></td> </tr> <tr> <td><input class="skrivGo" type="submit" name="Submit" value="Opdater"> </form> </td> </tr> <tr> <!-- her bliver slet includet --> <td colspan="2"> <!--#include file="../includes/inc_slet.asp" --> </td> <% End if %> <!----------------------- Start på script til indskrivning i database ----------------------> <% If Request("action") = "skriv" then %> <!--#include file="../includes/inc_forbindelse.asp" --> <% Set news = Server.CreateObject("ADODB.Recordset") news.Open "news", database, 2, 2 News.AddNew news("overskrift") = Request.Form("overskrift") news("Navn") = Request.Form("Navn") news("text") = Request.Form("text") news("billede") = Request.Form("billede") news("dato") = Date() news.Update Response.Redirect("am_news.asp") %> <% End If %> </tr> </table> <!-- HER SLUTTER TABEL ER HOLDER STYR PÅ ALLE TABELERNE --> </div> </td> </tr> </table> </div> </body> </html>
29. april 2006 - 23:56
#14
Det var dem alle håber du finder fejlen så jeg kan oprette en nyhed uden at blive logget ud.
30. april 2006 - 00:02
#15
må jeg se hele din loginside, der ser ikke ud til at være noget på den sidste du sendte
30. april 2006 - 00:03
#16
hey fandt selv ud af det nu det var noget i min logout fil :D brugt hele dagen på at finde den fejl også var det en :: Session.Abandon så nu virker det sku og jeg kan komme vider men ellers tak for hjælpen
30. april 2006 - 00:04
#17
lukker sprøgsmål nu...
Kurser inden for grundlæggende programmering