Sencurer osv..

Tags:    php

Hej... Har lavet et kommentar system på www.shafh.dk (min side).

Og nu kommer det jeg vil kunne lave...
Allerede da kommentaren går ind i min database, vil jeg gerne lave en securering af ord som: fuck, pik, patter og numselatter...

De ord skal bare ændres til 4 *.

Jeg vil også gerne have at hvis folk skriver <? ?> (for at lave noget php skal det 100% forsvinde, og det samme med nogle andre html ting!


Altså: Hvordan kan jeg erstatte ord med noget andet...
Koden skal gerne være sådan at der er forskæl på hvad de ændre sig til (php og html ting går væk og fuck giver ****)...




Håber du forstår mig!








Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



10 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
$streng = "Og så sagde jeg, fuck hvor er du grim!";

$censur_streng = str_replace("fuck", "BIIIIP", $streng);

echo "<p>Original = $streng</p>";
echo "<p>Censureret = $censur_streng</p>";


Håber du forstår det, ellers kan du læse mere om det på http://www.webcafe.dk/artikler/php/funktioner2/

Mvh
Rasmus



Tekst fra en database vil ikke kunne udføres som php-kode, og det er mest normalt at omdanne html-kode, så det vises på skærmen i stedet for at læses af browseren. det gøres alt sammen med

echo nl2br(htmlspecialchars($indholdet));

Vil du alligevel slette tingene, kan du bruge http://dk2.php.net/strip_tags

censuren kan laves med

$indholdet = str_replace('fuck','****', $indholdet);
$indholdet = str_replace('pik','***', $indholdet);




Så skal du skrive:

[pre]
$streng = "Og så sagde jeg, fuck hvor er du grim!";

$censur_streng = str_replace("fuck", "BIIIIP", $streng);
$censur_streng = str_replace("pik", "BIIIIP", $censur_streng);

echo "<p>Original = $streng</p>";
echo "<p>Censureret = $censur_streng</p>"
[pre]

Og så bare gentage den for alle de ord du vil censurere

Mvh. Emilbp



Okay... Har ikke lige prøvet, men tror allerede nu jeg har et spørgsmål! :D


Hvordan vil det så se ud hvis jeg skulle tage både fuck og pik med i den?
Og hvad med hvis fuck skal give biip og pik skal give ****?????




Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



Jeps :D



Okay! Hvis PHP ikke virker fra databasen er det jo perfekt.

Men grunden til at jeg vil gøre alt det her er at jeg er bange for at folk vil begynde at sætte store forme ind i kommentaren som måske får min side til at se sjov ud. Og nogle vil måske prøve at sætte et stort pornobillede ind, eller måske noget som får siden til at vises langsomt!
(dog skal visse funktioner stadig være mulige som eks.: <b> eller <br>
(begge disse ting er jo ganske fredelige!

Det er enlig det der er grunden til at jeg vil lave dette!

Forstår ikke helt dette:

http://dk2.php.net/strip_tags




Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



Bruger Emil, og Rasmuses eks....

Tak alle sammen :D




Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world

[Redigeret d. 29/07-05 18:48:38 af Shafh]



Så skal du skrive:

Fold kodeboks ind/udKode 
Så skal du skrive:

Fold kodeboks ind/udKode 



Og så bare gentage den for alle de ord du vil censurere

Mvh. Emilbp


evt. er dette lidt nemmere (hvis du da spørger mig)

Fold kodeboks ind/udKode 


Dette eksempel vil give meget bedre mulighed for f.eks. at have de slemme ord i en database og lave et udtræk derfra, da $erstat selv tilpasser sig indholdet af $slemmeord.

Håber du kan bruge det til noget.

/det ser vidst forhåbentlig lidt bedre ud nu?
Mvh
Kaare




Tak. Jeg havde faktisk også et problem med at få flere ord sensureret!

Men har stadig det problem, at spammerne, bare kan skrive med stort, og så vil sensureringen jo ikke virke (hvis de ikke står med stort i stringen!

Kan man fikse det let?

Beklærer jeg ikke kan give dig nogle up...


Ps. havde vist kommet til at kalde tråden sencur. Mente selvfølgelig: sensur :D

Shafh
www.shafh.dk
Shafh@stofanet.dk
Theis F. Hinz

Make you glad to change the world



t