Avatar billede doktoren001 Juniormester
27. oktober 2006 - 20:44 Der er 11 kommentarer og
1 løsning

If then else redirect ASP

Hejsa,

Jeg har fået mig et problem med en if sætning.
Den ser sådan her ud:

if rs("niveau") = "1" Then
                Response.Redirect"default1.asp?name=" & strUserName
            else if rs("niveau") = "2" Then
                Response.Redirect"default2.asp?name=" & strUserName
            else if rs("niveau") = "3" Then
                Response.Redirect"default3.asp?name=" & strUserName           
            End if

Jeg får en fejl som hedder
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens
/wbs/check_user.asp, line 48

linje 48 er den øverste linje i det kode jeg har skrevet.

Jeg har en DB med brugerdata, hvori der er et felt som hedder niveau, som definerer hvad man kan se på hvilke sider. derfor vil jeg redirecte til forskellige sider afhængig af hvad niveau man har. Er det en helt håbløs måde at gøre det på? Og hvad er fejlen??

Tak
Avatar billede keysersoze Ekspert
27. oktober 2006 - 20:48 #1
Response.Redirect "default" & rs("niveau")  & ".asp?name=" & strUserName
Avatar billede doktoren001 Juniormester
27. oktober 2006 - 20:53 #2
Det er da utroligt så hurtig du er til at svare :-) perfekt.

kanon, tak for det. Det er jo åbenlyst nu når man får det forklaret ,-) Sender du lige et svar!
Avatar billede doktoren001 Juniormester
27. oktober 2006 - 20:57 #3
Du får lige hele teksten engang. Det virker desværre ikke endnu. kan du se hvad der er galt:

<%
strUserName = Request.Form("user")


Set adoCon = Server.CreateObject("ADODB.Connection")


Set rs = Server.CreateObject("ADODB.Recordset")

session("logname")=request.form("user")

strSQL = "SELECT * FROM praktikant WHERE bruger ='" & strUserName & "'"

rs.Open strSQL, Application("strCon")


If NOT rs.EOF Then
   
        If (Request.Form("password")) = rs("kode") Then
       
       
        Session("blnIsUserGood") = True
       
       
        Set adoCon = Nothing
        Set strCon = Nothing
        Set rs = Nothing
       
        Session("login") = "JA"
          Session.Timeout = 30

        'Redirect to the authorised user page and send the users name
        Response.Redirect "default" & rs("niveau")  & ".asp?name=" & strUserName
    End If
End If
       

Set adoCon = Nothing
Set strCon = Nothing
Set rs = Nothing
   
Session("blnIsUserGood") = False


Response.Redirect"start.asp"
%>

Fejlen er"typerne stemmer ikke overens". mega irreterende.
Avatar billede keysersoze Ekspert
27. oktober 2006 - 21:00 #4
hvilken linie fejler den i?
Avatar billede doktoren001 Juniormester
27. oktober 2006 - 22:23 #5
Det er stadig linje 48 den linje som jeg har sat ind som du har sendt mig!!!
Er mit RS rigtigt??
Avatar billede keysersoze Ekspert
27. oktober 2006 - 22:29 #6
fejlen skyldes at man fx sammenligner tal med tekst.

I ovenstående kode er der slet ikke 48 linier?

En anden ting du skal være opmærksom på er, at hvis du redirecter vil du ikke få lukket din database-forbindelse idet redirected sker før lukningen. Det kan på sigt sløve sitet en del.
Avatar billede doktoren001 Juniormester
27. oktober 2006 - 22:50 #7
ok, fejlen er i denne linje:
Response.Redirect "default" & rs("niveau")  & ".asp?name=" & strUserName
et eller andet sted!!!

Det med at lukke linjen er jeg klar over, men da det bare er en opgave som skal afleveres betyder det ikke så meget. Det er ikke noget jeg skal bruge til andet end vise min underviser!!! :-) Men det skal bare virke til på tirsdag

vil det sige at det er fordi jeg har sat værdien i Db til at være tekst og det jeg sammenligner med er tal?? Kan jeg få ASP til at tro det er et "bogstav" eller skal jeg rette DB til???
Avatar billede keysersoze Ekspert
27. oktober 2006 - 23:34 #8
Der er i mine øjne ingen fejl i den linie - og jeg har også meget svært ved at tro den fejltype kan referere til lige præcis det som sker i den linie. Så selvom du siger noget andet er jeg forholdsvis sikker på at fejlen ligger et andet sted.
Avatar billede keysersoze Ekspert
10. december 2006 - 02:18 #9
kommet videre?
Avatar billede doktoren001 Juniormester
25. januar 2008 - 21:28 #10
Hej, sender du ikke lige et svar så du kan få nogle point. Jeg er lige ved at accepterer svar, som jeg åbenbart ikke har været så skarp til
Avatar billede keysersoze Ekspert
25. januar 2008 - 21:42 #11
svar :)
Avatar billede doktoren001 Juniormester
25. januar 2008 - 21:49 #12
Ja ja, det er kun ca. 2 år siden så det er vel på tide at få det lukket :-) Jeg ved sku ikke lige hvorfor jeg har haft så mange åbne spørgsmål, men jeg har gennem tiden været meget glad for specielt din hjælp, så du skal bestemt ikke snydes ;-)
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