Avatar billede plato Juniormester
12. januar 2003 - 17:55 Der er 52 kommentarer og
1 løsning

Login System..Fejl

Er der nogen der kan se en fejl i dette her?
Det virker ikke.
Der skal btw ikke være nogen database angivelse, jeg bruger global.

<%
function fixSring(strInput)
if len(strInput) > 0 then
    outString = replace(strInput,"'","")
        fixSring = outString
else
    fixSring = strInput
end if
end function

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
    Set Conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.RecordSet")

    username = fixSring(Request.Form("username"))
    password = fixSring(Request.Form("password"))
   
    Conn.Open Application("Provider")
    strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND password='" & password & "');"
    Set rs = Conn.Execute (strSQL)

    if not rs.EOF then
          if (username = rs("username")) then
                  session("loginOK") = "jeps"
                session("username") = rs("username")
            session("time") = Now()
          end if
      end if

rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
end if

if session("loginOK") <> "jeps" THEN
%>
<form method="post" name="adminlogin">
    Brugernavn:<br><input class="bar" size="9" name="username"><br>
      Password:<br><input class="bar" type="password" name="password"><br>
    <input class="knap" type="submit" value="Login" name="Action">
</form>
<%
else
Response.write("<center>Du er logget p&aring; d.:<br>")
Response.write(Session("time") & "<br>")
Response.write("<center>som:<br>")
Response.write(Session("username") & "<br>")

Response.write("<a href='logout.asp'><b>Logout</b></a></center>")
End If
%>
Avatar billede niceday Nybegynder
12. januar 2003 - 18:06 #1
Jeg plejer altid at skrive f.eks.:

Response.Write "<center>som:<br>"

der hvor du skriver:

Response.write("<center>som:<br>")

Har ikke prøvet denne metode før - måske er det en fejl :-)

Hvilken fejl får du?
Avatar billede plato Juniormester
12. januar 2003 - 18:10 #2
Fejlen er 'ingen side'
Prøv selv på http://www.trailersiden.dk
Der er et login system i venstre side.
Bruger : Fruriis
Pass : sophie

Prøver lige at ændre det du skrev.
Avatar billede niceday Nybegynder
12. januar 2003 - 18:11 #3
Dit database-kald ser heller ikke helt rigtigt ud:

Du skriver:

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND password='" & password & "')"

Altså med en anden connection-string OG vigtigst - du har ; sidst i dit sql-kald ... det er en fejl!

Jeg ville til Access 2000 skrive:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=...fysisk sti til databasen...\database.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"

SQL = "INSERT INTO Temaer (Tema_Navn) VALUES ('" & Request.Form("T1") & "')"
Avatar billede niceday Nybegynder
12. januar 2003 - 18:13 #4
Fejlen er ikke ingen side, men forkert kode på siden - prøv ovenstående :-)
Avatar billede niceday Nybegynder
12. januar 2003 - 18:17 #5
wups, der sneg sig en fejl ind - glem det jeg skriv kl. 18:11:48
Jeg mente:


Dit database-kald ser heller ikke helt rigtigt ud:

Du skriver:

Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND password='" & password & "');"


Jeg ville til f.eks. Access 2000 skrive:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Data Source=...fysisk sti til databasen...\database.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND password='" & password & "')"


Altså med en anden connection-string OG vigtigst - du har ; sidst i dit sql-kald ... det er en fejl!
Avatar billede plato Juniormester
12. januar 2003 - 18:17 #6
Vil du være venlig og rette det i koden..
Det er ikke mig der har lavet det. Men ham der har lavet kan jeg ikke få fat i.
Jeg har slettet ;

Men lige en ting:
Skal databasen kaldes når der bruges global?
Den bliver kaldt med Conn.Open Application("Provider")
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:18 #7
niceday>> Application("Provider") er en applikation-variabel som givetvis indeholder hans connectionstring. Og et semikolon sidst i et sql-kald er ikke en fejl, bare unødvendigt. Man kan godt sende flere sql-kald afsted på én gang, de skal så bare adskilles med semikolon.
Avatar billede niceday Nybegynder
12. januar 2003 - 18:18 #8
Det kommer an på hvad der står i Application("Provider")

Skriv det lige ... og er det til Access 2000 ?
Avatar billede niceday Nybegynder
12. januar 2003 - 18:21 #9
dgivoni >

Jeg har været ude for at ; giver fejl ved visse databasetyper - derfor vil jeg bare være på den sikre side, hvis han engang skifter connection-string til en anden database. Men du har ret - det er en unødvendighed... sorry :-)
Avatar billede plato Juniormester
12. januar 2003 - 18:21 #10
Jeg har lige rettet det du skrev, det virker ikke..
Det er 2002.

Her er min global.asp:
<script runat="server" language="VbScript">
Sub Application_OnStart()
Application("Provider") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("data.mdb")

End Sub
</script>
Avatar billede plato Juniormester
12. januar 2003 - 18:25 #11
Min global virker forøvrigt fint, da alle mine andre ting kører som de skal.

Det skal lige siges at. Login.inc (hedder den) er sat ind med include i default.asp. Hvis det skulle have noget at sige.
Avatar billede niceday Nybegynder
12. januar 2003 - 18:27 #12
Det kommer helt an på hvordan koden ser ud for serveren, når alle includes er med. Jeg retter lige koden.
Avatar billede plato Juniormester
12. januar 2003 - 18:29 #13
OK
Avatar billede plato Juniormester
12. januar 2003 - 18:30 #14
Der er godt nok 3 andre include. 2 af dem er HTML, én er ASP, Top 10 stemt.
Som ikke bruger Application("Provider"), men har database angivelse i selve koden.
Avatar billede niceday Nybegynder
12. januar 2003 - 18:32 #15
Prøv lige:


<%
function fixSring(strInput)
if len(strInput) > 0 then
    outString = replace(strInput,"'","")
        fixSring = outString
else
    fixSring = strInput
end if
end function


if Request.ServerVariables("REQUEST_METHOD") = "POST" then

    Set Conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.RecordSet")

    username = fixSring(Request.Form("username"))
    password = fixSring(Request.Form("password"))
   
    Conn.Open Application("Provider")
    Set Conn = Server.CreateObject("ADODB.Connection")
    strSQL= "SELECT * FROM users WHERE (username = '" & username & "' AND password='" & password & "')"
    Set rs = Conn.Execute (strSQL)

    if not rs.EOF then
          if (username = rs("username")) then
                  session("loginOK") = "jeps"
                session("username") = rs("username")
            session("time") = Now()
          end if
      end if

rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
end if

if session("loginOK") <> "jeps" THEN
%>
<form method="post" name="adminlogin">
    Brugernavn:<br><input class="bar" size="9" name="username"><br>
      Password:<br><input class="bar" type="password" name="password"><br>
    <input class="knap" type="submit" value="Login" name="Action">
</form>
<%
else
Response.write "<center>Du er logget p&aring; d.:<br>"
Response.write Session("time") & "<br>"
Response.write "<center>som:<br>"
Response.write Session("username") & "<br>"

Response.write "<a href='logout.asp'><b>Logout</b></a></center>"
End If
%>
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:34 #16
jeg får en HTTP 405 - Resource not allowed fejl når jeg forsøger at logge ind. Jeg har prøvet at finde ud af hvad det kunne betyde, men uden held :-(
Avatar billede niceday Nybegynder
12. januar 2003 - 18:35 #17
Hvis ovenstående ikke virker, så synes jeg du skal prøve at gøre koden lidt mere simpel og så bygge op derfra. Nok kan fejlen ikke ligge så mange steder, men ved at tilføje elementer til en simpel kode kan du hele tiden se når fejlen pludselig kommer. F.eks. synes jeg du skal fjerne dine includes osv.
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:36 #18
jeg tror jeg har en idé:
Din form har intet action-felt, så prøv at tilføje:
<form method="post" name="adminlogin" action="SIDENSNAVN">
Avatar billede plato Juniormester
12. januar 2003 - 18:38 #19
Se nu kommer der i det mindste en fejl..

ADODB.Connection error '800a0e78'

Operation is not allowed when the object is closed.

/login.inc, line 23
Avatar billede niceday Nybegynder
12. januar 2003 - 18:38 #20
ja, sad lige og så på det samme, men dette burde ikke give fejl 405 :-)
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:38 #21
ifølge denne microsoft-beskrivelse svarer det også godt til fejlmeddelelsen...
http://support.microsoft.com/default.aspx?scid=KB;en-us;q216493
Avatar billede niceday Nybegynder
12. januar 2003 - 18:40 #22
Dejligt man altid kan blive klogere - vidste ikke at 405 også kunne forekomme ved forkert form-opsætning ... men lad os lige se :-)
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:40 #23
prøv at fjerne Set fra flg. linje: (variablen er defineret ovenover...)
Set rs = Conn.Execute (strSQL)
Avatar billede plato Juniormester
12. januar 2003 - 18:41 #24
Ok..Ved at læse det, er det et spørgsmål om at den ikke ved hvor man skal sendes han..
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:41 #25
niceday >> næ, det vidste jeg heller ikke... :-)
Avatar billede plato Juniormester
12. januar 2003 - 18:42 #26
Operation is not allowed when the object is closed.

Skriver det samme
Avatar billede dgivoni Nybegynder
12. januar 2003 - 18:42 #27
fejlen m. linje 23, kom den inden eller efter du tilføjede en action-attribut?
og hvilken linje er nr. 23?
Avatar billede virus Nybegynder
12. januar 2003 - 18:42 #28
<%
    If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
   
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open "Provider = Microsoft.OLEDB.Jet.4.0; Data Source = " & Server.Mappath("data.mdb")
       
        FrmUser = Replace(Request.Form("username"),"'","''")
        FrmPass = Replace(Request.Form("password"),"'","''")

        Set RS = Conn.Execute("SELECT * FROM users WHERE username = '" & FrmUser & "' AND password = '" & FrmPass & "'")
       
        If Not RS.EOF Then Session("username") = FrmUser
   
    End If

    If Session("username") <> "" Then
       
        Response.Write "Du er nu logget p&aring; d.:<br />"
        Response.Write Session("time") & "<br />"
        Response.Write "<center>som:<br />"
        Response.Write Session("username") & "<br />"
        Response.Write "<a href=""logout.asp""><b>Logout</b></a></center>"
   
    Else
       
        Response.Write "<form method=""post"" action=""?"">"
        Response.Write "Brugernavn:<br /><input type=""text"" name=""username"" size=""9"" class=""bar"" /><br />"
        Response.Write "Password:<br /><input type=""password"" name=""password"" size=""9"" class=""bar"" /><br />"
        Response.Write "<input type=""submit"" value=""Login"" class=""knap"" />"
        Response.Write "</form>"

    End If
%>
Avatar billede virus Nybegynder
12. januar 2003 - 18:43 #29
Jeg har rettet din kode, problemet var at du ikke postede til nogen side.
Anyway jeg har fjernet det uoverflødige kode samt XML optimeret det.
Avatar billede virus Nybegynder
12. januar 2003 - 18:43 #30
uoverflødige = overflødige :]
Avatar billede plato Juniormester
12. januar 2003 - 18:45 #31
virus... Dit nick er godt.. ;-) Det gik da helt galt
Avatar billede plato Juniormester
12. januar 2003 - 18:45 #32
Der er dobblet "" skal jeg ikke fjerne dem?
Avatar billede plato Juniormester
12. januar 2003 - 18:48 #33
Skal lige hente mad.. Kigger lidt senere.
Avatar billede virus Nybegynder
12. januar 2003 - 18:48 #34
Nej, VBS vil udskrive "" som ", i stedet for at bruge ' :)
Avatar billede virus Nybegynder
12. januar 2003 - 18:50 #35
Response.Write "<input type=""submit"" value=""Login" class=""knap"" />"
Skal du lige ændre til
Response.Write "<input type=""submit"" value=""Login"" class=""knap"" />"
Avatar billede virus Nybegynder
12. januar 2003 - 18:50 #36
Response.Write "<input type=""submit"" value=""Login"" class=""knap"" />"
Avatar billede plato Juniormester
12. januar 2003 - 18:50 #37
Virus..Nu vil siden slet ikke vises..

Smutter nu... ;o)
Avatar billede virus Nybegynder
12. januar 2003 - 18:51 #38
WTF, hvad er det exp laver?
Du kan ikke lave en value=""login"" med "" efter?
Avatar billede plato Juniormester
12. januar 2003 - 20:07 #39
Prøv lige om det ikke virker nu.

Bruger : Fruriis
Avatar billede plato Juniormester
12. januar 2003 - 20:08 #40
(Kom til at trykke enter for tidligt...)

Bruger : Fruriis
Pass : sophie

Hvis det virker, ved jeg godt hvad fejlen var ved den aller første kode.
Avatar billede niceday Nybegynder
12. januar 2003 - 20:14 #41
Der er noget galt - hvorfor prøver du ikke selv?

Prøv at gøre din kode mere SIMPEL - fjern includes osv. da fejlen lige så godt kan ligge her :-)
Avatar billede plato Juniormester
12. januar 2003 - 21:57 #42
Jeg prøver ikke selv fordi det virker fra min pc. Hvorfor ved jeg ikke. Men det virker ikke fra andre. Da jeg skrev det sidste indlæg, virkede det hos mig og fra min kones pc. Derfor troede jeg det virkede.

Ang. <form action, action må ikke bestemmes, da login virker overalt på sitet.
Hvis der skrives action=default.asp, er det ikke den måde det er lavet på.

niceday, jeg prøver at fjerne includes i default.asp.
Avatar billede plato Juniormester
12. januar 2003 - 22:01 #43
Prøv lige at klikke på det her link og log ind derfra.

http://www.trailersiden.dk/trailer_detail.asp?Id=441
Avatar billede plato Juniormester
12. januar 2003 - 22:02 #44
Jeg har ikke gjort noget..Men det virker nu... Herfra.
Avatar billede dgivoni Nybegynder
12. januar 2003 - 22:05 #45
der kommer ingen fejl nu, men den logger mig nu heller ikke ind. Samme side bliver bare vist igen...
Avatar billede dgivoni Nybegynder
12. januar 2003 - 22:06 #46
hvis login-scriptet skal fungere fra alle sider, kan du jo bare lade den kalde en anden side, som tjekker login og derefter sender dig tilbage til den side du kommer fra. Så kan du godt saette en action attribut på formen...
Avatar billede plato Juniormester
12. januar 2003 - 22:12 #47
Hvad siger login nu?

Jeg har længe haft problemer med min default.asp. Den ville ikke lave en tabel 100% i højden. Den ville ikke acceptere class elementer. Alle andre undersider havde ikke dette problem. De andre undersider havde kun indholdet i midten, hvor der i toppen var include=top og i bunden include=bottom, for at vise resten.

Nu har jeg lige taget midter indholdet af siden (forsiden) og lavet default.asp om med dette indhold, og så include=top.asp i toppen, og include=bottom i bunden for at vise resten af siden.

Dette har lige løst mine andre problemer, og hvad der er galt aner jeg overhovedet ikke.
Avatar billede plato Juniormester
12. januar 2003 - 22:13 #48
Det virker stadig ikke... Men hvis man prøver efter 10min, så virker det...
Det er meget mystisk..
Avatar billede plato Juniormester
12. januar 2003 - 22:17 #49
Jeg ved satme ikke.. Nu virker det her, før virkede det ikke..

Hvis man åbner en ny IE.. Skriver siden navn og prøver at logge ind, ja så virker det ikke. Prøver jeg så 2 min efter.. SÅ virker det...

Kan det være en server problem?
Avatar billede plato Juniormester
12. januar 2003 - 22:19 #50
Endnu en update..

Jeg har rettet i de koder jeg kan...

Hvis man åbner et nyt vindue, og skriver sidens navn..Så virker login ikke.. Hvis man så trykker på en film eller trailer i menuen. Så virker login efter den nye side er loaded...
Avatar billede niceday Nybegynder
12. januar 2003 - 22:25 #51
det er tydeligvis et spørgsmål om dine sessions nu - da disse timer out efter et stykke tid eller også forsvinder de når du lukker browseren.
Avatar billede plato Juniormester
12. januar 2003 - 22:31 #52
Ja.. For det virker fint nu.. Altså det vil sige, først efter man HAR foretaget sig noget på siden..

Men det er vel en størrer fejlfinding, så det bliver nok ikke lige i aften...
Takker for forsøgene indtil videre. :-)
Avatar billede plato Juniormester
19. januar 2003 - 20:56 #53
Lukket
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