Hur gör man detta?

ASP

17 svar · 397 visningar · startad av cobraeyes

Medlem sedan apr. 2000139 inlägg
Trådstart#1

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/

Medlem sedan dec. 19998 577 inlägg
#2

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

Medlem sedan apr. 2000139 inlägg
#3

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/

Medlem sedan dec. 19998 577 inlägg
#4

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

Medlem sedan apr. 2000139 inlägg
#5

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/

Medlem sedan dec. 19998 577 inlägg
#6

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")
Medlem sedan apr. 2000139 inlägg
#7

spelar det ngn roll om ordet skrivs med stor eller liten bokstav i inlägget?
Ex. Slyna, slyna

Medlem sedan dec. 19998 577 inlägg
#8

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...

Medlem sedan apr. 2000139 inlägg
#9

Jepps, det gör det!
Inte bra! Hur fixar jag det så att det bara är det "otillåtna" ordet som påverkas?

Medlem sedan dec. 19998 577 inlägg
#10

Du får väl köra med en Regular Expression... skall se om jag hittar något bra exempel... återkommer...

Mvh, Vide

Medlem sedan dec. 19998 577 inlägg
#11

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
Medlem sedan apr. 2000139 inlägg
#12

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?

Medlem sedan apr. 2000139 inlägg
#13

Hjälp! Hur gör jag? :r

MVH/

Medlem sedan dec. 19998 577 inlägg
#14

Har du testat att lägga koden under din?Funkade det?

Medlem sedan apr. 2000139 inlägg
#15

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/

Medlem sedan dec. 19998 577 inlägg
#16

Var är felmeddelandet?

Medlem sedan apr. 2000139 inlägg
#17

Lägger upp det imorgon, slutar för dagen! :e

MVH/

Medlem sedan juni 2000468 inlägg
#18

Vet att det här inte har så mkt med ämnet att göra, men varför censurera ett forum?

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)