Avatar billede karsten_larsen Praktikant
01. december 2002 - 04:40 Der er 5 kommentarer og
1 løsning

Intern serverfejl - fatter det ikke

Dette går ud over min formåen - det er givetvis en lille banal ting - men som nybegynder totalt umuligt at få øje på.

Jeg har tre filer, som jeg arbejder med: index.asp, signin.asp og en database.inc. Jeg har problemer med de to sidste og muligvis også den første. Det er et logon system, som bruger cookies og jeg prøver at få det til at tilpasse så det det kan ligge hos azero.dk.

Nedenfor følger filerne og de kan ses på www.dyring-larsen.dk

Jeg har sat point til 150 da jeg ikke forstår hvor fejl er og skal bruge det hurtig.

:-) Karsten

INDEX.ASP
<%
Option Explicit
Dim sql,brugernavn,objRec,objConn,strConnect,strUpdate 

brugernavn = Request.Cookies("brugernavn")
'hvis brugernavns cookie er sat, så må de være logget ind
if brugernavn <> "" then

'Hvis de er logget ind, send dem til deltagere.asp
Response.Redirect("deltagere.asp")
else
%>

<html>
<head>

<%' Hvis de ikke er logget ind, vis da en login box
  if brugernavn = "" then
%>

<title>Adgang</title>
</head>
<body link="#DD0000" vlink="#DD0000" alink="#000000">

<table width="461" cellpadding=3 cellspacing=0 border=0 bordercolor="#000000" align="center">
<tr>
  <form name="login" action="signin.asp" method="post">
  <input type="hidden" name="page" value="index.asp">
      <td align="center"><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><br>
        <br>
      Adgang<br>
        <br>
        </font>
       
<table width="100%" border="0">
        <tr>
            <td width="50%">
              <div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Brugernavn:</font></div>
            </td>
           
            <td width="50%" ><input name="brugernavn" type="text" size="12" >
            </td>
        </tr>
         
        <tr>
            <td> <div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Password:</font></div></td>
            <td><input name="password" type="password" size="12"></td>
        </tr>
       
        <tr>
            <td><div align="right"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Husk mig:</font></div>
            </td>
           
            <td>
            <div align="left"><input type="checkbox" name="stayloggedin" value="yes"></div>
            </td>
        </tr>
       
        <tr>
            <td colspan="2"><div align="center"><br>
                <input name="login" type="submit" style="font-size: 10pt; font-family: Arial, Helvetica, sans-serif;" value="login">
              </div></td>
        </tr>
</table>
</form>
   
<%
End if
End if
%>

</table>
</body>
</html>


SIGNIN.ASP
<%
Option Explicit
Dim sql,objRec,brugernavn,password,page,stayloggedin,LConnectString,lconn,sqlflag

if request.form("login") = "login" then

' Tager værdierne fra login
brugernavn = Request.Form("brugernavn")
password = Request.Form("password")
page = Request.Form("page")
stayloggedin = Request.Form("stayloggedin")

if page = "" then
  page = "index.asp"
end if

' Forebyggelse af hacking
if InStr(brugernavn, "'") or InStr(brugernavn, """") or InStr(brugernavn, "=") or InStr(password, "'") or InStr(password, """") or InStr(password, "=") then
    sqlflag = True
end if

' Skabe forbindelse
%>
<!-- #include file="database.inc" -->

<%
' Få resultat fra det indsendte brugernavn og password
sql = "SELECT brugernavn FROM deltagere WHERE brugernavn = '" & brugernavn & "' AND password = '" & password & "'"
Set objRec = Server.CreateObject("ADODB.Recordset")
objRec.Open sql, objConn

' Hvis resultatet er gyldigt, så skal de sendes tilbage fra den side de kom fra, med brugernavn cookie sat til
If (not objRec.BOF) and (not objRec.EOF) and sqlflag <> True then
  Response.Cookies("brugernavn") = objRec("brugernavn")
' Hvis de oensker at forblive login hele tiden, saa saettes cookie til langt ud i fremtiden
  if stayloggedin = "yes" then
    Response.Cookies("brugernavn").expires = #1/1/2010#
  end if
  objRec.close
  objConn.close
  set objRec = nothing
  set objConn = nothing
  Response.Redirect("deltagere.asp")
end if

' ELLERS, vises der en ugyldig velkomst side
objRec.close
objConn.close
set objRec = nothing
set objConn = nothing%>

<html>
<head>
<title>Ugyldig velkomst</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
<font face="arial,helvetica" size=2> </font>
<table width="100%" border="0">
  <tr>
    <td><div align="center"><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><br>
        Adgang</font></div></td>
  </tr>
  <tr>
    <td><div align="center"><font face="arial,helvetica" size=2><br>
        <br>
        Den indtastede adgangskode eller brugernavn er <strong>ikke</strong>
        gyldigt<br>
        </font></div></td>
  </tr>
  <tr>
    <td><font face="arial,helvetica" size=2>
      <p align="center"><a href="http://www.dyring-larsen.dk"><b><br>
        Pr&oslash;v igen</b></a></p>
      </font></td>
  </tr>
</table>

</body>
</html>



DATABASE.INC
<%
  strConnect = "Data Source=hvor_ database_ligger.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
  Set objConn = Server.CreateObject ("ADODB.Connection")
  objConn.Open strConnect

  ' Følgende kode gør at du kan stoppe adgangen til databasen hvis du skal opdatere den.
  strUpdate = "no"
  If strUpdate = "yes" Then
    Response.Write "<p>Siden er under opdatering. Kom tilbage om 5 minutter.</p>"
    Response.End
    ' Alternativt kan du slette ovenstående 2 linier og istedet bruge nedenstående til at kalde en anden fil.
    ' Response.Redirect("update.htm")
  End If
%>
Avatar billede websam Nybegynder
01. december 2002 - 14:39 #1
Hvis du kun har de sider liggende du nævner så kan du ikke redirecte med denne sætning : Response.Redirect("deltagere.asp") da denne side ikke findes.

/WebSam
Avatar billede karsten_larsen Praktikant
01. december 2002 - 15:17 #2
-> websam
Siden deltagere.asp ligger der. www.dyring-larsen.dk/deltagere.asp

:-) Karsten
Avatar billede eagleeye Praktikant
02. december 2002 - 10:01 #3
Der mangler en end if et sted til denne if sætning:

if request.form("login") = "login" then


Prøv denne kode:


SIGNIN.ASP
<%
Option Explicit
Dim sql,objRec,brugernavn,password,page,stayloggedin,LConnectString,lconn,sqlflag

if request.form("login") = "login" then

' Tager værdierne fra login
brugernavn = Request.Form("brugernavn")
password = Request.Form("password")
page = Request.Form("page")
stayloggedin = Request.Form("stayloggedin")

if page = "" then
  page = "index.asp"
end if

' Forebyggelse af hacking
if InStr(brugernavn, "'") or InStr(brugernavn, """") or InStr(brugernavn, "=") or InStr(password, "'") or InStr(password, """") or InStr(password, "=") then
    sqlflag = True
end if

' Skabe forbindelse
%>
<!-- #include file="database.inc" -->

<%
' Få resultat fra det indsendte brugernavn og password
sql = "SELECT brugernavn FROM deltagere WHERE brugernavn = '" & brugernavn & "' AND password = '" & password & "'"
Set objRec = Server.CreateObject("ADODB.Recordset")
objRec.Open sql, objConn

' Hvis resultatet er gyldigt, så skal de sendes tilbage fra den side de kom fra, med brugernavn cookie sat til
If (not objRec.BOF) and (not objRec.EOF) and sqlflag <> True then
  Response.Cookies("brugernavn") = objRec("brugernavn")
' Hvis de oensker at forblive login hele tiden, saa saettes cookie til langt ud i fremtiden
  if stayloggedin = "yes" then
    Response.Cookies("brugernavn").expires = #1/1/2010#
  end if
  objRec.close
  objConn.close
  set objRec = nothing
  set objConn = nothing
  Response.Redirect("deltagere.asp")
end if

' ELLERS, vises der en ugyldig velkomst side
objRec.close
objConn.close
set objRec = nothing
set objConn = nothing%>

<html>
<head>
<title>Ugyldig velkomst</title>
</head>
<body bgcolor="#FFFFFF" link="#DD0000" vlink="#DD0000" alink="#000000">
<font face="arial,helvetica" size=2> </font>
<table width="100%" border="0">
  <tr>
    <td><div align="center"><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><br>
        Adgang</font></div></td>
  </tr>
  <tr>
    <td><div align="center"><font face="arial,helvetica" size=2><br>
        <br>
        Den indtastede adgangskode eller brugernavn er <strong>ikke</strong>
        gyldigt<br>
        </font></div></td>
  </tr>
  <tr>
    <td><font face="arial,helvetica" size=2>
      <p align="center"><a href="http://www.dyring-larsen.dk"><b><br>
        Pr&oslash;v igen</b></a></p>
      </font></td>
  </tr>
</table>

</body>
</html>
<% end if %>
Avatar billede eagleeye Praktikant
02. december 2002 - 10:03 #4
Prøv i IE at slå  "Vis uskadelige HTTP fejl" fra.
Som ligger under Tools->Internet Option->Advanceret
Avatar billede karsten_larsen Praktikant
02. december 2002 - 13:21 #5
-> eagleeye
Jeg har lige lagt signin.asp ind og får det samme resultat.
Avatar billede karsten_larsen Praktikant
02. december 2002 - 13:23 #6
-> eagleeye
slog lige "vis uskadelige HTTP fejl" fra og fandt at nogle variable ikke var defineret i signin.asp. Hold op hvor var det dejligt at finde ud af det. Du fortjener fuldt ud dine point og mange tak for hjælpen.

:-)))) Karsten
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