Avatar billede zombien Juniormester
20. december 2006 - 12:05 Der er 7 kommentarer og
1 løsning

Problemer med at hente informationer til asp fra databasen

Hej

jeg sidder med et problem her...
jeg forsøger at lave et login system i asp, som derved skal gå over en mysql database, selve login systemet virker uden problemer... men på den side man kommer ind på skal den hente noget ud fra databasen og det er det systemet driller

jeg bruger denne kode til at fremkalde en tabellen fornavn fra min database

<%
' her kommer de forskellige cases/sider som er inde i default.asp
dim fornavn, user
   
user = replace(request.form("brugernavn"),"'","")
fornavn = "SELECT fornavn FROM bruger WHERE brugernavn = '" & user & "'"
Set rs = Conn.Execute(fornavn)
   
response.write " <br><br><br> "
   
if page = "logon" then
response.write " Hej " & rs("fornavn") &  " <br> "
response.write " Du er nu logget korrekt ind i systemet "
response.write " <br><br><br> "
end if

%>

men jeg får følgende fejl

Fejltype:
(0x80020009)
Undtagelse opstod.
/2 Dags Opgave ( login )/system.asp, line 95


min database connection, ser sådan her ud, og den skulle der ikke være nogle problemer med
<%
dim conn

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open " DRIVER=MySQL ODBC 3.51 Driver; SERVER=localhost; UID=root; PWD=1234; DATABASE=ek-loginsystem;"
Session.lcid = 1030
%>

håber der nogle som evt. kan hjælpe mig
Avatar billede zombien Juniormester
20. december 2006 - 12:35 #1
har ændret lidt i koden nu... men har stadig ikke fået det til at virke

lige nu får jeg denne fejl

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/2 Dags Opgave ( login )/system.asp, line 90


og min kode ser hermed sådan her ud

<%
' her kommer de forskellige cases/sider som er inde i default.asp
dim SQL, user, rs
   
user = replace(request.form("brugernavn"),"'","")
SQL = "SELECT fornavn, brugernavn FROM bruger WHERE brugernavn ="&user&"" 
Set rs = Conn.Execute(SQL)
   
response.write " <br><br><br> "
   
if page = "logon" then
response.write " Hej " & rs("'Fornavn'") &  " <br> "
response.write " Du er nu logget korrekt ind i systemet "
response.write " <br><br><br> "
end if

%>
Avatar billede ffsoft Praktikant
20. december 2006 - 13:02 #2
Du skal altid indsætte sætninger der viser dine variabler og SQL udtryk
under prøvekørsel, når det så funker kan du bare udkommentere sætningerne:

user = replace(request.form("brugernavn"),"'","")
response.write "User: " & user & "<br>"
SQL = "SELECT fornavn, brugernavn FROM bruger WHERE brugernavn ="&user&"" 
response.write "SQL: " & SQL & "<br>"

Nu kan du sikkert se fejlen, eller kan du prøve at kopiere SQL udtrykket
til en forespørgsel og så se hvad databasen siger til det.

Der mangler sikkert plinger her: WHERE brugernavn ="&user&""  altså
WHERE brugernavn ='" & user & "'"
Avatar billede zombien Juniormester
20. december 2006 - 13:48 #3
okay, først og fremmest tak for dit svar :-)
jeg har prøvet at indsætte den kode du der kom med...

altså

user = replace(request.form("brugernavn"),"'","")
response.write "User: " & user & "<br>"
SQL = "SELECT fornavn, brugernavn FROM bruger WHERE brugernavn ="&user&"" 
response.write "SQL: " & SQL & "<br>"

så fremviser den, denne tekst inde på siden...

Forsiden

User:
SQL: SELECT fornavn, brugernavn FROM bruger WHERE brugernavn =

så nu kommer den teori, at den slet ikke finder noget brugernavn...
så er der nogen måde, jeg kan smide en variabel op i querystring, og derved hente det derfra...

lige nu køre jeg system.asp?page=logon, så hvordan tilføjer jeg en variabel til den
Avatar billede zombien Juniormester
20. december 2006 - 14:13 #4
så har jeg fået den querystring fikset...
så den lyder sådan system.asp?page=logon&user=&loginnavn&

så derefter, at have brugt denne kode

<%
dim page, user, SQL, rs
   
    page = replace(request.QueryString("page"),"'","")
    user = replace(request.querystring("user"),"'","")


    if page = "logon" then
    response.write " Forsiden <br><br> "
    end if
   
    response.write "User: " & user & "<br>"
    SQL = "SELECT fornavn FROM bruger WHERE brugernavn = '" & loginnavn & "'"
    Set rs = Conn.Execute(SQL)
    response.write "SQL: " & SQL & "<br>"

%>

fremkalder den dette tekst...

User: Test
SQL: SELECT fornavn, brugernavn FROM bruger WHERE brugernavn = "

nu kan den finde brugernavnet igen, så nu skal jeg bare lige have den håndterings streng til at virke korrekt
Avatar billede ffsoft Praktikant
20. december 2006 - 16:57 #5
OBS du har ændret i SQL udtrykket:

SQL = "SELECT fornavn FROM bruger WHERE brugernavn = '" & loginnavn & "'"

så du skal osse checke hvad der står i loginnavn eller ændre til

SQL = "SELECT fornavn FROM bruger WHERE brugernavn = '" & user & "'"
Avatar billede zombien Juniormester
20. december 2006 - 18:11 #6
jeg har prøvet at rette den overstående sætning til det du skrev altså

" SQL = "SELECT fornavn FROM bruger WHERE brugernavn = '" & user & "'" "

men derved laver den stadig samme fejl :-S

den fremviser det bare sådan her

User: test
SQL: SELECT fornavn FROM bruger WHERE brugernavn = 'test'

hvilket den har gjort et stykke tid nu :-(
ved ikke lige hvad der får galt, for kan evt. ikke se hvor fejlen ligger henne
Avatar billede ffsoft Praktikant
20. december 2006 - 18:32 #7
Du har en tabel der hedder bruger og i den er der et
felt der hedder fornavn og en af posterne er test ??
Hvis alt dette er sandt så prøv at kører SQL udtrykket
uden at have en where del på:

SQL = "SELECT fornavn FROM bruger"

så skal du se alle fornavnene i den tabel.
Avatar billede ffsoft Praktikant
20. december 2006 - 18:34 #8
Hvis det går godt prøver du sætte en fast where del på:

SQL = "SELECT fornavn FROM bruger Where brugernavn like '%est%'"

Det skal osse give mindst et resultat.
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

IT-JOB

Capgemini Danmark A/S

Java Engineer

Netcompany A/S

Test Consultant

Netcompany A/S

Network Engineer

Politiets Efterretningstjeneste

Koordinator med teknisk flair til AI og data i PET

Netcompany A/S

IT Consultant