Avatar billede reimer7 Nybegynder
27. november 2003 - 22:28 Der er 20 kommentarer og
1 løsning

Klik på link, afføder loginside, efter login udføres 'klikket'

Hej,
Jeg har lavet en anmeldelsesbase i asp, hvori man indenfor forskellige medier; bøger, cd'er, film, tegneserier, computerspil osv. kan skrive anmeldelser til de forskellige mediers genrer, eks. CD = Rock, Pop, Compilations, Klassisk osv.
Når en person går ind for at læse anmeldelser indenfor f.eks. CD -> Rock findes der i bunden af dokumentet et link til selv at skrive en anmeldelse;
http://www.xxx.dk/anmeldelser/showlink.asp?CatID=173&parentID=51&parentname=Musik&Subname=Rock
eller ifald en spilanmeldelse til genren action;
http://www.xxx.dk/anmeldelser/addform22.asp?catid=164&catname=Action&parentID=57&Parentname=Spil
Mit spørgsmål er nu; kan man lægge en loginside imellem, således at en bruger først bliver nød til at tilmelde sig inden vedkommende kan skrive en anmeldelse til den pågældende gruppe? Det skal helst være således at når vedkommende har tilmeldt sig eller afgivet sit login og psw, så blive han/hun automatisk redirected til den ønskede side.
Kan det lade sig gøre, ifald ja, hvordan? (Er stadig ikke nogen haj udi asp)
H-J
Avatar billede thesurfer Nybegynder
27. november 2003 - 22:45 #1
Når personen logger ind, sætter du en session til en værdi som du senere checker.. f.eks:

<%
' en masse asp kode..
' bruger login ok:
session("login") = "true"

' på login.asp checker du om "page" indholder en værdi..
' hvis "page" er tom, kommer brugeren til login.asp direkte
' hvis den indholder en værdi, sendes brugeren tilbage til denne side han kom fra:

if request.querystring("page") <> "" then response.redirect request.querystring("page")
%>

du har så en kontrol.asp som du inkluderer i toppen på alle dine sider:
<%
if session("login") <> "true" then response.redirect "login.asp?page=" & response.write Request.ServerVariables("SCRIPT_NAME")
%>
Avatar billede reimer7 Nybegynder
28. november 2003 - 12:14 #2
Det ser sgu' rigtigt ud, men som sagt jeg er ikke nogen haj til det her så jeg vil være dig taknemmelig ifald du vil vise mig hvor de skal sættes ind (og gøre dig 100 points rigere)

addform-siden ser sådan ud;

<html>
<%
cat = Request.QueryString("CatID")
catname = Request.QueryString("Catname")
parent = Request.QueryString("parentname")
parentID = Request.QueryString("parentID")

%>
<head>
<link rel="stylesheet" type="text/css" href="blk.css">
<title></title>
</head>

<body>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script language="JavaScript" src="overlib.js"><!-- overLIB (c) Erik Bosrup --></script>
<center>
  <p><font face="Arial" size="4"><b>ANMELDELSER</b><br></font>
  '<font face="Arial" size="3" color="#FF0000"><%=parent%></font>' >> '<font face="Arial" size="3" color="#FFcc66"><%=catname%></font>'</p>
  <form method="POST" action="addurl22.asp">
    <table width="300">
      <tr>
        <td width="77"><font size="2" face="Arial"><a href="java script:void(0);" onmouseover="return overlib('Her indtastes forfatterens/kunstnerens navn.');" onmouseout="return nd();" STYLE="text-decoration:
none">Ophav:</a></font></td>
        <td colspan="5"><input name="Ophav" type="text" id="Ophav" size="30"></td>
      <tr>
        <td width="77"><font size="2" face="arial"><a href="java script:void(0);" onmouseover="return overlib('Her indtastes titlen.');" onmouseout="return nd();"STYLE="text-decoration:
none">Titel:</a></font></td>
        <td colspan="5"><input name="Titel" type="text" id="Titel" size="30" ></td>
      </tr>
      <input type="hidden" name="parentID"  value="<%=parentID%>">
      <input type="hidden" name="cat"  value="<%=cat%>">
      <tr>
        <td width="77"><font face="arial" size="2"><a href="java script:void(0);" onmouseover="return overlib('Her indtastes hjemmesidens adresse, hvis en sådan findes.');" onmouseout="return nd();"STYLE="text-decoration:
none">Hjemmeside:</a></font></td>
        <td colspan="5"><input  name="Hjemmeside" type="text"  value="http://" size="30"></td>
      </tr>
      <tr>
        <td width="77"><font face="arial" size="2"><a href="java script:void(0);" onmouseover="return overlib('Her vælges den genre som passer. ');" onmouseout="return nd();"STYLE="text-decoration:
none">Genre:</a></font></td>
        <td width="116"><select size="1" name="Spil">
            <option value=" ">Spil</option>
            <option value="Action">Action</option>
            <option value="AddOn">AddOn</option>
            <option value="Adventure">Adventure</option>
            <option value="Platformsspil">Platformsspil</option>
            <option value="Sport">Sport</option>
            <option value="Simulationsspil">Simulationsspil</option>
            <option value="Strategi">Strategi</option>
            <option value="Racingspil">Racingspil</option>
            <option value="Andre">Andre</option>
            <option value=" ">Musik</option>
            <option value="Antologi/opsamling">Antologi/opsamling</option>
            <option value="Electronica">Electronica</option>
            <option value="Heavy Metal">Heavy Metal</option>
            <option value="Hip Hop">Hip Hop</option>
            <option value="Klassisk">Klassisk</option>
            <option value="Rock">Rock</option>
            <option value="Soundtrack">Soundtrack</option>
            <option value=" ">Film</option>
            <option value="Action">Action</option>
            <option value="Drama">Drama</option>
            <option value="Eventyr">Eventyr</option>
            <option value="Gyser">Gyser</option>
            <option value="Komedie">Komedie</option>
            <option value="Science Fiction">Science Fiction</option>
            <option value="Sp&aelig;nding">Sp&aelig;nding</option>
            <option value="Western">Western</option>
            <option value=" ">Sk&oslash;nlitteratur</option>
            <option value="Eventyr">Eventyr</option>
            <option value="Gys">Gys</option>
            <option value="Humor">Humor</option>
            <option value="K&aelig;rlighed">K&aelig;rlighed</option>
            <option value="Pigeb&oslash;ger">Pigeb&oslash;ger</option>
            <option value="Science Fiction">Science Fiction</option>
            <option value="Sp&aelig;nding">Sp&aelig;nding</option>
            <option value="Anden">Anden</option>
            <option value=" ">Lydb&oslash;ger</option>
            <option value="Eventyr">Eventyr</option>
            <option value="Gys">Gys</option>
            <option value="Humor">Humor</option>
            <option value="K&aelig;rlighed">K&aelig;rlighed</option>
            <option value="Pigeb&oslash;ger">Pigeb&oslash;ger</option>
            <option value="Science Fiction">Science Fiction</option>
            <option value="Sp&aelig;nding">Sp&aelig;nding</option>
            <option value="Anden">Anden</option>
          </select></td>
       
      </tr>
      <tr>
        <td><p><font size="2" face="arial"><a href="java script:void(0);" onmouseover="return overlib('Her indtastes en beskrivelse. ');" onmouseout="return nd();"STYLE="text-decoration:
none">Beskrivelse:</a></font></p></td>
        <td colspan="5"><textarea name="Beskrivelse" cols="35" rows="7"></textarea></td>
      </tr>
      <tr>
        <td><p><font size="2" face="arial"><a href="java script:void(0);" onmouseover="return overlib('Her indtastes din mening. ');" onmouseout="return nd();"STYLE="text-decoration:
none">Mening:</a></font></p></td>
        <td colspan="5"><textarea name="Mening" cols="35" rows="7"></textarea></td>
      </tr>
      <tr>
        <td><p><font size="2" face="arial"><a href="java script:void(0);" onmouseover="return overlib('Her indtaster du dit navn. ');" onmouseout="return nd();"STYLE="text-decoration:
none">Anmeldt af</a></font></p></td>
        <td colspan="5"><input type="text" name="Anmeldt" size="30"></td>
      </tr>
      <tr>
        <td width="77"><font size="2" face="arial"><a href="java script:void(0);" onmouseover="return overlib('Her vælger du hvor mange stjerner den skal have. ');" onmouseout="return nd();"STYLE="text-decoration:
none">Den fortjener...</a></font></td>
        <td width="116" colspan="5"> <p>
            <select size="1" name="Karakter">
              <option>Hvor mange stjerner fortjener den? -&gt;</option>
              <option value="*">1</option>
              <option value="**">2</option>
              <option value="***">3</option>
              <option value="****">4</option>
              <option value="*****">5</option>
            </select>
        </td>
      </tr>
      <tr>
        <td colspan=6><input type="Submit" value="Send anmeldelse" name="B1" style="color: #FFFFFF" style="background-color: #ce0000"> <input type="reset" value="Start forfra" name="B2" style="color: #FFFFFF" style="background-color: #ce0000"></td>
      </tr>
    </table>
</form>
</center>
<center><!--#include file="hj.inc"--></center>
</body>

</html>

Her er siden hvorpå 'tilføj anmeldelse' er;

<html>
<head>
<title>Vis alle anmeldelser</title>
<link rel="stylesheet" type="text/css" href="blk.css">
</head>

<body topmargin="0" leftmargin="0">
<br>
<center><b><font face="Arial" size="3" color="#FFFFFF">Du befinder dig i hovedkategorien '<font face="Arial" size="3"><a href="showsub.asp?CatID=51&Cat=Musik">Musik</a>'</font> >> <font face="Arial" size="3" color="#FFcc66">'Rock'</font></b></center>
<br>

<center><font color=yellow size=3><b>Ingen anmeldelser fundet!</b></font></center>
<center>
<font face="Arial" size="2">Side <B>1</B> </font>
<FONT SIZE="+1">
    </FONT>
<font face="Arial" size="2">af <B>0</B>
</font><br><br> <a href="addform22.asp?catid=173&catname=Rock&parentID=51&Parentname=Musik"><font face="Arial" size="2">Tilføj anmeldelse</font></a>
</center>

<center><p><a href="index.asp"><font face="Arial" size="2">Retur til forsiden</font></a></center>
</body>

</html>


H-J
Avatar billede thesurfer Nybegynder
28. november 2003 - 15:23 #3
Hvis du ikke kender så meget til ASP, kan det anbefales at du læser lektionerne på:
http://html.dk/tutorials/asp/

Lektionerne 17-22 omhandler ASP og Access database.

Information til min kode:
".." betyder "det er er før/efter det jeg skriver nu"


*** 'protect.asp' filen
Selve beskyttelses filen, der sender brugeren over til login siden, kalder jeg protect.asp.
Den indeholder følgende:

<%
' husk at indholdet af session("login") er case-sensitive.
' dvs at "ok" (små bogstaver) ikke er det samme som "Ok", "oK" eller "OK"

if session("login") <> "ok" then response.redirect "login.asp?page=" & response.write Request.ServerVariables("SCRIPT_NAME")
%>


*** Indsættelse af beskyttelse/protection ('protect.asp')
I toppen (dvs, før alt andet) af alle dine asp filer indsætter du linien

<!-- #include file="protect.asp" //-->

Eksempel:

<!-- #include file="protect.asp" //-->
<html>
<%
cat = Request.QueryString("CatID")
catname = Request.QueryString("Catname")
parent = Request.QueryString("parentname")
parentID = Request.QueryString("parentID")

%>
<head>
.....resten af din html/asp kode.....


*** Login status
Du skriver ikke hvilken metode du bruger til at validere om brugeren, er den han/hun siger at han/hun er.
Det mest oplagte er at bruge en database, f.eks. Access.
Jeg kunne forestille mig en login side (login.asp) med en form:

<%
' Med Option Explicit tvinges du til at definere din variabler.
' Så undgår du stavefejl, som tit er fejl man ikke kan finde når der er noget galt:
Option Explicit
%>

<form name="frmLogin" action="login.asp" method="post" onSubmit="document.frmLogin.mode.value = 'login';">
Brugernavn: <input type="text" name="brugernavn">
<br>
Kodeord: <input type="password" name="kodeord">
<br>
<input type="submit" name="submit" value="Send">
<input type="hidden" name="mode" value="">
</form>

<%
if request.form("mode") = "login" then
' Der er klikket på "Send"-knappen, dvs brugeren vil gerne logge ind.
' Vi skal så validere.

dim strBrugernavn, strKodeord ' definer variabler til brugernavn og kodeord. str betyder "streng".

dim strMsg ' Definer streng til besked
' Sæt en fejl besked, hvis brugernavn eller password er forkert:
strMsg = "Brugernavn eller kodeord er forkert"

' Grunden til at jeg bruger "brugernavn eller kodeord" fremfor "kodeord",
' er for ikke at fortælle en evt "hacker" om at han har fundet et brugernavn
' der er gyldigt. Hvis han/hun finder et brugernavn, skal han kun gætte kodeordet,
' men hvis han ikke ved at brugernavnet er rigtigt, skal han gætte begge dele.



' Det en database kan hackes ved at bruge ' tegnen i brugernavn eller password,
' skal vi sikre os mod det.. Disse 2 linier erstatter et enkelt ' tegen med 2.
' Det opfattes som et enkelt ' tegn, og så kan vi fortsætte:
strBrugernavn = replace(request.form("brugernavn"), "'", "''")
strKodeord = replace(request.form("kodeord"), "'", "''")

' Databaseforbindelse - husk at angive sti og filnavn til din database, her "database.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From TABELNAVN Where brugernavn = '" & strBrugernavn & "'"
Set rs = Conn.Execute(strSQL)

if (not rs.bof) and (not rs.eof) then
' Brugernavn er fundet. Check password:

  if strPassword = rs("password") then

    ' Password er korrect. Sæt Login status til "ok":
    session("login") = "ok"

    if request.querystring("page") <> "" then
      ' Brugeren er kommet til login siden, via en side der krævede login.
      ' Det er høfligt at sende ham tilbage til samme side:

        response.redirect request.querystring("page")
    else
      ' Brugeren kommer IKKE fra en side der kræver login.
      ' Fjern fejlmeddelelse, da brugeren er korrect logget in.
      strMsg = ""
    end if

  end if
end if

Conn.Close
Set Conn = Nothing

if strMsg <> "" then response.write strMsg
%>


Jeg er ikke helt sikker (bruger det normalt ikke), men det kan muligvis gøres nemmere ved at bruge:
<%
' .. al asp kode .. og så:
strSQL = "Select * From TABELNAVN Where brugernavn = '" & strBrugernavn & "' AND kodeord = '" & strKodeord & "'"

if (not rs.bof) and (not rs.eof) then
' Brugernavn og kodeord er fundet, dvs brugeren er korrekt logget ind.

' Sæt Login status til "ok":
  session("login") = "ok"

  if request.querystring("page") <> "" then
    ' Brugeren er kommet til login siden, via en side der krævede login.
    ' Det er høfligt at sende ham tilbage til samme side:
    response.redirect request.querystring("page")
  else
    ' Brugeren kommer IKKE fra en side der kræver login.
    ' Fjern fejlmeddelelse, da brugeren er korrect logget in.
    strMsg = ""
  end if
end if

Conn.Close
Set Conn = Nothing

if strMsg <> "" then response.write strMsg
%>

Hvis:
Where brugernavn = '" & strBrugernavn & "' AND kodeord = '" & strKodeord & "'"

ikke virker, prøv:
Where (brugernavn = '" & strBrugernavn & "' AND kodeord = '" & strKodeord & "')"

En anden ting du kunne gøre, er at checke om brugeren allerede er logget ind, før du viser formen..
Hvis han allerede er logget ind, skal han jo ikke se login formen med felterne brugernavn og kodeord.
Du kunne muligvis skrive et link til en Logud side (logout.asp)..
Det gøres sådan her:


...
<% if session("login") <> "ok" then %>

<form name="frmLogin" action="login.asp" method="post" onSubmit="document.frmLogin.mode.value = 'login';">
Brugernavn: <input type="text" name="brugernavn">
<br>
Kodeord: <input type="password" name="kodeord">
<br>
<input type="submit" name="submit" value="Send">
<input type="hidden" name="mode" value="">
</form>

<%
' Hvis ikke der skal være link til logud siden,
' fjerner du linierne der starter med "else" og "response.write.."
else
  response.write "<a href'logout.asp'>Log ud</a>"
end if %>
...


- Jeg ligger det som et svar, og håber at du kan bruge løsningen.
Du er selvfølgelig velkommen til at stille spørgsmål til koden.

/theSurfer.
Avatar billede thesurfer Nybegynder
28. november 2003 - 15:27 #4
Du skal lige huske at ændre "TABELNAVN" til navnet på tabellen med brugernavn og kodeord.

Jeg går du fra at du har 2 felter i tabellen med brugernavn og kodeord, nemlig:
"brugernavn" af typen streng/tekst
"kodeord" af typen streng/tekst


Rettelse til mit svar:

if session("login") <> "ok" then response.redirect "login.asp?page=" & response.write Request.ServerVariables("SCRIPT_NAME")

Skal være:

if session("login") <> "ok" then response.redirect "login.asp?page=" & Request.ServerVariables("SCRIPT_NAME")
Avatar billede reimer7 Nybegynder
28. november 2003 - 15:28 #5
Loginsiden ser sådan ud:
<%option explicit%>

<%
'############# This user management script is coded by Roy Besiera          #########
'############# If you want to modify this script contact me at this address #########
'############# info@aspplanet.net                                          #########
Dim adocon
dim rsusers,rstest,sqltest
Dim sql
Dim ip
Dim clear
clear=0
ip=request.servervariables("remote_addr")


Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../fpdb/userlist.mdb")
set rstest = Server.CreateObject("ADODB.Recordset")
sqltest="Select username from users where username='" & request.form("username") & "'"
rstest.open sqltest,adocon,2,3
if rstest.eof then
if request.form("username")="" then
response.write("<b>Angiv et brugernavn</b><br><b>Du skal angive et brugernavn</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at angive et brugernavn</font></a>")
elseif request.form("password1")="" or request.form("password2")="" then
response.write("<b>Angiv et password</b><br><b>Du skal angive et password</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at skrive dit password</font></a>")
elseif request.form("password1")<>request.form("password2") then
response.write("<b>Passwords matcher ikke</b><br><b>Du skal skrive samme password i begge felter</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at indtaste passwords</font></a>")
elseif request.form("email")="" then
response.write("<b>Du skal skrive din email addresse</b><br><b>Husk at angive din email addresse</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at indtaste email addressen</font></a>")
Set rsusers = Server.CreateObject("ADODB.Recordset")
elseif instr(request.form("email"),"@")=false or instr(request.form("email"),".")=false then
response.write("<b>Dette er ikke en gyldig email addresse</b><br><b>Prøv igen!</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at indtaste den igen</font></a>")
elseif request.form("realname")="" then
response.write("<b>Dit fornavn mangler</b><br><b>Du skal angive dit fornavn</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at skrive dit fornavn</font></a>")

else
set rsusers = Server.CreateObject("ADODB.Recordset")
sql="select * from users;"
rsusers.open sql,adocon,2,3

rsusers.addnew

rsusers("realname")=request.form("realname")
rsusers("email")=request.form("email")
rsusers("homepage")=request.form("homepage")
rsusers("ipadd")=ip
rsusers("lastlogin")=now()
rsusers("logctr")=1
rsusers("username")=request.form("username")
rsusers("parked")=false
rsusers("datesign")=now()
rsusers("level")=1
rsusers("pass")=request.form("password1")
rsusers.update

rsusers.close
set rsusers=nothing
adocon.close
set adocon=nothing
clear=1

set rstest=nothing

end if
else
response.write("<b>Dette brugernavn er taget</b><br><b>Vælg et andet</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at indtaste et andet brugernavn</font></a>")
rstest.close
set rstest=nothing
end if
if clear=1 then
%>
<b></b><br>
<b>Du kan nu logge på og skrive dine egne anmeldelser</b><br><a href="index.asp"><font color="000000">Log på</font></a>

<% end if%>
Avatar billede thesurfer Nybegynder
28. november 2003 - 18:30 #6
Så vidt jeg kan se, har det der ikke noget som helst med logind at gøre.. den tilføjer en bruger til en database.
Avatar billede thesurfer Nybegynder
28. november 2003 - 18:30 #7
Du sender brugeren hen til index.asp for at logge på:
<a href="index.asp"><font color="000000">Log på</font></a>

Hvad har du egentligt af login? intet?
Avatar billede thesurfer Nybegynder
28. november 2003 - 18:32 #8
.. by the way.. stop venligst den der "læg et svar og afvis det"-rutine..
Den forstyrrer mine filtre, og der er ingen grund til det.
Du kan bare bruge "Kommentar" i stedet for "Fortsat svar".. lige som os andre..
Avatar billede reimer7 Nybegynder
29. november 2003 - 15:11 #9
Sorry, won't happen again :-(
Jeg kom i kampens hede til at bruge tilmeldingsiden son eks. (sorry... again)
login.asp ser sådan ud;
<html>
<head>
<title>Log in Form</title>
<link rel="stylesheet" href="user.css" class="text/css">
<script language="Javascript" class="text/javascript">
<!--

function openwindow(theURL,winName,features)
{
  window.open(theURL,winName,features);
}
-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<table>
<tr><td class="small">
<h3>Login</h3>
</td></tr>
<tr><td class="small">
<form action="loginpro.asp?login=true" method="post">
<input type="text" name="username"> : Brugernavn <font color="red">*</font><br>
<input type="password" name="password"> : Password<font color="red">*</font>
<br><br>
<input type="submit" value="Login"><br>
<a href="index.asp"><font color="000000">Tilbage til anmeldelser?</font></a>
</form>
</td></tr>
</table>
</body>
</html>
Avatar billede thesurfer Nybegynder
29. november 2003 - 17:04 #10
Det var sådan set asp koden til login jeg ville se :)
Ellers kan jeg ikke se om min kode kan sættes ind..
Avatar billede reimer7 Nybegynder
29. november 2003 - 17:14 #11
This one?

<%

Dim adocon,rstest,sqltest,clear
clear=0

if request.querystring("login")="true" then

if request.form("username")="" then
response.write("<b>Brugernavn mangler</b><br><b>Du skal angive et brugernavn</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at skrive et brugernavn</font></a>")
elseif request.form("password")="" then
response.write("<b>Password mangler</b><br><b>Du skal angive et password</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at skrive et password</font></a>")
else

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../fpdb/userlist.mdb")
set rstest = Server.CreateObject("ADODB.Recordset")
sqltest="Select * from users where username='" & request.form("username") & "' and parked=false"
rstest.open sqltest,adocon,2,3
if  not  rstest.eof then
    if request.form("password")=rstest("pass") then
    session("login")="true"
    session("username")=rstest("username")
    session("lastlogin")=rstest("lastlogin")
    session("logctr")=rstest("logctr")
    session("level")=rstest("level")
if request.form("username")="admin" then
    session("admin")="true"

    end if
rstest("logctr")=rstest("logctr")+1
rstest("lastlogin")=now()
rstest("ipadd")=request.servervariables("remote_addr")
rstest.update
    clear =1

rstest.close
set rstest=nothing
adocon.close
set adocon=nothing
else
response.write("<b>Ugyldig password!</b><br><b>Prøv igen</b><br>")
response.write("<a href=""java script:history.go(-1)""><font color=""000000"">Klik her for at skrive password igen</font></a>")
end if
else
response.write("Brugernavn eksisterer ikke!<br>Prøv igen eller kontakt webmaster.<br>")
response.write("<a href=""java script:history.go(-1)"">Klik her for at skrive dit brugernavn igen</a>")
end if
end if
end if
if session("admin")="true" then
response.redirect("admin.asp")
end if
if clear=1 then
%>
Du er nu logget på anmeldelsesbasen!<br>
<a href="anyprotectedpage.asp">Klik her for at fortsætte</a>
<%
end if
%>
Avatar billede thesurfer Nybegynder
29. november 2003 - 17:47 #12
filen "protect.asp" ligger her i roden ("/").. du retter bare stien.. men det er nemmest hvis den ligger i roden..

Eksempel:

<!-- #include file="/protect.asp" //-->

<%

Dim adocon,rstest,sqltest,clear
clear=0
...

rstest.close
set rstest=nothing
adocon.close
set adocon=nothing

  if request.querystring("page") <> "" then
    ' Brugeren er kommet til login siden, via en side der krævede login.
    ' Det er høfligt at sende ham tilbage til samme side:
    response.redirect request.querystring("page")
  end if
...
Avatar billede reimer7 Nybegynder
29. november 2003 - 20:52 #13
Det virkede perfekt... protect.asp og tilføjede;

rstest.close
set rstest=nothing
adocon.close
set adocon=nothing
if request.querystring("page") <> "" then
    ' Brugeren er kommet til login siden, via en side der krævede login.
    ' Det er høfligt at sende ham tilbage til samme side:
    response.redirect request.querystring("page")
  end if
else
response.write("<b>Ugyldig password!</b><br><b>Prøv igen</b><br>")
response.write("<a href=""java script:history.go(-1)""><font
color=""000000"">Klik her for at skrive password igen</font></a>")
Men når jeg skriver valid brugernavn og kodeord, bliver jeg re-directed til en bekræftigelsesside
http://www.xxx.dk/anmeldelser/login/loginpro.asp?login=true
istedetfor direkte viderestilling til eksempelvis
http://www.xxx.dk/anmeldelser/addform22.asp?catid=173&catname=Rock&parentID=51&Parentname=Musik
Avatar billede thesurfer Nybegynder
29. november 2003 - 21:11 #14
Bruger du "admin" kontoen? Eller er det ved alle konti?

Min redirect kode bliver kun afviklet, hvis urlen indeholder "page=et-eller-andet".

Men jeg tror at det er fordi jeg ikke checker for session("admin")..

Prøv denne rettelse til protect.asp:
if (session("login") <> "true") and (session("admin") <> "true") then
Avatar billede reimer7 Nybegynder
29. november 2003 - 22:52 #15
Ifald jeg ændrer protect.asp fra
if session("login") <> "ok" then response.redirect "login/login.asp?page=" & Request.ServerVariables("SCRIPT_NAME")
til
if (session("login") <> "true") and (session("admin") <> "true") then
response.redirect "login/login.asp?page=" & Request.ServerVariables("SCRIPT_NAME")
Kalder den http://www.xxx.dk/anmeldelser/addform22.asp?catid=173&catname=Rock&parentID=51&Parentname=Musik, ikke login.asp, og giver en intern http fejl 500
Adminkontoen virker fint. Admin er til et administrationsmodul hvori man kan tildele bestemte brugere yderligere rettigheder og gælder kun brugeradministration. Til selve anmeldelsesbasen er der et helt andet administrationsmodul.
Avatar billede thesurfer Nybegynder
29. november 2003 - 22:56 #16
Kan du finde på at logge ind som admin for at skrive en anmeldelse?
Hvis ikke, brug: if session("login") <> "true" then

Har den altid været?: session("login") <> "ok" (altså "ok" og ikke "true")
Avatar billede reimer7 Nybegynder
30. november 2003 - 03:36 #17
Nej, admin gælder kun administrations modulet
Hvis du mener i forbindelse med:
...
    if request.form("password")=rstest("pass") then
    session("login")="true"
...
Ja, den har hele tiden været "true"
Hvis det er i forbindelse med protect.asp, så har session("login") altid været ="true"
Avatar billede reimer7 Nybegynder
30. november 2003 - 03:37 #18
Sludder... Hvis det er i forbindelse med protect.asp, så har session("login") altid været ="ok"
Avatar billede thesurfer Nybegynder
30. november 2003 - 17:23 #19
Det skal være if session("login") <> "true" then
"ok"-delen var fra mit første eksempel..
hvis det ikke er "true" vil den altid sende brugeren over til login siden.
Avatar billede reimer7 Nybegynder
01. december 2003 - 15:21 #20
Hello thesurfer... Intet virker nu :-( Så jeg starter helt forfra igen... Bare så du véd at du ikke er glemt. Jeg vender tilbage imorgen eller onsdag
Vamos a Matar, Compañeros
Avatar billede reimer7 Nybegynder
04. december 2003 - 09:03 #21
I give up! Jeg får hele tiden en fejl 500 og jeg kan ikke gennemskue hvor det går galt... Ævs! Så jeg lukker spørgsmålet, men thesurfer skal ikke snydes for sin indsats :-)
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