Du använder apostrofer i dina img-taggar. Vad används apostrofer till i SQL? Jo, att omsluta strängar. Dvs, första gången en apostrof råkas på inuti din sträng stängs strängen i din SQL-fråga och resten skapar syntax-fel.
Tips: Gör inte ersättningarna förrän när du visar upp informationen. Om du håller på med en massa ersättningar så dels tar informationen större plats i databasen, och dels förstör du eventuella databassökningar genom att lägga in en massa html i databasen.
Om du ändå ska göra ersättningarna innan du slänger in saker till databasen, så får du se till att antingen escapea de apostrofer du använder i img-taggarna, eller använda citationstecken i den koden.
Du skall dock hur som helst escapea apostrofer i den text du ska lagra till databasen, annars får du syntaxfel så fort någon har skrivit en apostrof i texten du skall lagra i databasen.
din_text = [b]Replace (Request.Form("txtText"), "'", "''")[/b]
byta_fran = ":),:o,;),:d,:h,:(,x(,"& vbcrlf &""
byta_mot = "<img src=""guestbook/images/1.gif"">,<img src=""guestbook/images/2.gif"">,<img src=""guestbook/images/3.gif"">,"&_
"<img src=""guestbook/images/4.gif"">,<img src=""guestbook/images/5.gif"">,<img src=""guestbook/images/6.gif"">,"&_
"<img src=""guestbook/images/7.gif"">,<br>"
byta_fran_arr = Split(byta_fran,",")
byta_mot_arr = Split(byta_mot,",")
For i = 0 To Ubound(byta_fran_arr)
din_text = Replace(din_text,byta_fran_arr(i),byta_mot_arr(i))
Next
Text = din_text
strSQL = "INSERT INTO t_Guestbook " _
& "( f_Name, f_Mail, f_Url, f_Date, f_Time, f_Text ) " _
& "VALUES( '" & Namn & "', '" & Mail & "', '" & Url & "', '" & Datum & "', '" & Tid & "', '" & Text & "' )"
Connect.Execute strSQL, , 128
För att spara lite prestanda i exekveringen lade jag också till växeln adExecuteNoRecords, för att se till att inget recordset skapas överhuvudtaget.
Som sagt, flytta gärna på smileyersättningen tills när du visar upp informationen.
Mvh,
Mvh,
