Hej,
Har gjort ett tillfäligt forum. Som ska ut med kort varsel.
Men går det att sortera ut vissa fula ord så att det automatiskt byts ut till önskade ord?
Ex. slyna - kvinna
MVH/
------------------
.:cobraeyes:.
17 svar · 394 visningar · startad av cobraeyes
Hej,
Har gjort ett tillfäligt forum. Som ska ut med kort varsel.
Men går det att sortera ut vissa fula ord så att det automatiskt byts ut till önskade ord?
Ex. slyna - kvinna
MVH/
------------------
.:cobraeyes:.
När du lägger in det i databasen eller hämtar ut det så kan du köra en replace:
msg = Replace(msg,"slyna","kvinna")
Mvh, Vide
------------------
Kom hem till mig...
ok! :e
om jag har flera olika ord då? :r
En fråga. Du angav variabeln msg, jag använder mig av en som heter inlagg. Byter jag bara ut msg till inlagg?
Så här ser koden ut som hämtar posterna från databasen:
<%
'Ta ut alla inlägg och sortera dom efter datum
inlagg= "SELECT Namn,Datum,icq,Epost,sida,Ort,Meddelande FROM forum WHERE id=id ORDER BY datum DESC"
Set inlagg= Connect.Execute(inlagg)
'Skriv ut alla inlägg
Do until inlagg.EOF
%>
Kan du ge mig ett konkret exempel!?
MVH/
------------------
.:cobraeyes:.
[Redigerat av cobraeyes den 05 okt 2000]
Då gör du såhär:
msg = Replace(msg,"slyna","kvinna")
msg = Replace(msg,"förbannat","förbandslåda")
msg = Replace(msg,"mmm","smurf")
[/R]Japp du an byta ut variabeln till vad du vill... men kom ihåg att byta överallt...
Mvh, Vide
------------------
Kom hem till mig...
[Redigerat av Vide den 05 okt 2000]
Fattar inte riktigt! :r
Ska jag lägga in replace i följande kod:
<%
'Ta ut alla inlägg och sortera dom efter datum
inlagg= "SELECT Namn,Datum,icq,Epost,sida,Ort,Meddelande FROM forum WHERE id=id ORDER BY datum DESC"
Set inlagg= Connect.Execute(inlagg)
'Skriv ut alla inlägg
Do until inlagg.EOF
%>
Och hur isf?
Känner mig lite jobbig, men jag har inte riktigt tid att exprimentera så mkt.
Eller ska jag lägga in det i koden som styr inlägget i databasen?
Koden för det är:
<%@ Language=VBScript %>
<%
'Variabler måste deklareras
Option Explicit
'Deklarerar databas variabler
Dim Connect, conntemp, DSNtemp
'Deklarerar övriga variabler
Dim namn,ort,icq,sida,epost,Meddelande,sql
' Här skapar vi en dsn-less connection mot forum
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("cgi-bin/forum.mdb")
Connect.Open DSNtemp
'Plockar informationen från formen med Request.Form objektet.
'Server.HTMLEncode tar och fixar så användaren inte kan använda HTML i gästboken
namn=Server.HTMLEncode(Request.Form("namn"))
ort=Server.HTMLEncode(Request.Form("ort"))
icq=Server.HTMLEncode(Request.Form("icq"))
sida=Server.HTMLEncode(Request.Form("sida"))
epost=Server.HTMLEncode(Request.Form("epost"))
Meddelande=Server.HTMLEncode(Request.Form("Meddelande"))
'Matar in informationen i databasen
sql = "INSERT INTO forum (Namn,Ort,Epost,icq,sida,Datum,Meddelande)"
sql = sql & "VALUES ('"&namn&"','"&ort&"','"&epost&"','"&icq&"','"&sida&"','"&FormatDateTime(Now,0)&"','"&Meddelande&"')"
Set sql = Connect.Execute(sql)
'Vid stänger databasen
Connect.close
set Connect=nothing
'Skickar användaren tillbaka till gästboken
Response.Redirect "forum.asp"
%>
Kan du sätta in replace koden i min är du super snäll!? :e
Tacksam för all hjälp!
MVH/
------------------
.:cobraeyes:.
Om du skall göra det när du lägger in det så gör du såhär byter du bara ut:
Meddelande=Server.HTMLEncode(Request.Form("Meddelande"))
Mot
Meddelande=Server.HTMLEncode(Request.Form("Meddelande"))
Meddelande = Replace(Meddelande,"slyna","kvinna")
Meddelande = Replace(Meddelande,"förbannat","förbandslåda")
Meddelande = Replace(Meddelande,"mmm","smurf")
------------------
Kom hem till mig...
spelar det ngn roll om ordet skrivs med stor eller liten bokstav i inlägget?
Ex. Slyna, slyna
------------------
.:cobraeyes:.
Jepp, men det borde du komma förbi genom att köra LCase på meddelandet:
Meddelande = Replace(LCase(Meddelande),"slyna","kvinna")
Vet inte om det påverkar hela meddelandet... men testa vet ja...
------------------
Kom hem till mig...
Jepps, det gör det!
Inte bra! Hur fixar jag det så att det bara är det "otillåtna" ordet som påverkas?
------------------
.:cobraeyes:.
Du får väl köra med en Regular Expression... skall se om jag hittar något bra exempel... återkommer...
Mvh, Vide
------------------
Kom hem till mig...
Exempel:
Meddelande = RS("meddelande")
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regex.Pattern = "slyna"
meddelande = regex.Replace(meddelande,"kvinna")
regex.Pattern = "murvelkotte"
meddelande = regex.Replace(meddelande,"smurf")
Set RegEx = nothing
------------------
Kom hem till mig...
tackar! :e
Och det där lägger jag alltså bara in...var? lägger jag bara in det som tidigare under,
Meddelande=Server.HTMLEncode(Request.Form("Meddelande"))
Eller?
------------------
.:cobraeyes:.
ahr testat fick ett felmeddelande jag inte riktigt fattade.
Men nu är det ute utan censur! :e
Men jag kan ju fixa det i efterhand, grejen var den att det var super brådis att få ut det.
Du kan kolla på www.arjeplog.se/forum.asp
Som sagt, en väldigt enkel version.
Har bara tagit skalet från en gammal gästbok! :e
Men tack för hjälpen, kommer nog att behöva det när vi ska vidareutveckla forumet!
MVH/
------------------
.:cobraeyes:.
Vet att det här inte har så mkt med ämnet att göra, men varför censurera ett forum?
------------------
Joakim Rosenqvist
http://spender604.net