webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2001-10-13, 11:31   #1
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande Tillåta vissa tecken i länkscript?

Jag har ett länkscript med länkar i olika kategorier. Man kan som besökare tipsa om länkar, och skriva en liten beskrivning av sin länk.
Nu har jag problem med att man får ett felmeddelande om man i sin beskrivning använder sig av tecken som ex. '
Man får då detta felmeddelande:
Kod:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query 

/links/default.asp, line 119
Rad 119 ser ut såhär:
Kod:
Conn.Execute (SQLstmt)
Hur ska jag lösa detta?


Tack på förhand!

------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 11:38   #2
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

Du får ersätta alla ' med '' (två apostrofer)

Kod:
sql = "insert into ogrish(aleb,caleb) values(" & "'" & replace(request.form("aleb"),"'","''") & "','" replace(request.form("aleb"),"'","''") & ")"
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 13 okt 2001]
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 11:47   #3
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

Var i scriptet lägger jag in denna kodsnutt?

------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 12:03   #4
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

Nu visar du inte hur du bygger ihop strängen SQLstmt men det är den koden du får ändra på så att du lägger in replace på värdet för beskrivning.

Jag kan inte säga mer exakt än så om du inte visar den koden också.

------------------
essentitia preter non sans multiplicandum
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 12:15   #5
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

Här är den koden för tipsdelen av scriptet:
Kod:
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  Do until rs.EOF = True
		Response.Write "<option value='" & rs("kategori") & "'>" & rs("kategori") & vbCrLf
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing
%>
------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 12:19   #6
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

Jag menade koden där du lagrar beskrivningen.

------------------
essentitia preter non sans multiplicandum
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 12:40   #7
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

Hmmm...jag är verkligen för dålig på det här.
Postar hela koden:
Kod:
<% response.buffer = true %>

<%
strMode = Request.Querystring("mode")
select case strMode
case "id"

Response.Buffer = True
%>

<% case "search"
' Sidan med sökresultatet

' Database connection
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("links.mdb")
' Henter søgeorden fra formularen
strKeyword = Trim(Request.Form("søgeord"))

If Len(strKeyword) = 0 Then
' Om inget skrivs i sökrutan skickas personen till denna sida
	Response.Clear
	Response.Redirect ("default.asp?mode=sok")
Else
	strKeyword = Replace(strKeyword,"'","''")
End If

' Bygger en dynamisk SQL sträng
strSQL = "SELECT id, navn, url, beskrivelse, søgeord  FROM links WHERE"
strSQL = strSQL & " (id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (url LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (beskrivelse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (søgeord LIKE '%" & strKeyword & "%')"


' Skapar ett recordset utifrån SQL strängen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
' Om sökningen gav resultat
	Response.Write "<table width='500' cellspacing=0 cellpadding=0>"
        Response.Write "<tr><td align=center width='100%' colspan=2>Sökresultat för <b>" & strKeyword & "</b></td></tr>"
	Do While Not rs.EOF
	    Response.Write "<tr><td width='100%' height='2'><img src='/graphics/blank.gif' width='4' height='4'></td>"	    
		Response.Write "<tr><td valign=top width='100%' colspan=2><a href=" & rs("url")& " target=_blank>" & rs("Navn") & "</a></td></tr>"
		Response.Write "<tr><td valign=top width='80%'>" & rs("Beskrivelse") & "</a></td>"
		Response.Write "<tr><td width='100%' height='2'><img src='/graphics/blank.gif' width='4' height='4'></td>"
		Response.Write "<tr><td width='100%' height='1' align='left' colspan='2' bgcolor='#e9e9e9'><img src='1x1.gif' width='1' height='1' border='0'></td></tr>"
		Response.write "<tr><td width='100%'>&nbsp;</td></tr>"
		rs.MoveNext
	Loop
	Response.Write "<tr><td width='100%' colspan=2><a href='/artiklar/'>Artiklar</a> &#0124; <a href='default.asp?mode=sok'>Sök igen</a> &#0124; <a href='default.asp?mode=add'>Tipsa om artikel</a></td></tr>"
	Response.Write "</table><br>"
Else
' Om ingen länk passade in på sökningen
	Response.Write "<table width='500' cellspacing=1 cellpadding=1>"
        Response.Write "<tr><td align=center width='100%'>Sökresultat för <b>" & strKeyword & "</b></td></tr>"
        Response.Write "<tr><td align=center width='100%'>Inga sidor passade in på din sökning.</a><p>&nbsp;</p></td></tr>"
		Response.Write "<tr><td width='100%' colspan=2 align=center><a href='/artiklar/'>Artiklar</a> &#0124; <a href='default.asp?mode=sok'>Sök igen</a> &#0124; <a href='default.asp?mode=add'>Tipsa om artikel</a><p>&nbsp;</p><p>&nbsp;</p><br></td></tr></table><br>"
End If %>

<% case "sok"
' Sökformulär
Response.write "<table width='500'><tr><td align='center'><b>Sök</b></td></tr>"
Response.write "<tr><td width='100%'>&nbsp;</td></tr>"
Response.write "<tr><td align='center'><form method=POST action=default.asp?mode=search><input type=text name=søgeord size=25> <input type=submit value='Sök' name=send class='button'></td></tr>"
Response.write "<tr><td width='100%'>&nbsp;</td></tr>"
Response.write "<tr><td width='100%'>&nbsp;</td></tr>"
Response.Write "<tr><td width='100%' align='center'><a href='javascript:history.back()'> Tillbaka</a> &#0124; <a href='/artiklar/'>Artiklar</a> &#0124; <a href='default.asp?mode=add'>Tipsa om artikel</a></td></tr></table></form><br>"
%>
<% case "update"
' Skickar resultaten från ett länktips till databasen
' Database connection
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("links.mdb")
' Bygger SQL sträng 
SQLstmt = "INSERT INTO links (navn,url,beskrivelse,søgeord,kategori,godkendt)"
SQLstmt = SQLstmt & " VALUES ('" & request.form("navn") & "','" & request.form("url") & "','" & request.form("beskrivelse") & "','" & request.form("søgeord") & "','" & request.form("kategori") & "','nej')"

response.write sqlstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing

' Skickar besökaren till denna sida efter tipset
response.redirect ("tack.asp")
%>

<% case "add" 
' Tipsa om artikel
%>
<form method="POST" action="default.asp?mode=update">
         
        <table border="0" width="500" cellpadding="1" cellspacing="0">
          <tr> 
            <td colspan="2"><b>Tipsa om l&auml;nk</b></td>
          </tr>
          <tr> 
            <td colspan="2" height="2">&nbsp;</td>
          </tr>
          <tr> 
            <td width="18%" align="left" valign="top">Namn:</td>
            <td width="82%" align="left" valign="top"> 
              <p> 
                <input type="text" name="navn" size="32">
              </p>
            </td>
          </tr>
          <tr> 
            <td width="18%" align="left" valign="top">Adress:</td>
            <td width="82%" align="left" valign="top"> 
              <input type="text" name="url" value="http://" size="32">
            </td>
          </tr>
          <tr> 
            <td width="18%" valign="top" align="left">Beskrivning:</td>
            <td width="82%" align="left" valign="top"> 
              <textarea name="beskrivelse" cols="32"></textarea>
            </td>
          </tr>
          <tr> 
            <td width="18%" valign="top" align="left">Kategori:</td>
            <td width="82%"> 
              <select name="kategori">
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM kategorier ORDER BY kategori"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  Do until rs.EOF = True
		Response.Write "<option value='" & rs("kategori") & "'>" & rs("kategori") & vbCrLf
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing
%>
              </select>
            </td>
          </tr>
          <tr> 
            <td width="18%" valign="top">S&ouml;kord:</td>
            <td width="82%" align="left" valign="top"> 
              <input type="text" name="søgeord" size="32" value="musik, ">
            </td>
          </tr>
          <tr> 
            <td width="18%" valign="top">&nbsp;</td>
            <td width="82%">&nbsp;</td>
          </tr>
          <tr> 
            <td width="18%" valign="top">&nbsp;</td>
            <td width="82%"> 
              <input type="submit" value="Skicka" name="send" class="button">
              <input type="reset" value="Rensa" name="anuller" class="button">
            </td>
          </tr>
          <tr> 
            <td colspan="2" valign="top">&nbsp;</td>
          </tr>
          <tr> 
            <td colspan="2" valign="top">&nbsp;</td>
          </tr>
          <tr> 
            <td width="18%" valign="top">&nbsp;</td>
            <td width="82%"><a href="javascript:history.back()">Tillbaka</a> &#0124; 
              <a href="/artiklar/">Artiklar</a> &#0124; <a href='default.asp?mode=sok'>S&ouml;k</a></td>
          </tr>
        </table>
      </form>

<% case "vis"
' Om det inte är valt något mode visas alla länkar

' Paging
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
  intPage = 1
End If

' Database connection

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM links WHERE kategori='" & request("kat") & "' AND godkendt='ja' ORDER BY navn"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  rs.PageSize = 6
  rs.AbsolutePage = intPage
  intRecCount = rs.PageSize
  intPageCount = rs.PageCount
    Response.Write "<table width='500' cellspacing='0' cellpadding='0'>"
  Do While Not rs.EOF And intRecCount > 0
    Response.Write "<tr><td width='100%' height='2'><img src='/graphics/blank.gif' width='4' height='4'></td>"
		Response.Write "<tr><td valign=top width='100%' colspan=2><a href=" & rs("url")& " target=_blank>" & rs("Navn") & "</a></td></tr>"
		Response.Write "<tr><td valign=top width='80%'>" & rs("Beskrivelse") & "</a></td>"
		Response.Write "<tr><td width='100%' height='2'><img src='/graphics/blank.gif' width='4' height='4'></td>"
		Response.Write "<tr><td width='100%' height='1' align='left' colspan='2' bgcolor='#e9e9e9'><img src='1x1.gif' width='1' height='1' border='0'></td></tr>"
		Response.write "<tr><td width='100%'>&nbsp;</td></tr>"
   intRecCount = intRecCount - 1
   rs.MoveNext
  Loop
End If
    Response.Write "</table>"
rs.Close
Set rs = Nothing

' Navigering mellan sidorna med paging
Response.Write "<table width='500'><tr>"
If Clng(intPage) > 1 Then
  Response.Write "<td><a href=default.asp?mode=vis&kat=" & request("kat") & "&page=" & intPage - 1 & "><< Tillbaka</a></td>"
Else
  Response.Write "<td>&nbsp;</td>"
End If

Response.Write ""
Response.write "<td>Sid <b>" & intPage & "</b> av <b>" & intPageCount & "</b></td>"

If Clng(intPage) < Clng(intPageCount) Then
  Response.Write "<td><a href=default.asp?mode=vis&kat=" & request("kat") & "&page=" & intPage + 1 & ">Nästa >></a></td>"
Else
  Response.Write "<td>&nbsp;</td>"
End If

Response.write "<td><p align='right'><a href='/artiklar/'>Artiklar</a> &#0124; <a href='default.asp?mode=sok'>Sök</a> &#0124; <a href='default.asp?mode=add'>Tipsa om artikel</a></p></td></tr></table>"

case else


' Database connection
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT kategori, count(*) as Antal FROM links GROUP BY kategori ORDER BY kategori"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("links.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    Response.Write "<table width='500' cellspacing='2' cellpadding='0'>"
  Do until rs.EOF = True
		Response.Write "<tr><td width='100%' colspan=2>• <a href='default.asp?mode=vis&kat=" & rs("kategori") & "'>" & rs("kategori") & "</a> (" & rs("Antal") & " st)</td></tr>"
  rs.MoveNext
  Loop
End If

    Response.write "<tr><td width='100%'>&nbsp;<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p></td></tr>"
    Response.Write "<tr><td width='100%'><a href='default.asp?mode=sok'>Sök</a> &#0124; <a href='default.asp?mode=add'>Tipsa om artikel</a></td></tr><br>"
    Response.Write "</table>"
rs.Close
Set rs = Nothing

end select %>
    </td>
  </tr>
------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 12:48   #8
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

Kod:
' Bygger SQL sträng 
SQLstmt = "INSERT INTO links (navn,url,beskrivelse,søgeord,kategori,godkendt)"
SQLstmt = SQLstmt & " VALUES ('" & replace(request.form("navn"),"'","''") & "','" & replace(request.form("url"),"'","''") & "','" & replace(request.form("beskrivelse"),"'","''") & "','" & replace(request.form("søgeord"),"'","''") & "','" & replace(request.form("kategori"),"'","''") & "','nej')"
------------------
essentitia preter non sans multiplicandum
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 14:19   #9
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
leende

Stort tack!

------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 15:53   #10
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

När jag redan är igång så kanske jag kan passa på att fråga en grej till som jag skulle bli väldigt glad om nån kunde hjälpa mig med.
Skulle vilja att scriptet kollar om url'n redan finns med i databasen när någon tipasar om en ny länk.
Om den finns med så får tipsaren ett meddelande om att den redan finns inlagd.

------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 16:08   #11
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

lägg in denna kod innan du lagrar länken i databasen

Kod:
'ny kod
dim recset
SQLStmt = "select 1 from links where url = '" & replace(request.form("url"),"'","''") & "'"
set recset = conn.execute(SQLStmt)

if not recset.eof then
   response.write "Din länk finns redan inlagd i databasen <br>"
   recset.close
   conn.close   
   response.end
end if
recset.close
'slut på ny kod

' Bygger SQL sträng 
SQLstmt = "INSERT INTO links (navn,url,beskrivelse,søgeord,kategori,godkendt)"
SQLstmt = SQLstmt & " VALUES ('" & replace(request.form("navn"),"'","''") & "','" & replace(request.form("url"),"'","''") & "','" & replace(request.form("beskrivelse"),"'","''") & "','" & replace(request.form("søgeord"),"'","''") & "','" & replace(request.form("kategori"),"'","''") & "','nej')"
red: stavfelning
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 13 okt 2001]
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 18:05   #12
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

Jag får detta felmeddelande:
Kod:
Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'replaces' 

/artiklar/default.asp, line 116
Detta är rad 116:
Kod:
SQLStmt = "select 1 from links where url = '" & replaces(request.form("url"),"'","''") & "'"
------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 18:08   #13
LarsG
Medlem
Årets medlem 2001
 
Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958
leende

Många slarvfel idag

Det skall stå replace och inte replaces.

Kod:
SQLStmt = "select 1 from links where url = '" & replace(request.form("url"),"'","''") & "'"
------------------
essentitia preter non sans multiplicandum
__________________
essentitia preter non sans multiplicandum
LarsG besöker inte forumet just nu   Svara med citat
Äldre 2001-10-13, 18:11   #14
Korak
Medlem
 
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0
meddelande

Du är kung, tack så hemskt mycket.
Funkar perfekt nu. Glädje!

------------------

MVH, Korak
www.eskobar.nu
__________________
Robert Birming
Korak besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 22:34.


Powered by: vBulletin Version 3.8.6
Copyright © webForum