Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:13 Der er 26 kommentarer og
2 løsninger

Querystring Problem

Jeg har et problem med min ASP spaghetti.. Synes selv at det ser fornuftigt ud, men det lader ikke til at virke. Nogle som har en evt. løsning?

<%

    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("db/content.mdb")
    Conn.Open DSN
   
        strSQL = "Select * from vstilling where side = " & Request.Querystring("side")
        Set rs = Conn.Execute(strSQL)
               
        if rs.eof then


%>   
   
   
<html>
<head>
<title>illiun</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#F1F2F3">

<center>
   
    <table cellspacing="0" cellpadding="0" width="450" height="50">

<td style="border-top:1px solid #999999" width="50%" bgcolor="#FFFFFF">
       
        <div align="right">
            ... <b id="titel">
            <% response.write "HTTP 404 - Page not found! Denne side eksisterer ikke."
                else
                do
            response.write "" &rs("titel")& ""%></b> | <%response.write "" &rs("link1")& ""%> | <% response.write "" &rs("link2")& ""%>
        </div>

</td>
</tr>

<table>
    <td id="titel">
        | <a href="nb/nyhed.asp" target="main">nyheder</a> |  <a href="system/content.asp?id=35" target="main">om mig</a> | <a href="system/content.asp?id=36" target="main">misc</a> |
        <a href="journal/jourpass.asp" target="main"> journal</a> | <a href="gbog/gbog.asp" target="main">gæstebog</a> | <a href="system/content.asp?id=37" target="main">kontakt</a> |
    </td>
</table>

    <table height="100%">
      <tr>
        <td width="450" height="90%" valign="top" bgcolor="white">
        <iframe src="<%response.write "" & rs("src") & ""%>" name="main" width="100%" height="100%" frameborder="0"></iframe>
        </td>
      </tr>
    </table>
    </table>
</center>

</html>
</body>

<%
    rs.MoveNext
    Loop While Not rs.EOF

    end if
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede rbl Praktikant
13. februar 2004 - 23:17 #1
du mangler et "NOT" i sætningen:  if rs.eof then
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:17 #2
hvilken fejl får du?

Ekvis denne if sætning gør at den kun viser siden hvis den ikke finder noget i database:
        if rs.eof then

Så den skal være:

        if not rs.eof then
Avatar billede rbl Praktikant
13. februar 2004 - 23:18 #3
hov, jeg så ikke din "else".

Der skal da ikke "do" efter "else"
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:18 #4
Et eller andet sted mangler der et:  do
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:19 #5
glemt mine kommentare..... :)

det nok bedst med: hvilken fejl får du?
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:20 #6
Tjaeh, i følge min computer så står der:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/Default.asp, line 9
Avatar billede rbl Praktikant
13. februar 2004 - 23:23 #7
Prøv lige at lave en:
response.write(Request.Querystring("side"))
og se hvad der kommer med
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:23 #8
Ok, det er så relateret til denne linje:
strSQL = "Select * from vstilling where side = " & Request.Querystring("side")

Typisk betyder den fejl at Request.Querystring("side") så er tom og den så ikke indeholder et tal.
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:27 #9
Jeg kan ikke lave en response.write da siden slet ikke kommer frem.
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:34 #10
Du skal også lave en Response.End lige efter for fejlen ikke kommer:

response.write(Request.Querystring("side"))
response.End

men i linket til siden står der xxxx.asp?side=233  ?
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:37 #11
der står: default.asp?side=nyheder

Jeg har allerede tilføjet værdier i DB'en så det lyder skummelt at den så skulle være tom.
Avatar billede rbl Praktikant
13. februar 2004 - 23:38 #12
Linien skal så være:
strSQL = "Select * from vstilling where side = '" & Request.Querystring("side") & "'"
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:38 #13
Arh ok så skal der ping ' omkring i SQL sætningen når det er en tekst kolonne:
Prøv at rette denne linje:
strSQL = "Select * from vstilling where side = " & Request.Querystring("side")

Til denne:
strSQL = "Select * from vstilling where side = '" & Request.Querystring("side") & "'"
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:42 #14
Det begynder at se lidt mere fornuftigt ud nu, men den gider vist ikke printe dataen ud. Kan være det er en fejl fra min side. Vil lige kigge lidt på det og skrive hvis der skulle være flere probs.
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:49 #15
<td>
            ... <b id="titel">
            <% response.write "HTTP 404 - Page not found! Denne side eksisterer ikke."
                else
                do
            response.write "" &rs("titel")& ""%></b>
|
            <%response.write "" &rs("link1")& ""%>
|
          <% response.write "" &rs("link2")& ""%>

        </div>
</td>

Jeg forstår ikke hvorfor den ikke printer den her celle ud... Kan det være fordi at

<% response.write "HTTP 404 - Page not found! Denne side eksisterer ikke."
                else
                do

Skal stå før cellen begynder? Kan det ikke lade sig gøre at lade den blive indeni?
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:49 #16
Umddeltbart  ville jeg mene kode skulle vær sådan her fordi, den ikke viser <html>'s hvis der er noget i databasen.


<%

    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("db/content.mdb")
    Conn.Open DSN
   
        strSQL = "Select * from vstilling where side = '" & Request.Querystring("side") & "'"
        Set rs = Conn.Execute(strSQL)
               
%>   
 
<html>
<head>
<title>illiun</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#F1F2F3">
<center>

  <table cellspacing="0" cellpadding="0" width="450" height="50">
<%  if rs.eof then  %>
    <tr>
    <td style="border-top:1px solid #999999" width="50%" bgcolor="#FFFFFF">
        <div align="right">... <b id="titel">
    <% response.write "HTTP 404 - Page not found! Denne side eksisterer ikke." %>
    </div>
    </td>
  </tr> 

<%  else
      do
%>
    <tr>
    <td style="border-top:1px solid #999999" width="50%" bgcolor="#FFFFFF">
<%
      response.write "" &rs("titel")& ""%></b> | <%response.write "" &rs("link1")& ""%> | <% response.write "" &rs("link2")& ""%>
  </td>
</tr>

<table>
    <td id="titel">
        | <a href="nb/nyhed.asp" target="main">nyheder</a> |  <a href="system/content.asp?id=35" target="main">om mig</a> | <a href="system/content.asp?id=36" target="main">misc</a> |
        <a href="journal/jourpass.asp" target="main"> journal</a> | <a href="gbog/gbog.asp" target="main">gæstebog</a> | <a href="system/content.asp?id=37" target="main">kontakt</a> |
    </td>
</table>

    <table height="100%">
      <tr>
        <td width="450" height="90%" valign="top" bgcolor="white">
        <iframe src="<%response.write "" & rs("src") & ""%>" name="main" width="100%" height="100%" frameborder="0"></iframe>
        </td>
      </tr>
    </table>
    </table>
</center>

</html>
</body>

<%
    rs.MoveNext
    Loop While Not rs.EOF

    end if
    Conn.Close
    Set Conn = Nothing
%>
Avatar billede miwu.tk Nybegynder
13. februar 2004 - 23:52 #17
Orv! Mange tak! Det virker rigtig godt nu. Jeg ved ikke hvem af jer der skal modtage point'ne.. Kan man godt dele dem i to når man ud deler?
Avatar billede eagleeye Praktikant
13. februar 2004 - 23:56 #18
Jo det kan du, enten ½ til hver ved at markere begge navne og tryk accepter eller i advanceret kan du skrive et point antal til hver, men det kræver lige et svar :)
Avatar billede miwu.tk Nybegynder
14. februar 2004 - 00:00 #19
Lækkert :) Så lad os håbe rbl skriver et svar indenlænge. Jeg har lige et ekstra spg. Når folk går ind på min default.asp fil så siger det sig selv den ikke viderestiller til default.asp?side=nyheder

Kan man bruge en response.redirect til at fører siden videre til ?side=nyheder? Eller skal jeg forsøge med noget andet?
Avatar billede rbl Praktikant
14. februar 2004 - 00:05 #20
if Request.Querystring("side") = "" then
side = "nyheder"
end if
Avatar billede eagleeye Praktikant
14. februar 2004 - 00:05 #21
Nej du kan lave en if sætnignen som redirecter hvis side er tom:

if Request.QueryString("side") = "" then Response.Redirect ("default.asp?side=nyheder")
Avatar billede miwu.tk Nybegynder
14. februar 2004 - 00:08 #22
Hvor henne i min kode skal den så indsættes? Går udfra et sted i toppen?
Avatar billede eagleeye Praktikant
14. februar 2004 - 00:09 #23
Jeps evt helt i toppen, før du udføre SQL sætningen :)
Avatar billede rbl Praktikant
14. februar 2004 - 00:15 #24
Du kan også gøre det uden response.redirect:

side = Request.Querystring("side")
if side = "" then
  side = "nyheder"
end if

strSQL = "Select * from vstilling where side = '" & side & "'"
Avatar billede miwu.tk Nybegynder
14. februar 2004 - 02:00 #25
Jeg har besluttet mig for at bruge frameset istedet for iframe for at undgå 2x scrollbars. Men den lader ikke til at printe dataen ud?

        <frameset cols="100%">
            <frame src=<% response.write "" & rs("src") & "" %>>
        </frameset>

Jeg ved ikke om jeg bør oprette en ny tråd ang. det her, men synes på en måde det hører ind under den her. Håber det er ok :)
Avatar billede eagleeye Praktikant
14. februar 2004 - 10:49 #26
det skulle vel ellers være det samme?? måske:
<frame src="<% response.write "" & rs("src") & "" %>">

kan man ikke styre scrollbars i en iframe?
Avatar billede miwu.tk Nybegynder
14. februar 2004 - 12:49 #27
Jo, det kan man godt men så får man ikke hele siden med hvis der er meget tekst. Vil gerne have at den printer dataen ud i én celle.. derved skal der kun benyttes en scrollbar nemlig den som tilhører default.asp.

Iøvrigt virker det vist ikke helt med frameset. Der kommer nemlig ingenting frem :(
Avatar billede miwu.tk Nybegynder
14. februar 2004 - 15:03 #28
hvilke alternativer har jeg egentlig?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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