Avatar billede Meggel Novice
23. marts 2004 - 09:53 Der er 41 kommentarer og
1 løsning

sql fejl.

SQL = "SELECT * FROM Tuser WHERE (FBruger = '" & Bruger & "') AND (Godkendt = 2)" en der lige kan se en bug der ?

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/mikkel/login.asp, line 57


har et feldt der hedder godkendt og en som hedder FBruger
Avatar billede keysersoze Ekspert
23. marts 2004 - 09:58 #1
hvilke kolonnetyper er de to felter?
Avatar billede Meggel Novice
23. marts 2004 - 09:58 #2
tekst
Avatar billede Meggel Novice
23. marts 2004 - 09:59 #3
X SQL = "SELECT * FROM Tuser WHERE (FBruger = '" & Bruger & "') AND (Godkendt = '2')"  yIIR havde glemt der skulle '' når det er tekst felter..
Avatar billede fennec Nybegynder
23. marts 2004 - 09:59 #4
SQL = "SELECT * FROM Tuser WHERE (FBruger = '" & Bruger & "') AND (Godkendt = '2')"
Avatar billede Meggel Novice
23. marts 2004 - 10:01 #5
du får de point hvis du vil ha dem..
Avatar billede fennec Nybegynder
23. marts 2004 - 10:03 #6
Ingen til mig. Du løste det selv, og jeg var for langsom.
Avatar billede Meggel Novice
23. marts 2004 - 10:08 #7
hmm oki men måske du kan hjælpe mig med noget andet så..
Avatar billede Meggel Novice
23. marts 2004 - 10:11 #8
hvis jeg nu fx skal lave sådan at hvis en bruger ikke er aktivret altså at godkendt er 1 hvordan laver man så det ?
Avatar billede tubber Juniormester
23. marts 2004 - 10:12 #9
fruth kewl du lige poster din løsning når du selv finder den, mange lukker bare spg. og skriver fandt selv ud af det. Det er p.... irreterende for dem der søger på eksperten og få en masse relevante spg. men uden svar i......

Og spørg du bare løs :)

/Tubber06
Avatar billede tubber Juniormester
23. marts 2004 - 10:13 #10
Det du mener er at den skal komme og sige at brugeren ikke har adgang eller er logget ind ?
Avatar billede Meggel Novice
23. marts 2004 - 10:16 #11
altså hvis godkendt er 2 så må bruger logge ind.. ellers har bruger ikke adgang til at logge ind..
Avatar billede fennec Nybegynder
23. marts 2004 - 10:18 #12
>>tubber
fruth har vist sin løsning. Se det 3. indlæg.....

hvis godkent = 1 så skulle du gerne få et tom recodset.
if not rs.eof then
  er godkendt
else
  er ikke godkendt
end if
Avatar billede tubber Juniormester
23. marts 2004 - 10:19 #13
fennec: skrev også bare det var fedt hun gjorde det :)
Avatar billede Meggel Novice
23. marts 2004 - 10:20 #14
oki hvis jeg nu smider min kode her.. så er det nok lidt nemmer.. der kan godt komme flere på point til den som hjælper mig..


<%
if request("send1") <> "" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("Database/brugerdatabasen.mdb")
Conn.Open DSN

Dim Bruger, Pass
Bruger = Trim(Request.Form("FBruger"))
Pass = Trim(Request.Form("FPass")))
SQL = "SELECT * FROM Tuser WHERE (FBruger = '"& Bruger &"') AND (Godkendt = '2')"
set rs = conn.execute(SQL)
If rs.EOF Then
  response.redirect "default.asp?loginskriv=Forkert brugernavn"
Elseif rs("FPass") = pass Then
  if rs.fields("brugerlevel") = "1" then
      session("loginoki") = Bruger
      Session("forumbruger") = "Member"
      response.redirect "default.asp?bruger="&Bruger&""
  elseif rs.fields("brugerlevel") = "2" then
        session("loginoki") = Bruger
      Session("forumadmin") = "Forum admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?bruger="&Bruger&""
  elseif rs.fields("brugerlevel") = "3" then
        session("loginoki") = Bruger
      Session("daadminbruger") = "über admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?id=bruger1&bruger="&Bruger&""
  end if
Else
  response.redirect "default.asp?loginskriv=Forkert password"
end if
end if
%>
Avatar billede fennec Nybegynder
23. marts 2004 - 10:21 #15
>>tubber
så siger jeg da undskyld. Jeg har misforstået din post :o)
Avatar billede Meggel Novice
23. marts 2004 - 10:21 #16
hun.. ??? jeg er sq da ikke en hun..
Avatar billede Meggel Novice
23. marts 2004 - 10:21 #17
tubber din hat..
Avatar billede tubber Juniormester
23. marts 2004 - 10:22 #18
sorry han ;-)
Avatar billede Meggel Novice
23. marts 2004 - 10:22 #19
tak.
Avatar billede tubber Juniormester
23. marts 2004 - 10:24 #20
Dim Bruger, Pass
Bruger = Trim(Request.Form("FBruger"))
Pass = Trim(Request.Form("FPass")))
SQL = "SELECT * FROM Tuser WHERE (FBruger = '"& Bruger &"')"
set rs = conn.execute(SQL)
If rs.EOF Then
  response.redirect "default.asp?loginskriv=Forkert brugernavn"
Elseif rs("FPass") = pass Then
  if rs.fields("brugerlevel") = "1" then
      session("loginoki") = Bruger
      Session("forumbruger") = "Member"
      response.redirect "default.asp?bruger="&Bruger&""
  elseif rs.fields("brugerlevel") = "2" then
        session("loginoki") = Bruger
      Session("forumadmin") = "Forum admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?bruger="&Bruger&""
  elseif rs.fields("brugerlevel") = "3" then
        session("loginoki") = Bruger
      Session("daadminbruger") = "über admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?id=bruger1&bruger="&Bruger&""
  end if
Else
  response.redirect "default.asp?loginskriv=Forkert password"
end if
end if
%>
Avatar billede tubber Juniormester
23. marts 2004 - 10:25 #21
Som jeg ser det så vælger du alle dem ud der har level 2 det vil sige du kan ike ha en med 3 eller 1
Avatar billede tubber Juniormester
23. marts 2004 - 10:26 #22
Derfor skal du med din kode kun chekke brugernavn i første omgang og så i din if chekker du level og ingen level så forkert password :)
Avatar billede Meggel Novice
23. marts 2004 - 10:26 #23
altså. jeg kan ikke lige se den skriver brugeren er ikke aktiveret..
Avatar billede Meggel Novice
23. marts 2004 - 10:27 #24
altså dem med godkendt hvor der står 2 må godt logge ind.. de andre må ikke.
Avatar billede tubber Juniormester
23. marts 2004 - 10:34 #25
der skal du nok ha en boolean oprettet som står til true or false (ja/nej felt i din db)
så kan du chekke den inden du løber vidre

If rs.EOF Then
  response.redirect "default.asp?loginskriv=Forkert brugernavn"
Elseif rs("FPass") = pass Then
    if rs("aktiveret" = true Then
          if rs.fields("brugerlevel") = "1" then
          session("loginoki") = Bruger
          Session("forumbruger") = "Member"
          response.redirect "default.asp?bruger="&Bruger&""
      elseif rs.fields("brugerlevel") = "2" then
            session("loginoki") = Bruger
          Session("forumadmin") = "Forum admin"
          Session("kanaltiverden") = "daadminnegerpikneger"
          Session("ID") = rs("id")
          response.redirect "default.asp?bruger="&Bruger&""
      elseif rs.fields("brugerlevel") = "3" then
            session("loginoki") = Bruger
          Session("daadminbruger") = "über admin"
          Session("kanaltiverden") = "daadminnegerpikneger"
          Session("ID") = rs("id")
          response.redirect "default.asp?id=bruger1&bruger="&Bruger&""
      end if
    Else
      response.redirect "default.asp?loginskriv=Ikke aktiveret"
    end if
Else
  response.redirect "default.asp?loginskriv=Forkert password"
end if
Avatar billede tubber Juniormester
23. marts 2004 - 10:35 #26
er det KUN dem med 2 der må logge ind ?
så er det godt nok med med den AND du havde i din sql sætning men må alle der er oprettet og aktiveret så skal den bare slettes som jeg lige ser det :)
Avatar billede Meggel Novice
23. marts 2004 - 10:40 #27
Kun dem med 2 må logge ind..
men alle der oprette starter med 1 i godkendt og må derfor ikke logge ind før de har godkendt deres mail.. hvor der er et link som laver godkendt om til 2
Avatar billede Meggel Novice
23. marts 2004 - 10:42 #28
har selv lige fundet en løsning.. poster det lige..
Avatar billede Meggel Novice
23. marts 2004 - 10:42 #29
If rs.EOF Then
  response.redirect "default.asp?loginskriv=Forkert brugernavn"
Elseif rs("FPass") = pass Then
    if rs("godkendt") = "2" Then
          if rs.fields("brugerlevel") = "1" then
          session("loginoki") = Bruger
          Session("forumbruger") = "Member"
          response.redirect "default.asp?bruger="&Bruger&""
      elseif rs.fields("brugerlevel") = "2" then
            session("loginoki") = Bruger
          Session("forumadmin") = "Forum admin"
          Session("kanaltiverden") = "daadminnegerpikneger"
          Session("ID") = rs("id")
          response.redirect "default.asp?bruger="&Bruger&""
      elseif rs.fields("brugerlevel") = "3" then
            session("loginoki") = Bruger
          Session("daadminbruger") = "über admin"
          Session("kanaltiverden") = "daadminnegerpikneger"
          Session("ID") = rs("id")
          response.redirect "default.asp?id=bruger1&bruger="&Bruger&""
      end if
    Else
      response.redirect "default.asp?loginskriv=Ikke aktiveret"
    end if
          end if
Else
  response.redirect "default.asp?loginskriv=Forkert password"
end if
%>
Avatar billede tubber Juniormester
23. marts 2004 - 10:42 #30
ok på den måde 2 sec
Avatar billede Meggel Novice
23. marts 2004 - 10:43 #31
du jeg har fixet det men du manglede kun lidt et end if og så en ) så virkede det :P takker smid et svar og du får point.
Avatar billede tubber Juniormester
23. marts 2004 - 10:45 #32
Dim Bruger, Pass
Bruger = Trim(Request.Form("FBruger"))
Pass = Trim(Request.Form("FPass")))
SQL = "SELECT * FROM Tuser WHERE (FBruger = '"& Bruger &"')"
set rs = conn.execute(SQL)
If rs.EOF Then
  response.redirect "default.asp?loginskriv=Forkert brugernavn"
Elseif rs("FPass") = pass Then
  if rs.fields("brugerlevel") = "1" then
      response.redirect "default.asp?loginskriv=Bruger Ikke Aktiveret"
  elseif rs.fields("brugerlevel") = "2" then
      session("loginoki") = Bruger
      Session("forumadmin") = "Forum admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?bruger="&Bruger&""
  elseif rs.fields("brugerlevel") = "3" then
        session("loginoki") = Bruger
      Session("daadminbruger") = "über admin"
      Session("kanaltiverden") = "daadminnegerpikneger"
      Session("ID") = rs("id")
      response.redirect "default.asp?id=bruger1&bruger="&Bruger&""
  end if
Else
  response.redirect "default.asp?loginskriv=Forkert password"
end if
Avatar billede tubber Juniormester
23. marts 2004 - 10:47 #33
Så skal den sql sætning være uden AND (Godkendt = '2')" for ellers er der ingen med 1 du trækker jo kun brugere ud med 2.....

og der er ingen grund til at lave en session med en bruger som ikke er aktiveret

og hvad så med dem med 3 ?
Avatar billede Meggel Novice
23. marts 2004 - 10:48 #34
altså det er jo bruger level.. så dem med 3 de kan alt på siden og 2 de kan slette indlæg i forum og andre kan kun oprette forum indlæg..
Avatar billede tubber Juniormester
23. marts 2004 - 10:49 #35
den sidste skulle være bedre end den første når 1 = ikke aktiveret

og tag du de points selv :) løste jo ikke spg eller tillægget 100% :)
Avatar billede Meggel Novice
23. marts 2004 - 10:52 #36
det var dig der ga mig iden.. synes godt du må få dem..
Avatar billede tubber Juniormester
23. marts 2004 - 10:53 #37
lige noget helt andet så ville jeg lave det med 4 levels så.....
1 = ikke aktiveret
2 = bruger (kan poste indlæg)
3 = co-admin (kan slette indlæg)
4 = admin (kan alt)

Så undgår man en masse crap hvis brugeren skal ha en E-Mail adresse der kan spores........og skal man være rigtig efiktiv så skal man sortere hotmail, rocketmail og sådan nogen fra altså de gratis :)
Avatar billede tubber Juniormester
23. marts 2004 - 10:56 #38
oh du har delt det på den måde så ikke lige der var både rs.godkendt og rs.fields hehe så er det jo som det skal være
Avatar billede Meggel Novice
23. marts 2004 - 10:57 #39
yes...
Avatar billede Meggel Novice
23. marts 2004 - 11:01 #40
du tager de point havde ikke løst det uden din hjælp..
Avatar billede tubber Juniormester
23. marts 2004 - 11:28 #41
naaaa keep em.....har vist også forvirret lige så meget som jeg har hjulpet :)

næste gang jeg hjælper dig bliver først om eftermiddagen hehehehe
Avatar billede Meggel Novice
23. marts 2004 - 11:43 #42
hehe oki jeg tager selv de point så.
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