Avatar billede proff Nybegynder
20. august 2004 - 21:57 Der er 9 kommentarer og
1 løsning

Ord censurering

Hej, jeg skal have censureret nogle ord man ikke kan bruge ved en oprettelse..

if($mes = fuck

Men hvis man så skriver fuck1, Så skriver den det.. Eller man skriver 1fuck. Kan jeg lave en funktion sådan at hvis "fuck" findes i $mes, så printer den fejl :)?
Avatar billede cautoo Nybegynder
20. august 2004 - 22:10 #1
if (eregi("fuck", $mes)) {
  echo "Det må du ikke skrive";
}
Avatar billede jakobclausen Nybegynder
20. august 2004 - 22:13 #2
Du kan med fordel kigge på preg_match - da det er lidt hurtigere end eregi:
http://dk.php.net/manual/da/function.preg-match.php
Avatar billede gizp Nybegynder
20. august 2004 - 22:16 #3
$mes = str_replace("fuck", "*beep*", $mes);

Kan du bruge ;)
Avatar billede proff Nybegynder
20. august 2004 - 22:16 #4
if (eregi("fuck", $mes)) {
  echo "Det må du ikke skrive";
}

Hvis der nu er flere ord? ;o)
Skal det så være noget i stil med dette?:

if(eregi("fuck","tis","grimt",$_POST[spillernavn])) {
  echo "Det må du ikke skrive";
}
Avatar billede nicklasb Nybegynder
20. august 2004 - 22:21 #5
netop i tilfælde af at der er flere "krav" er preg-matchen endnu engang et oplagt valg. Her kan du nemlig gøre brug af eller (|) -operatoren!
Den måde du har gjor det på der, vil blot resultere i en fejl, da php læser fremad og vil tror næste input i rækken tilhører næste funktionsvariabel. Endeligt vil funktionen være kaldt med for mange variabler og vil her endnu engang brokke sig.
Så tag at gøre som jakobclausen forslår, og kig på de link der bliver postet til dig!
Nogle gange er den lange og kedsommelige løsning langt bedre end de små færdigproducerede nogle du får her i spørgsmålene!
Avatar billede proff Nybegynder
20. august 2004 - 22:23 #6
if(eregi("fuck",$_POST[spillernavn] || ereg("homo",$_POST[spillernavn] ))) {3

:)
Sådan skulle jeg vist lave det så ;o)
Avatar billede jakobclausen Nybegynder
20. august 2004 - 22:26 #7
-
Avatar billede proff Nybegynder
20. august 2004 - 22:35 #8
hm. Det virker ikke helt, den censurere ikke navnene, man kan sagtens bruge dem. Den printer ikke fejl eller noget ;(

if(eregi("fuck",$_POST[spillernavn] || ereg("bøsse",$_POST[spillernavn] || ereg("homo",$_POST[spillernavn] || ereg("tis",$_POST[spillernavn] || ereg("pik",$_POST[spillernavn] || ereg("patter",$_POST[spillernavn] || ereg("fisse",$_POST[spillernavn] || ereg("lort",$_POST[spillernavn] || ereg("tissekone",$_POST[spillernavn] || ereg("fuck",$_POST[spillernavn] || ereg("nosser",$_POST[spillernavn] || ereg("lebbe",$_POST[spillernavn] || ereg("knep",$_POST[spillernavn] || ereg("bolle",$_POST[spillernavn] || ereg("anal",$_POST[spillernavn] || ereg("sex",$_POST[spillernavn] || ereg("babser",$_POST[spillernavn] || ereg("kusse",$_POST[spillernavn] ))))))))))))))))))) {
print "Dette navn er ikke tilladt pga. spillets navne censurering!";
}


Kan i se min fejl?
Avatar billede jakobclausen Nybegynder
20. august 2004 - 22:49 #9
proff >> prøv at kig på hvad nicklasb og jeg foreslår - preg_match. Det er lidt smartere til dit formål, efter min mening.
Avatar billede nicklasb Nybegynder
20. august 2004 - 23:42 #10
.. men fejlen i den kode du poster der er at du endnu ikke har afsluttet nogle af dine funktionsklad før til allersidst..
Opdel den eventuelt så du lettere selv kan overskue det med:

if (
(funktion($var, $var))
||
(funktion($var, $var))
||
(funktion($var, $var))
)

Du slutter først ALLE dine funktionskald i slutningen, hvad der ikke giver meget mening.. :S
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester