webForumDet fria alternativet

Problem med Replace...

ASP

14 svar · 527 visningar · startad av Macce

Medlem sedan apr. 2001425 inlägg
Frågan#1

I mitt forum så vill jag hindra att en användare
håller ner [enter] och får massor av radbrytningar
och sabbar designen...

Om jag kör koden nedan så vill jag att den även ska
förkorta resultatet av operationen. hoppas ni förstår vad jag menar.

Jag skulle helst vilja ha en funktion som tillåter max två radbrytningar i en följd, nån som har idéer på hur man kan lösa detta.

replace(strMess,VbCrlf&VbCrlf&VbCrlf,VbCrlf&VbCrlf)

Är det RegExp som gäller ?

mvh

Medlem sedan feb. 200112 078 inlägg
#2

Jag vet inte varför jag inte ser nödvändigheten i en sådan spärr. Enterslag är för mig en av de saker jag saknar på många ställen där man skriver i text i t.ex. formulär och liknande. Att begränsa detta känns mest som ett kontrollbegär. ;)

Sätt en rimlig gräns för hur många tecken fältet får innehålla istället.

Medlem sedan apr. 2001425 inlägg
#3

ja, du kanske har rätt :)

Sätt en rimlig gräns för hur många tecken fältet får innehålla istället.

Har jag redan ;)

Medlem sedan dec. 20003 887 inlägg
#4

RegExp är säkert det smidigaste sättet att lösa det på.

Annars får du mha InStr() och InStrRev() söka efter förekomster av VbCrLf&VbCrLf&VbCrLf, kolla antal och strula... usch... kör med RegExp. ;)

Medlem sedan apr. 2001425 inlägg
#5

Har inte satt mig in i "RegExp" kanske dags för det,
men OveRRidE har kanske rätt om mitt kontrollbegär... :)

Medlem sedan feb. 200112 078 inlägg
#6

Gör inte misstaget som alla andra gör bara, sitter och bygger in femhundrasjuttiotvå funktioner för smilies, enterslag, mellanslag, 'spamskydd' och diverse längdbegränsningar men totalt glömmer bort det viktigaste tecknet av dem alla; apostrofen. En sådan med fel databas och både du och din applikation är lika säkra som en vattendamm tillverkad av papier maché.

Talar av erfarenhet. :OO

Medlem sedan apr. 2001425 inlägg
#7

Tack för omtanken, men apostrofen och pipe-tecknet är skyddat.:)

Jag tillåter faktiskt html, är det OK ?

Ingen säkerhetsrisk bara "Sabba"-risk...

Medlem sedan feb. 200112 078 inlägg
#8

iframe-taggen är ju lite halvskoj i det läget.

<iframe src="http://www.nissesporr.com"></iframe>
Medlem sedan apr. 2001425 inlägg
#9

hmm, då kör vi:

replace(strMess,"iframe","")
replace(strMess,"src","")

Fler förslag ?

Medlem sedan feb. 200112 078 inlägg
#10

Svart eller vitt, brukar jag köra med. Alltså HTMLencode eller inte.

Medlem sedan apr. 2001425 inlägg
#11

Oki, jag gör så här:

Först "HtmlEncode",längdbegränsning,tar bort pipe samt apostrof och sen sparar till databas.

vid presentation: replace(strMess,VbCrlf,"<br>") och smiley-kod

Det kanske är "lagom" kontrollbehov ;)

Medlem sedan mars 200324 inlägg
#12

En stilla undran från en nybörjare...
Vad menas med "pipe" och "apostrof" ?

Medlem sedan juni 200032 967 inlägg
#13

Välkommen hit! :)

Pipe-tecknet : |
Apostrof: '

Apostrof används för att omsluta strängar i SQL, men varför man ska se till att kasta bort tecknet | har jag aldrig förstått. Någon med större visdom än vänstertecknad är mer än välkommen att upplysa. :)

Mvh

Medlem sedan juni 20022 599 inlägg
#14

Pipe-tecknet används i Unix/Linux/PHP/Perl (och DOS) för redirecta outputen från ett program in i ett annat.

Elaka människor har ibland lyckats maila iväg innehållet i lösenordsfiler genom att skriva (ungefär):

;cat /etc/passwd | sendmail ..

i webformulär. I Windows och ASP är det inte lika aktuellt eftersom det inte finns några system, och exec-kommandon.

I VBScript är det kanske ungefär lika smart som att skriva:

Set Shell = Server.CreateObject("WScript.Shell") 
Shell.Run sMittKommando & request.form("whatever")

.. utan att kolla innehållet i request.form("whatever").

Det har alltså inte så mycket med SQL att göra ..

Medlem sedan juni 200032 967 inlägg
#15

Tack, mäster niko!

Mvh

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)