Avatar billede riishoj Nybegynder
01. maj 2002 - 23:48 Der er 36 kommentarer og
2 løsninger

Undskyld questis, men nyt problem

Jeg kunne krybe i et stort hul, men det hjælper nok ikke noget. Sådan går det når man blander forskellige scripts.

Desværre giver rettelsen en fejl i index.asp, som jo ser sådan ud

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>

<body>
<%

' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From tråd Where forhandlerId = " & Request.Querystring("forhandlerId")
Set rs = myConn.Execute(strSQL)
' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>

</body>

</html>

Det giver følgende fejl

ADODB.Recordset.1 error '80004005'

SQLState: S0002
Native Error Code: -1305
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'tr'. Make sure it exists and that its name is spelled correctly.


/Biler_paa_Vestfyn/index.asp, line 21
Avatar billede Slettet bruger
01. maj 2002 - 23:50 #1
det er å i tråd der er problemet omdøb tabellen.
Avatar billede riishoj Nybegynder
01. maj 2002 - 23:54 #2
Så sker der dette her

ADODB.Recordset.1 error '80004005'

SQLState: 37000
Native Error Code: -3100
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'forhandlerId ='.


/Biler_paa_Vestfyn/index.asp, line 21
Avatar billede eagleeye Praktikant
01. maj 2002 - 23:56 #3
Jeps.. Undgå æ,ø,å i tabel og kolonne navne.. Hvis du vil beholde det oså kan du sætte [] omkring i SQL-sætningen:
strSQL = "Select * From [tråd] Where forhandlerId = " & Request.Querystring("forhandlerId")

Alle SQL-sætniger skal hvor tråd indgår skal der så [] med. Det leteste er at holder navngivningn til ord uden æ,ø,å, ,-,;,:  Hvis man vil havde mellemrum i kolonnenanve så benyt _ eller træk orne sammen. Ligesom du har gjodt med forhandlerID.
Avatar billede Slettet bruger
01. maj 2002 - 23:56 #4
Din tabel tråd skal du kalde noget andet + den skal selvfølgelig fysisk omdøbes til det samme i din Access database.

F.eks.:
strSQL = "Select * From traad Where forhandlerId = " & Request.Querystring("forhandlerId")
Avatar billede eagleeye Praktikant
01. maj 2002 - 23:57 #5
Hvor får du forhandlerID fra ? 
Det skal komme som en query string altså via linket:  side.asp?forhandlerId=XXX
Avatar billede riishoj Nybegynder
02. maj 2002 - 00:00 #6
Min tabel hedder "forhandler"- derfor nu

strSQL = "Select * From forhandler Where forhandlerId = " & Request.Querystring

men det giver altså fejlen

ADODB.Recordset.1 error '80004005'

SQLState: 37000
Native Error Code: -3100
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'forhandlerId ='.


/Biler_paa_Vestfyn/index.asp, line 21
Avatar billede eagleeye Praktikant
02. maj 2002 - 00:02 #7
Du skal havde ("forhandlerDI") med:

strSQL = "Select * From forhandler Where forhandlerId = " & Request.Querystring("forhandlerId")
Avatar billede eagleeye Praktikant
02. maj 2002 - 00:19 #8
Når Querystring benyttes skal linket til filen se sådan ud:

index.asp?forhandlerID=25

Hvis det stadig giver fejl så prøv at rette Request.Querystring("forhandlerId") til Request("forhandlerId")
Avatar billede riishoj Nybegynder
02. maj 2002 - 00:41 #9
Skulle dette her virke? Jeg har omdøbt min tabel til "login" og "forhandlerId" til "Id"

<%

' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From login Where Id = " & Request("Id")
Set rs = myConn.Execute(strSQL)
' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede eagleeye Praktikant
02. maj 2002 - 00:44 #10
Ja det skulle virker... Hvis du enten kalder filen med index.asp?id=xx eller du har en <FORM> på en anden side hvor du har et felt som hedder Id.
Avatar billede Slettet bruger
02. maj 2002 - 00:44 #11
problemet ligger i at du linker til: http://www.riishojwebsoft.dk/Biler_paa_Vestfyn/index.asp

istedet for:
index.asp?id=?(rs("id"))
Avatar billede eagleeye Praktikant
02. maj 2002 - 00:47 #12
Det virker da fint hvis du skriver id=3  eller andet tal.

http://www.riishojwebsoft.dk/Biler_paa_Vestfyn/index.asp?id=3
Avatar billede riishoj Nybegynder
02. maj 2002 - 00:49 #13
Hvordan linker jeg til index.asp?id=?(rs("id"))?
Avatar billede Slettet bruger
02. maj 2002 - 00:50 #14
det han skal have gjort er sandsynligvis at oprette en sesion ved login, hvor den taer brugerens id fra den der logger ind, og overfører dette til denne url, for at lave et system, der giver mulighed for at logge ind på sin personlige side ved login
Avatar billede riishoj Nybegynder
02. maj 2002 - 00:50 #15
Jeg har jo denne her form

<form target='_parent' action='login.asp' method='post'>
<input name='username'>
<p>
<input name='password' maxlength='8' type='password'>
</p>
<p>
<input type='submit' value='login'>



</p>
</form>
Avatar billede Slettet bruger
02. maj 2002 - 00:52 #16
jeps, men på den side der hed login.asp, der var en session.... kan du huske dette ? den skal vi nok have til at overføre brugerens id
Avatar billede riishoj Nybegynder
02. maj 2002 - 00:55 #17
Ja, jeg kan godt huske denne session. Hvordan får jeg den til at overføre brugerens id?
Avatar billede Slettet bruger
02. maj 2002 - 01:05 #18
2 sekunder &:-D
Avatar billede Slettet bruger
02. maj 2002 - 01:07 #19
session("brugernavn") = LCase(strUsername)  sådanne så den ud... men så skal vi have eagleeye på banen for at omskrive denne, da der nok skal roders lidt med den SQL igen for at få den til at hente id
Avatar billede Slettet bruger
02. maj 2002 - 01:09 #20
må desvære logge af nu, da jeg skal op og til gallafest (afslutnings fest på min uddanelses ansalt, i morgen og gerne vil være lidt frisk
Avatar billede riishoj Nybegynder
02. maj 2002 - 01:18 #21
God fest. Burde også være stoppet for længe siden. Kan jo så håbe på, at eagleeye kigger forbi i morgen.
Avatar billede Slettet bruger
02. maj 2002 - 01:21 #22
tak, ja du skal ikke regne med at se mig herinde før fredag aften, nå jeg er ædrug nok til at ramme start knappen på computeren &:-D
Avatar billede riishoj Nybegynder
03. maj 2002 - 21:33 #23
Mon tråden er død?
questis> Har du haft en god fest?
Avatar billede Slettet bruger
03. maj 2002 - 23:30 #24
dawz igen &:-D


som sagt ville jeg være glad hvis du fangede eageleye igen....

han er online lige nu, og lad ham gennem læse det sidste, så tror jeg helt sikkert han kan hjælpe, det med session's og SQL er ikke min stærke side, er stadig ny, men prøv ham
Avatar billede eagleeye Praktikant
03. maj 2002 - 23:36 #25
Risshoj>>Ja, jeg kan godt huske denne session. Hvordan får jeg den til at overføre brugerens id?

Hvor skal ID overføres til?


Hvis du vil genne ID i session skal du i din 'login.asp' kode sætte:
  Session("brugerID") = rs("id")  '<--- antager du har et id felt i en database


-----
Hvis du så vil linke til index.asp med et id så gør sådan her:
<a href="index.asp?id=<%=Session("brugerID")%>">Tryk her</a>
Avatar billede riishoj Nybegynder
03. maj 2002 - 23:42 #26
Hvor i min login.asp skal jeg indsætte denne session?

<%
' bruges til at tjekke om brugeren finde i db ved login
' Sender resultaterne fra tilføj links til databasen
' Database connection
' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"


strUsername = Trim(Replace(Request.Form("username"),"'",""))
strPassword = Trim(Replace(Request.Form("password"),"'",""))
strSQL ="SELECT * FROM login WHERE UCase(username) = '" & UCase(strUsername) & "' AND UCase(Password) = '" & UCase(strPassword) & "'"
set rs = myConn.execute(strSQL)
'først tjekke om brugeren findes ved at tjekke om recordsetet er tomt.
if not rs.EOF then
  if LCase(rs("username")) = LCase(strUsername) then
    'LOGIN OK
    session("brugernavn") = LCase(strUsername)
  Response.Redirect("index.asp")
  else
    'INGEN BRUGER FUNDET
    'Eller en blev fundet men databasen bruger navn passer ikke med det
    'indtastede brugernavn
  end if
else
'brugeren ikke fundet lave det som skal ske hvis brugeren ikke er fundet her
end if
myConn.Close
Set myConn = Nothing

%>

Og hvad med

<a href="index.asp?id=<%=Session("brugerID")%>">Tryk her</a>
Avatar billede eagleeye Praktikant
03. maj 2002 - 23:45 #27
Det er måske den index.asp du redirector til id skal med i?
Så er det sådan her:


if LCase(rs("username")) = LCase(strUsername) then
  'LOGIN OK
  session("brugernavn") = LCase(strUsername)
  session("brugerID") = rs("id")
  Response.Redirect("index.asp?id=" & session("brugerID"))
Avatar billede riishoj Nybegynder
03. maj 2002 - 23:47 #28
Ok, det prøver jeg lige!
Avatar billede riishoj Nybegynder
03. maj 2002 - 23:50 #29
Hvad går der galt nu?

Microsoft VBScript compilation error '800a0408'

Invalid character

/Biler_paa_Vestfyn/login.asp, line 30

  Response.Redirect("index.asp?id=" &
Avatar billede eagleeye Praktikant
03. maj 2002 - 23:53 #30
hmm ja prøv at slette de mellem rum der er og lav dem igen.
Gå også hen til enden af linien og slet indtil den næste linie kommer op til curseren og så tryk på returen.. Når man copy-paster kan der nogle gangke komme en karater man ikke kan se men tilsyneladne kan ASP-fortolkren se den.
Avatar billede riishoj Nybegynder
03. maj 2002 - 23:56 #31
Ja, det var godt nok noget med et linjeskift. Men nu får jeg istedet

Microsoft VBScript compilation error '800a0408'

Invalid character

/Biler_paa_Vestfyn/login.asp, line 30

  Response.Redirect("index.asp?id=" & session("brugerID"))
Avatar billede eagleeye Praktikant
04. maj 2002 - 00:00 #32
Det er vist det same prøv evt at slette alle mellemrum og return før og lav dem igen på en/to linier omkring linie 30.
Avatar billede riishoj Nybegynder
04. maj 2002 - 00:07 #33
Så var den der. Tusind tak.
questis>send et svar, så deler jeg pointene mellem dig og eagleeye!!
Avatar billede Slettet bruger
04. maj 2002 - 00:15 #34
er det endeligt lykkedes for dig at få det til at virke ? &:-D

held og lykke med dit system
Avatar billede riishoj Nybegynder
04. maj 2002 - 10:25 #35
Tak questis. Ja, det virker nu, meeeeeeeeeeeeen havd nu, når den som har logget sig på korrekt går op i url'en og ændrer id-nummeret, så er man lige pludselig på en anden side, og det var jo ikke meningen.
Undskyld jeg ikke svarede i går, men jeg blev så glad for at det virkede, at jeg skyndte mig i seng.
Avatar billede eagleeye Praktikant
04. maj 2002 - 10:35 #36
Hej

Når du nu har gemt id i en session kan du benytte den session i stedet for id i en querystring som du selv siger man bare kan rette i:

Din "nye" index.asp fil:


<%

' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From login Where Id = " & session("brugerID") '<--her stod request("ID")
Set rs = myConn.Execute(strSQL)
' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede eagleeye Praktikant
04. maj 2002 - 10:38 #37
Du kan enda også benytte session("brugerID") til før at tjekke om man er logget ind på i index.asp filen...:

<%
'hvis session("brugerID") er tom så er man ikke logget ind.
if session("brugerID") = "" then
  response.write "du skal være logget ind"
else
' Skaber DSN forbindelse til DBen
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DSN=riishojwebsoftdkdsn"

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From login Where Id = " & session("brugerID") '<--her stod request("ID")
Set rs = myConn.Execute(strSQL)
' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede eagleeye Praktikant
04. maj 2002 - 10:38 #38
hov den sidste mangler et end if efter Set myConn = Nothing
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