Avatar billede monstermand Nybegynder
26. juni 2002 - 22:59 Der er 54 kommentarer og
1 løsning

notation

jeg er ved at blive sindsyg - hvad fanden er der galt med notationen her:

Response.Redirect("../bruger/info.asp?ID="& Request.QueryString("ID"))


Linket bliver sendt afsted uden id nummeret...hvad gør jeg galt?
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:07 #1
please help me...
Avatar billede medions Nybegynder
26. juni 2002 - 23:12 #2
Tror det er fordi din QueryString er tom, eller at din QueryString ikke er stavet korrekt med små og store bogstaver...

//>Rune
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:13 #3
tjekker det lige..
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:15 #4
det står med stort over det hele - er du sikker på at man kan skrive det på den måde:

Response.Redirect("../bruger/info.asp?ID="& Request.QueryString("ID"))


??
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:17 #5
.....bruger/info.asp?ID=

den kommer med ovenstående link - dvs. det eneste der ikke kommer frem som det skal er ID-nummeret. Hvis jeg erstatter ="& Request.QueryString("ID") med et tal, så virker det...
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:19 #6
hvordan skulle min QueryString være tom hvis jeg kan se at tallet står i adressebaren?
Avatar billede medions Nybegynder
26. juni 2002 - 23:28 #7
Det lyder meget mærkligt! Er du sikker på at din QueryString i adressebaren bliver overført til der hvor du Requester den?

//>Rune
Avatar billede eagleeye Praktikant
26. juni 2002 - 23:29 #8
Hvad hvis du skriver:

ID = Request.QueryString("ID")
Response.Redirect("../bruger/info.asp?ID="&ID)
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:38 #9
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '[ID] ='.
/ITopgaver_develop/bruger/info.asp, line 15


så kommer den frem med ovenstående fejlmeddelelse og adressen er uden noget tal for ID... hvad kan man ellers gøre??
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:39 #10
ID = Request.QueryString("ID")
   
      if CInt(session("loginUserType")) = 0 then 'bruger
        Response.Redirect ("../bruger/info.asp?ID="&ID) 'Send til bruger.asp side


      elseif CInt(session("loginUserType")) = 1 then 'Admin
        Response.Redirect ("../bruger/info.asp?ID="&ID)  'Send til administrator.asp side
     
      else 'hvis userType er forskelligfra 0 og 1
        Response.Redirect("logininfo.asp")  'Send til førete side
    end if
   
    else
      'Fejl i brugernavn eller password
      Response.Redirect("../index.asp")
   
    end if
  End If


således ser det ud - hvis det hjælper..
Avatar billede medions Nybegynder
26. juni 2002 - 23:40 #11
Hmm.. hvordan ser din SQL statement ud?

//>Rune
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:41 #12
strSQL= "SELECT * FROM tblBrugere WHERE (Brugernavn = '" & username & "' AND Password='" & password & "');"
    Set rs = Conn.Execute (strSQL)
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:42 #13
..hvis det er en SQL statement..(?)
Avatar billede medions Nybegynder
26. juni 2002 - 23:44 #14
Det er det :-)
-men er du sikker på at det er den som oxo er i linje 15?

elles, hvad er der i linje 15?

//>Rune
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:46 #15
linje 15 er jo ikke i den fil - det er i den fil vi bliver sendt til, dvs. ("../bruger/info.asp?ID="&ID

og der siger den bare at den ikke har fået noget ID.
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:47 #16
det må være i ovenstående der er noget galt - det virker jo hvis jeg i stedet for querystring bare indsætter et tal som jeg ved findes i databasen...
Avatar billede eagleeye Praktikant
26. juni 2002 - 23:48 #17
den fil du har koden i linker du til den på denne måde:?

fil.asp?id=XXXXXX
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:49 #18
ja..
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:49 #19
bare med stort ID, men det gør måske ingen forskel(?)
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:51 #20
<%
set conn = server.CreateObject("ADODB.CONNECTION")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../../cgi-data/opgave.mdb")

SQL = "SELECT * FROM tblOpgave WHERE [ID] =" & Request.QueryString("ID")

set rs = conn.execute(SQL)


%>

ovenstående er linje 15, men det er som sagt 99% sikkert at fejlen ikke er der..
Avatar billede eagleeye Praktikant
26. juni 2002 - 23:52 #21
Nej det betyder ikke noget.
Avatar billede medions Nybegynder
26. juni 2002 - 23:52 #22
<%
set conn = server.CreateObject("ADODB.CONNECTION")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("../../../cgi-data/opgave.mdb")

SQL = "SELECT * FROM tblOpgave WHERE [ID] ='" & Request.QueryString("ID") & "'"

set rs = conn.execute(SQL)


%>

Prøv lige med denne... det kunne jo være at dit ID felt var af typen Text!

//>Rune
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:55 #23
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/ITopgaver_develop/bruger/info.asp, line 15


så får jeg denne fejl..

så det er vist ikke det...
Avatar billede monstermand Nybegynder
26. juni 2002 - 23:58 #24
tror stadig problemet er at den ikke sender noget med. Hvis istedet for

Response.Redirect ("../bruger/info.asp?ID="&ID)

skriver

Response.Redirect ("../bruger/info.asp?ID=89")

så virker det...
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:04 #25
har i flere forslag til hvad jeg kunne gøre?
Avatar billede eagleeye Praktikant
27. juni 2002 - 00:09 #26
Det virker altså bare for underligt.. Kan du for at tjekke den læses rigtig her:
ID = Request.QueryString("ID")
   
      if CInt(session("loginUserType")) = 0 then 'bruger
        Response.Redirect ("../bruger/info.asp?ID="&ID) 'Send til bruger.asp side

Udskrive ID lige efter den er læst:
Response.write "ID = " & ID
Response.end
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:16 #27
hvis adresse er ...asp?ID=89

og jeg sætter

Response.write "ID = " & ID
Response.end

ind lige efter

ID = Request.QueryString("ID")

så kommer der KUN dette ud på skærmen: ID=
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:17 #28
jeg sætter gerne ekstra points på spørgsmålet - havde ikke regnet med det var så drillende :o)
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:19 #29
Hele filen ser således ud:

<%

'Her vælger vi at fange alle fejl selv.
'On Error Resume Next

'Her sletter vi alle tidligere cookies, det vil sige at man kan linke til denne side for at logge en bruger ud
'Session.Contents.RemoveAll()

'Her sætter vi sessions til nul...dvs brugeren er logget ud

session("loginOK") = ""
session("loginMemberID") = ""
session("loginUserType") = ""


'Hvis der er klikket på knappen der har navnet Action
If (Request.Form("Action") <> "") Then

'Hvis der er sat hak i checkboksen twLogonGemBrugernavn
If (Request.Form("twLogonGemBrugernavn") = "True") Then
    'Gem bruernavn og password i cookie
      Response.Cookies("twLogonLastLogon")("Brugernavn") = Request.Form("username")
      Response.Cookies("twLogonLastLogon")("Password") = Request.Form("password")
    'Gem også værdien af checkboksen
      Response.Cookies("twLogonLastLogon")("Gembrugernavn") = "True"
    'Sæt cooikien til at udløbe efter 7 dage
      Response.Cookies("twLogonLastLogon").Expires = DateAdd("d", 7, Date)
  'Hvis der ikke er sat hak i checkboksen
  Else
    'sletter vi alle informationer
    Response.Cookies("twLogonLastLogon")("Brugernavn") = ""
    Response.Cookies("twLogonLastLogon")("Password") = ""
      'og gemmer denne indstilling
    Response.Cookies("twLogonLastLogon")("Gembrugernavn") = "False"
    'Her sættes cookien til at udløbe med det samme
      Response.Cookies("twLogonLastLogon").Expires = Date-1
  End If
  'Her bestemmer vi at kun det domæne cookien er lavet på må bruge koden
  Response.Cookies("twLogonLastLogon").Domain = Request.ServerVariables("SERVER_NAME")
  'og det samme med stien inden for domænet.
  Response.Cookies("twLogonLastLogon").Path = Left(Request.ServerVariables("SCRIPT_NAME"),InStrRev(Request.ServerVariables("SCRIPT_NAME"),"/")-1)

'Hvis der er udfyldt et brugernavn kører vi dit loginscript.
  If (Request.Form("username") <> "") Then

    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("../../../cgi-data/opgave.mdb")
    Conn.Open DSN
   
   
   
    username = replace(Request.Form("username"),"'","")
    password = replace(Request.Form("password"),"'","")
   
   
   
    strSQL= "SELECT * FROM tblBrugere WHERE (Brugernavn = '" & username & "' AND Password='" & password & "');"
    Set rs = Conn.Execute (strSQL)
   
    if not rs.EOF then
     
      session("loginOK") = "JA"
      session("loginMemberID") = rs("MemberID")  'Gemmer også memberID...
      session("loginUserType") = rs("Type")  'hent og gem userType
     
      Conn.Close

    ID = Request.QueryString("ID")

Response.write "ID = " & ID
Response.end 


      if CInt(session("loginUserType")) = 0 then 'bruger
        Response.Redirect ("../bruger/info.asp?ID="&ID) 'Send til bruger.asp side

      elseif CInt(session("loginUserType")) = 1 then 'Admin
        Response.Redirect ("../bruger/info.asp?ID="&ID)  'Send til administrator.asp side
     
      else 'hvis userType er forskelligfra 0 og 1
        Response.Redirect("logininfo.asp")  'Send til førete side
    end if
   
    else
      'Fejl i brugernavn eller password
      Response.Redirect("../index.asp")
   
    end if
  End If


End If

%>


<html>
<title>www.hello.dk/IT</title>
<link rel="stylesheet" type="text/css" href="../style/style.css">
<head>
</head>

<body text="#000000">
<p align="right"><img src="../billeder/toplogo.gif"></p>
<table width="100%" height="80%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <table width="150" border="0" cellspacing="1" cellpadding="5" align="center" bgcolor="#666666">
        <tr>
          <td align="center" bgcolor="#FFFFFF">
            <table width="140" border="0" cellspacing="0" cellpadding="0">
              <form method="post" action="logininfo.asp" name="adminlogin">
                <tr>
                  <td align="center"><img src="../billeder/brugernavn.gif"></td>
                </tr>
                <tr>
                  <!-- Herunder udskriver vi det der står i cookien under brugernavn og password -->
                  <td align="center">
                    <input type="text" name="username" value="<%=Request.Cookies("twLogonLastLogon")("Brugernavn")%>" style="width:135px; color: #666666; border-width: 1px; border-style: solid; border-color: #666666">
                  </td>
                </tr>
                <tr>
                  <td align="center"><img src="../billeder/password.gif"></td>
                </tr>
                <tr>
                  <td align="center">
                    <input type="password" name="password" value="<%=Request.Cookies("twLogonLastLogon")("Password")%>" style="width:135px; color: #666666; border-width: 1px; border-style: solid; border-color: #666666">
                  </td>
                </tr>
                <tr>
                  <!-- Herunder tjekker om der i cookien står at der skal gemmes en cookie el. om der ikke står noget om at der ikke skal -->
                  <td align="center">
                    <input name="twLogonGemBrugernavn" type="checkbox" value="True" <%If ((Request.Cookies("twLogonLastLogon")("Gembrugernavn") = "True") Or (Not Request.Cookies("twLogonLastLogon")("Gembrugernavn") = "False")) Then Response.Write "checked"%>>
                    <img src="../billeder/gem.gif"></td>
                </tr>
                <tr>
                  <td align="center">
                    <input type="submit" value="Login" name="Action" class="index"><br><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">Log ind for at se status på opgaven.</font>
                  </td>
                </tr>
              </form>
            </table>
          </td>
        </tr>
      </table>
      <!-- Det her javascript flytter så cursoeren mellem felterne, men det er ikke så brugbart når man gemmer både password og brugernavn... så det egentlig slettes. -->
      <%
If (Request.Cookies("twLogonLastLogon")("Brugernavn") <> "") Then
%>
      <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
document.adminlogin.username.focus();
//-->
</SCRIPT>
      <%
Else
%>
      <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
document.adminlogin.password.focus();
//-->
</SCRIPT>
      <%
End If
%>
</td>
</tr>
<tr>
<td valign="bottom">
<table border="0" cellspacing="1" cellpadding="5" align="center" bgcolor="#666666">
        <tr>
          <td align="center" bgcolor="#FFFFFF"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">If you would like to visit the website of hello Denmark, <a href="http://www.hello.dk/" class="link"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000">click here</font></a></font></td>
        </tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:22 #30
ovenstående fil hedder logoninfo

og adressen jeg tjekker med hedder: logininfo.asp?ID=89
Avatar billede kimiwan Nybegynder
27. juni 2002 - 00:22 #31
monstermand:

prøv at højreklikke på siden og vælg properties... se hvad adressen på siden er (om den hedder ....asp?id=  eller ....asp?id=89)

hvis du f.eks. har bygget sitet i frames, kan det være årsagen.
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:23 #32
det er ikke bygget i frames..
Avatar billede kimiwan Nybegynder
27. juni 2002 - 00:24 #33
har du ikke en adresse, hvor man kan se siden?
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:25 #34
nej, jeg har ikke lagt det ud, har heller ikke mulighed for det her og nu - men jeg kan sende dig hvad du skal bruge :o)
Avatar billede kimiwan Nybegynder
27. juni 2002 - 00:26 #35
har du en emailadresse?
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:27 #36
jeps
Avatar billede kimiwan Nybegynder
27. juni 2002 - 00:27 #37
og den er?
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:28 #38
munstermann@city.dk
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:36 #39
er det ikke muligt istedet for querystring, at bruge noget i stil med queryint eller sådan. Vi skal jo bare have erklæret en variabel med ID-nummeret der står oppe i adressebaren(?)
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:38 #40
hvis jeg istedet for at skrive:

ID = Request.QueryString("ID")

skriver:

ID = 89

så virker det også..
Avatar billede kimiwan Nybegynder
27. juni 2002 - 00:40 #41
har du tjekket din mail??
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:46 #42
jeps - har svaret
Avatar billede monstermand Nybegynder
27. juni 2002 - 00:57 #43
nå, jeg vil gå i seng for i dag

håber i har mod på at gruble videre over spørgsmålet - jeg skal nok lægge point oveni hvis der kommer en løsning :o)
Avatar billede monstermand Nybegynder
27. juni 2002 - 08:29 #44
det er noget sjovt noget - hvis man skriver

ID = Request.QueryString("ID")

Response.write "ID = " & ID
Response.end

som det aller første før alt andet, så skriver den 89 ud som den skal. Hvis jeg derimod dropper det med at skrive den ud og stoppe, så har glemt variablen når jeg skal bruge den nede i redirecten...
Avatar billede eagleeye Praktikant
27. juni 2002 - 08:44 #45
så kan du i dine file som bruger ID ligge denne linie i toppen:
ID = Request.QueryString("ID")

og så alle stedr hvor du bruger Request.QueryString("ID") så ændre det til ID.
Avatar billede monstermand Nybegynder
27. juni 2002 - 08:57 #46
ja, men det underlige er at den glemmer variablen undervejs! forstår du hvad jeg mener? Hvis jeg skriver den ud i starten af dokumentet hedder den ID=89 som den skal, men hvis jeg skriver den ud senere hedder den ligepludselig ID=
Avatar billede eagleeye Praktikant
27. juni 2002 - 11:22 #47
ja men den glemmer vel: Request.QueryString("ID")
og ikke: ID  ??
Avatar billede monstermand Nybegynder
27. juni 2002 - 14:04 #48
det skal jeg lige have dig til at uddybe - hvis jeg sætter ID lig med Request.QueryString("ID") i starten, så har den glemt ID senere(!)

Det er lidt vigtigt for mig at det kommer til at funke - så jeg sætter gerne points op hvis du får styr på det!
Avatar billede monstermand Nybegynder
27. juni 2002 - 14:11 #49
nu forstår jeg dit spørgmål, og jo, det er QueryString den glemmer. Hvis jeg sætter variablen ID lig med 89 så virker det!
Avatar billede eagleeye Praktikant
27. juni 2002 - 14:32 #50
Det jeg mener er at du kan sætte ID = Request.QueryString("ID") i toppen af filen (de filer) som bruger et ID overført via QueryString:

Her er lid af din kode fra starten af filen:

<%

'Her vælger vi at fange alle fejl selv.
'On Error Resume Next

'Hend ID fra QueryStringen
ID = Request.QueryString("ID")    '<---------------Indsæt

'Her sletter vi alle tidligere cookies, det vil sige at man kan linke til denne side for at logge en bruger ud
'Session.Contents.RemoveAll()



Alle de steder hvor der står noget med Request.QueryString("ID"), eks denne:
Response.Redirect ("../bruger/info.asp?ID="&Request.QueryString("ID"))

Ændre du til ID:
Response.Redirect ("../bruger/info.asp?ID="&ID)


Det skulle gerne virke da du så i starten af filen har lagt ID fra querystren'en ind i en variable, som senere kan bruges. Hvis det ikke virker så .... forstår jeg ikke så skal må vi kigge lidt nærmere på koden igen.
Avatar billede monstermand Nybegynder
27. juni 2002 - 14:52 #51
det er det jeg har prøvet hele tiden. Jeg har indsat ID = Request.QueryString("ID")    præcis det sted du anbefaler, og jeg kan også skrive det ud, men længere nede i kildekoden glemmer den ligepludselig hvad variablen var(!!!)
Avatar billede kimiwan Nybegynder
27. juni 2002 - 16:10 #52
monstermand:

Har du ikke fået min email? - du har ikke givet noget respons.
Avatar billede monstermand Nybegynder
27. juni 2002 - 16:49 #53
nej det er rigtigt - undskyld

jeg har læst den, men du har vist misforstået spørgsmålet. Det er ikke memberid jeg skal bruge - det er tallet der står efter ID oppe i adressebaren - og dette tal fremgår ikke af  databasen. Forstår du hvad jeg mener?
Avatar billede torbenmelander Nybegynder
27. juni 2002 - 17:06 #54
På denne linie skal du medsende ID:

<form method="post" action="logininfo.asp" name="adminlogin">

sådan her:

<form method="post" action="logininfo.asp?ID=<%= Request.Querystring("ID")%>" name="adminlogin">

så bliver ID medsendt når du klikker på ok ... og den kode hvor du skal bruge den bliver udført ...
Avatar billede monstermand Nybegynder
27. juni 2002 - 17:18 #55
du er for sej - DET VIRKER - du har reddet min dag :o)

som lovet tidligere er der ekstra points til den der kom med løsning på problemet:o)

(tak for hjælpen allesammen)
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