Avatar billede jeppe81 Nybegynder
17. maj 2005 - 13:37 Der er 14 kommentarer og
3 løsninger

Hvad kan fejlen skyldes?

Hej Eksperter

Jeg er ved at lave en hjemmeside med login, jeg har lavet det før men det skal konventeres så jeg ikke køre på access database men derimod på en MySQL database.

Jeg har lavet en ny connection til min database, og den ser også ud til at virke fint, men når jeg prøver at trække noget ud af databasen vil den ikke.

I min MySQL database har jeg følgende kolonner id, user, password.

Her er min asp/SQL kode håber i kan hjælpe :)

<%
        If request("do")="login" Then
        strSQL = "SELECT * FROM user_gsoft WHERE user = '" & request.Form("user") & "' and password = '" & request.Form("password") & "' "
        set UserRS = conn.execute(strSQL)

        if not UserRS.eof then
            session("Login") = "yes"
            session("bruger") = UserRS("id")
            session.Timeout=20
            response.Redirect("default.asp")
        ELSE
            session("login") = "no"
            session.Timeout = 20
            Fejl = "You have not logged in Successfully"
        End If
End If
%>
..
.
.
.

      <%
    if Session("bruger") = "" then
    Session("bruger") = "0"
    End If
    strSQL1 = "SELECT * FROM user_gsoft WHERE id = "&Session("bruger")&""
    set RSbruger = conn.execute(strSQL1) <--- HER PROBLEMET OPSTÅR
    %>
.
.
.
.

<% If session("login") = "yes" then %><font style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#000000;">Logged in as <%=RSbruger("User")%></font><%Else%><font style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#CCCCCC;">You are not Logged in!</fotn><%End If%></td>

Jeppe aka ZuLu
Avatar billede and_ Nybegynder
17. maj 2005 - 13:44 #1
sikker på at din session("bruger") indeholder noget? samt er feltet af tekst eller tal i basen....?

en anden gang hjælper det sådan ca. 99,8 % hvis du også lige smider fejlkoden herinde ;)

prøv:

strSQL1 = "SELECT * FROM user_gsoft WHERE id = " & Session("bruger") & ""
response.write("<br>" & strsql1 & "<br>")
set RSbruger = conn.execute(strSQL1)
Avatar billede cpufan Juniormester
17. maj 2005 - 13:49 #2
hvilken fejl kommer den med?
det kunne være at du har oprettet kolonnen id som en varchar, så typerne ikke stemmer overens
ellers er det når session("bruger") bliver sat til "0" hvilket jo er en streng
så skal du:
strSQL1 = "SELECT * FROM user_gsoft WHERE id = "&Cint(Session("bruger"))&""
Avatar billede ksoren Nybegynder
17. maj 2005 - 14:01 #3
cpufan, mysql ser jo kun den samlede streng, så at lave type-konverting der, har da ingen effekt
Avatar billede cpufan Juniormester
17. maj 2005 - 14:06 #4
nej det smarteste er naturligvis at ændre
if Session("bruger") = "" then
    Session("bruger") = 0 ' til dette
    End If
men det andet virker da også.....
Avatar billede thesurfer Nybegynder
17. maj 2005 - 14:08 #5
jeppe81> Du har en alvorlig sikkerheds fejl i dit login script!
Du SKAL ALTID erstatte '-tegnet! Ellers kan man "hacke" dit site..

Dvs:
strSQL = "SELECT * FROM user_gsoft WHERE user = '" & replace(request.Form("user"), "'", "''") & "' and password = '" & replace(request.Form("password"), "'", "''") & "' "

Eller fjern '-tegnet helt (brug "" istedet for "''")

Lav evt en funtion til det..



ksoren> "..WHERE id = " & CInt(Session("bruger")) er korrekt.
Avatar billede ksoren Nybegynder
17. maj 2005 - 14:10 #6
val1 = 0
val2 = "0"

str1 = "hello " & val1
str2 = "hello " & CInt(val2)

thesurfer, så fortæl mig hvad forskellen på str1 og str2 er?
Avatar billede thesurfer Nybegynder
17. maj 2005 - 14:15 #7
jeppe81> Læs http://activedeveloper.dk/artikler/default.asp?articleid=297

Der er ingen forskel på str1 og str2, da de begge er strenge, pga "" tegnene (streng + tal = streng)..
At bruge CInt er ikke forkert, og kræves nogen gange.. hvad der ikke er forkert, må være rigtigt :-)
Avatar billede jeppe81 Nybegynder
17. maj 2005 - 14:33 #8
Hej igen jeg har siddet og prøvet mig lidt frem men kan ikke rigigt finde ud af hvad der er galt.

men jeg har prøvet at lave en test side, hvor jeg vil have noget skrevet ud, den ser således ud:

<!--#INCLUDE FILE="top.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>
<%
    strSQL1 = "SELECT * FROM user_gsoft WHERE id = " & Session("bruger") & ""
    response.write("<br>" & strsql1 & "</font><br>")
    set RSbruger = conn.execute(strSQL1)
%>
</body>
</html>

top.asp ser således ud:

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=creaweb_dk;UID=creaweb_dk;PWD=MitPassword;"
objConn.Open

'objRS.Open "[QUERY]", objConn, 3,3
%>

og jeg får følgende fejlmeddelse:

http://www.creaweb.dk/g-soft/test.asp


Technical Information (for support personnel)

Error Type:
Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'conn'
/g-soft/test.asp, line 12


håber det kan hjælpe lidt så jeg kan få et mere entydigt svar :)
Avatar billede thesurfer Nybegynder
17. maj 2005 - 14:38 #9
Du har omdøbt "conn" til "objConn".. brug "objConn" i stedet her: set RSbruger = conn.execute(strSQL1)
Avatar billede jeppe81 Nybegynder
17. maj 2005 - 15:25 #10
Ahh lol det kunne jeg jo have sagt mig selv :P, men prøver mig lige lidt frem for det ser ud til der stadig er lidt problemer.

ved ikke helt hvad jeg skal gøre med point for i har jo stort set alle hjulpet.
Avatar billede thesurfer Nybegynder
17. maj 2005 - 23:19 #11
Du kan bare skrive, at vi alle skal lægge et svar :-)
Så kan du dele pointsne mellem os, enten lige op, eller via "Avanceret", hvor du kan vælge hvor meget hver enkelt bruger skal have..
Avatar billede jeppe81 Nybegynder
18. maj 2005 - 08:40 #12
så skal i lige alle svare hvis jeg skal dele point :)
Avatar billede and_ Nybegynder
18. maj 2005 - 09:04 #13
svar ;)

Fik du styr på din sqlsætning?
Avatar billede thesurfer Nybegynder
18. maj 2005 - 10:39 #14
Svar fra mig :-)
Avatar billede jeppe81 Nybegynder
18. maj 2005 - 10:48 #15
tak og ja jeg fik da rimlig styr på det :D
Avatar billede and_ Nybegynder
18. maj 2005 - 10:52 #16
takker for point :)
Avatar billede thesurfer Nybegynder
18. maj 2005 - 10:55 #17
Takker for points :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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