Avatar billede jtc Nybegynder
12. november 2003 - 19:03 Der er 23 kommentarer og
1 løsning

simpele loginproblemer

Hvorfor sker der ingenting når jeg benytter denne kode
Hvis jeg fjerner not virker den fint men skal det ikke stå der?

<%
if Session("login") = "loged_in" then Response.Redirect("main.asp")
%>
<%
If Request.QueryString("submit") <> "" Then

  password = Replace(Request.Form("password"),"'","''")
  navn = Replace(Request.Form("navn"),"'","''")
 
Set database = Server.CreateObject ("ADODB.Connection")
database.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/staevner.mdb")

Set autoriseret = Server.CreateObject ("ADODB.Recordset")
autoriseret.Open "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'", database
 
  if not autoriseret.EOF then
    Session("login") = "loged_in"
    Session("brugernavn") = rs("brugernavn")
    Response.Redirect("main.asp")
  end if
end if
%>
         
      <form name="form1" method="get" action="">
        <center>
        <table width="230" border="0" align="center">
          <tr>
              <td colspan="2"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><img src="../pic/user.gif" width="23" height="18">
                Login til administration<br>
              <img src="../pic/moerkeblaa.gif" width="250" height="2"></font></strong></td>
          </tr>
          <tr>
            <td width="96"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></td>
            <td width="151"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="navn" type="text" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adgangskode:</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="password" type="password" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
                <input name="submit" type="submit" class="knap" value="Login">
              </font></td>
          </tr>
        </table>
        </center>
        </form>
Avatar billede proff Nybegynder
12. november 2003 - 19:05 #1
Der sker ikke noget ved at du fjerne det.. men det SKAL stå der.. det angiver sti til databasen og nogle andre ting!
Avatar billede nmh Nybegynder
12. november 2003 - 19:06 #2
if not autoriseret.EOF then
er det dette 'not' du taler om?
autoriseret.EOF er sand, når du når til det sidste af record-settet og ellers falsk.
not aut... er sand, så længe. der er noget at hente.
Avatar billede ellebaek Nybegynder
12. november 2003 - 19:07 #3
Du har lavet noget juks i din form...

Den skal i stedet være method="post" action="siden du er på?submit=true"
ret denne linie...
<form name="form1" method="get" action="">
Avatar billede jtc Nybegynder
12. november 2003 - 19:08 #4
jeg fandt da også ud af at hvis det ikke stod der kunne jeg komme ind uanset hvad, men hvad skal jeg så gøre

og ja det er not autoriseret.EOF
Avatar billede jtc Nybegynder
12. november 2003 - 19:11 #5
jeg har rettet det til
      <form name="form1" method="post" action="login.asp">
men det virker ikke
Avatar billede jtc Nybegynder
12. november 2003 - 19:12 #6
hvad skal jeg gøre
Avatar billede nmh Nybegynder
12. november 2003 - 19:13 #7
Dit not fungerer på den måd, at når der ikke er noget at hente i dit recordset autoriseret, så bliver der redirectet til main.asp.
Avatar billede jtc Nybegynder
12. november 2003 - 19:14 #8
hvordan skal jeg så skrive det nmh
Avatar billede nmh Nybegynder
12. november 2003 - 19:16 #9
ups: rettelse:'
Dit not fungerer på den måde, at når der ER noget at hente i dit recordset autoriseret(så er eof falsk), så bliver der redirectet til main.asp.
Avatar billede jtc Nybegynder
12. november 2003 - 19:17 #10
jamen det skal fungere sådan at når brugernavn og password er korekt så skal der redirectes til main.asp
Avatar billede nmh Nybegynder
12. november 2003 - 19:18 #11
Fortæl hvad der er, der skal ske:
Ønsker du, at der redirectes til main.asp, når der er data i dit recordset?
Avatar billede jtc Nybegynder
12. november 2003 - 19:21 #12
jamen det skal fungere sådan at når brugernavn og password er korekt så skal der redirectes til main.asp
Avatar billede nmh Nybegynder
12. november 2003 - 19:22 #13
OK, så skal du gøre således:
while not autoriseret.EOF
  if  Session("login") = "loged_in" and Session("brugernavn") = rs("brugernavn") then
    Response.Redirect("main.asp")
  end if
  autoriseret.movenext
wend
Avatar billede jtc Nybegynder
12. november 2003 - 19:23 #14
hvor skal det så sættes ind
Avatar billede nmh Nybegynder
12. november 2003 - 19:24 #15
Jeg har her gået ud fra at session("brugernavn") er det brugeren har indtastet, og session("login") er lig "logged in"
for brugere der skal have lov til at komme ind.
Men hvor er adgangskoden henne?
Avatar billede jtc Nybegynder
12. november 2003 - 19:28 #16
Man skriver et brugernavn og password og så skal man redirectes til main.asp hvis brugernavnet og det tilhørende password ligger i tabellen adgang.
Avatar billede nmh Nybegynder
12. november 2003 - 19:33 #17
Ok, men så skal du læse både brugernavn og pasword fra databasen.
To sek, så kommer jeg med et forslag.
Avatar billede nmh Nybegynder
12. november 2003 - 19:42 #18
Jeg mener faktisk slet ikke der skal ændres noget i selve asp-koden.
Du henter fra databasen de poster, der svarer til brugernavn og adgangskode.
Hvis der ikke er nogen brugere, der kan bruges, vil recordsettet være tomt, og autoriseret.eof er derfor sand.
Så er not autoriseret.eof falsk og brugeren får derfor login-siden igen.
Ellers redirectes til main.asp.
Så hvad er dit problem egentlig?
Nu har du jo fået rettet din form.
Avatar billede ellebaek Nybegynder
12. november 2003 - 19:52 #19
mht. din form skal den sende til login.asp?submit=true eller noget i den stil...

Det tjekker du for i starten...
Avatar billede ellebaek Nybegynder
12. november 2003 - 19:53 #20
<%
if Session("login") = "loged_in" then Response.Redirect("main.asp")
%>
<%
If Request.QueryString("submit") <> "" Then

  password = Replace(Request.Form("password"),"'","''")
  navn = Replace(Request.Form("navn"),"'","''")
 
Set database = Server.CreateObject ("ADODB.Connection")
database.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/staevner.mdb")

Set autoriseret = Server.CreateObject ("ADODB.Recordset")
autoriseret.Open "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'", database
 
  if not autoriseret.EOF then
    Session("login") = "loged_in"
    Session("brugernavn") = rs("brugernavn")
    Response.Redirect("main.asp")
  end if
end if
%>
         
      <form name="form1" method="post" action="login.asp?submit=true">

        <center>
        <table width="230" border="0" align="center">
          <tr>
              <td colspan="2"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><img src="../pic/user.gif" width="23" height="18">
                Login til administration<br>
              <img src="../pic/moerkeblaa.gif" width="250" height="2"></font></strong></td>
          </tr>
          <tr>
            <td width="96"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></td>
            <td width="151"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="navn" type="text" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adgangskode:</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="password" type="password" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
                <input name="submit" type="submit" class="knap" value="Login">
              </font></td>
          </tr>
        </table>
        </center>
        </form>

Prøv dette...!
Avatar billede jtc Nybegynder
12. november 2003 - 20:00 #21
det virker heller ikke men jeg vender tilbage i morgen så må vi lige se på det
Avatar billede ellebaek Nybegynder
13. november 2003 - 20:54 #22
<%
if Session("login") = "loged_in" then Response.Redirect("main.asp")
%>
<%
If Request.form("submit") <> "" Then

  password = Replace(trim(Request.Form("password")),"'","''")
  navn = Replace(trim(Request.Form("navn")),"'","''")
 
Set rs = Server.CreateObject ("ADODB.Connection")
str = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/db/staevner.mdb")
rs.open str


sql = "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'"
set autoriseret = rs.execute(sql)
 
  if not autoriseret.EOF then
    Session("login") = "loged_in"
    Session("brugernavn") = autoriseret.fields("brugernavn")
    Response.Redirect("main.asp")
  end if
end if
%>
         
      <form method="post" action="login.asp">

        <center>
        <table width="230" border="0" align="center">
          <tr>
              <td colspan="2"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><img src="../pic/user.gif" width="23" height="18">
                Login til administration<br>
              <img src="../pic/moerkeblaa.gif" width="250" height="2"></font></strong></td>
          </tr>
          <tr>
            <td width="96"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></td>
            <td width="151"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="navn" type="text" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adgangskode:</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="password" type="password" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
                <input name="submit" type="submit" class="knap" value="Login">
              </font></td>
          </tr>
        </table>
        </center>
        </form>

Jeg har ændret lidt i dit script...
prøv dette. Siden skal hedde login.asp
Avatar billede jtc Nybegynder
14. november 2003 - 00:18 #23
Tak for hjælpen alle sammen men intet af det hjalp, men jeg fandt dog selv ud af det og resultatet blev som det følgende

<%
if Request.Querystring("mode") = "logud" then
  Session("login") = ""
  Session.Abandon
  'Det er nødvendig at lave redirect eller slettes session ikke helt
  Response.Redirect("login.asp")
end if
%>
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

  Set Conn = Server.CreateObject("ADODB.Connection")
  Set rs = Server.CreateObject("ADODB.Recordset")
  Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/admin.mdb")
 
  password = Replace(Request.Form("password"),"'","''")
  navn = Replace(Request.Form("navn"),"'","''")
 
  SQL = "SELECT * FROM adgang WHERE brugernavn = '" & navn & "' AND adgangskode = '" & password & "'"
  Set rs = Conn.Execute(SQL)
  if NOT rs.EOF then
    Session("login") = "loged_in"
    Session("level") = rs("level")
  else
    Session("login") = ""
  end if
  rs.Close
  Set rs = nothing
  Conn.Close
  Set Conn = nothing
  if Session("login") = "loged_in" then
    'BRUGER ER LOGGET IND SEND HAM VIDRE TIL EN BESKYTTET FIL

    Response.Redirect("main.asp")
  end if
end if
%>
          <form action="login.asp" method="post">
<center>
        <table width="230" border="0" align="center">
          <tr>
              <td colspan="2"><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><img src="../pic/user.gif" width="23" height="18">
                Login til administrationen<br>
              <img src="../pic/moerkeblaa.gif" width="250" height="2"></font></strong></td>
          </tr>
          <tr>
            <td width="96"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></td>
            <td width="151"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="navn" type="text" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adgangskode:</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="password" type="password" size="21">
                </font></td>
          </tr>
          <tr>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;</font></td>
            <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              <input name="login" type="submit" class="knap" value="Login">
              </font></td>
          </tr>
        </table>
        </center>
        </form>
Avatar billede ellebaek Nybegynder
16. november 2003 - 19:17 #24
Så kan du lukke dette spg. ved enten at acceptere dit eget svar, eller dele points ud, hvis du synes det er berettiget...
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