![]() |
|
|
|||||||
| ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp). |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
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 Kod:
Conn.Execute (SQLstmt) Tack på förhand! ------------------ MVH, Korak www.eskobar.nu
__________________
Robert Birming |
|
|
|
|
|
#2 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
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 |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
__________________
Robert Birming |
|
|
|
|
|
#4 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
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 |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
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 |
|
|
|
|
|
#6 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
Jag menade koden där du lagrar beskrivningen.
------------------ essentitia preter non sans multiplicandum
__________________
essentitia preter non sans multiplicandum |
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
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%'> </td></tr>"
rs.MoveNext
Loop
Response.Write "<tr><td width='100%' colspan=2><a href='/artiklar/'>Artiklar</a> | <a href='default.asp?mode=sok'>Sök igen</a> | <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> </p></td></tr>"
Response.Write "<tr><td width='100%' colspan=2 align=center><a href='/artiklar/'>Artiklar</a> | <a href='default.asp?mode=sok'>Sök igen</a> | <a href='default.asp?mode=add'>Tipsa om artikel</a><p> </p><p> </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%'> </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%'> </td></tr>"
Response.write "<tr><td width='100%'> </td></tr>"
Response.Write "<tr><td width='100%' align='center'><a href='javascript:history.back()'> Tillbaka</a> | <a href='/artiklar/'>Artiklar</a> | <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änk</b></td>
</tr>
<tr>
<td colspan="2" height="2"> </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ö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"> </td>
<td width="82%"> </td>
</tr>
<tr>
<td width="18%" valign="top"> </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"> </td>
</tr>
<tr>
<td colspan="2" valign="top"> </td>
</tr>
<tr>
<td width="18%" valign="top"> </td>
<td width="82%"><a href="javascript:history.back()">Tillbaka</a> |
<a href="/artiklar/">Artiklar</a> | <a href='default.asp?mode=sok'>Sö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%'> </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> </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> </td>"
End If
Response.write "<td><p align='right'><a href='/artiklar/'>Artiklar</a> | <a href='default.asp?mode=sok'>Sök</a> | <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%'> <p> </p><p> </p><p> </p></td></tr>"
Response.Write "<tr><td width='100%'><a href='default.asp?mode=sok'>Sök</a> | <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 |
|
|
|
|
|
#8 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
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 |
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
__________________
Robert Birming |
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
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 |
|
|
|
|
|
#11 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
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')"
------------------ essentitia preter non sans multiplicandum [Redigerat av LarsG den 13 okt 2001]
__________________
essentitia preter non sans multiplicandum |
|
|
|
|
|
#12 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
Jag får detta felmeddelande:
Kod:
Microsoft VBScript runtime error '800a000d' Type mismatch: 'replaces' /artiklar/default.asp, line 116 Kod:
SQLStmt = "select 1 from links where url = '" & replaces(request.form("url"),"'","''") & "'"
MVH, Korak www.eskobar.nu
__________________
Robert Birming |
|
|
|
|
|
#13 |
|
Medlem
Årets medlem 2001 Registrerad: 2000-12-03
Ort: Uppsala
Inlägg: 12 465
Lösningar: 958 |
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 |
|
|
|
|
|
#14 |
|
Medlem
Registrerad: 2001-05-02
Ort: Stockholm
Inlägg: 167
Lösningar: 0 |
Du är kung, tack så hemskt mycket.
Funkar perfekt nu. Glädje! ------------------ MVH, Korak www.eskobar.nu
__________________
Robert Birming |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|