Avatar billede causasui Nybegynder
22. januar 2007 - 14:19 Der er 6 kommentarer

søg i array

Jeg har en gæstebog, som en eller anden russer spammer.. Jeg har sat referrer i toppen af gæstebogfilen og redirecter hvis ikke variablerne kommer fra min side.. jeg logger ip adr. i min DB og tillader kun 1 indlæg pr 30 min.. men ak ikke nok..
Så tænke jeg at lave en lille funktion, der leder efter om der findes <br> og [] og // og url= etc... html kode i en tekststreng og retunerer true eller false:
Har bikset med flg. virker ikke efter hensigten..
$ban_array = array('<br>' ,'[]' , 'img', 'url=', 'porn', 'a href', '</a>'); 
for ($i = 0; $i <= count($ban_array); $i++) {
 
    if (preg_match("/$ban_array[$i]/i", "$tekst")) {
  echo "match";
    }
}
Avatar billede causasui Nybegynder
22. januar 2007 - 14:24 #1
Undskyld titlen skulle ha været søg i tekststreng!
Avatar billede Bjarne Novice
22. januar 2007 - 15:56 #2
$ipban = array(34.23.43.2, 21.124.124.52);

if(in_array($_SERVER["REMOTE_ADDR"], $ipban)) {
  print "Skid";
}
Avatar billede Bjarne Novice
22. januar 2007 - 15:58 #3
århh. jeg er vist træt.. Men du kan bruge in_array() til at søge i et array ;)

http://no2.php.net/in_array
Avatar billede causasui Nybegynder
22. januar 2007 - 17:48 #4
Jeg er nået frem til flg. som virker men måske det ikke er det mest elegante, kan nogen lave det mere elegant?
$ban_array = array('<br>' ,'[]' , 'url=', 'porn', 'a href', '</a>');
                                    $forms_arr = array($navn, $email, $tekst, $website);
                                    for($t = 0; $t <= count($forms_arr); $t++){
                                                      for($i = 0; $i <= count($ban_array); $i++) {
                            $str=strpos($forms_arr[$t], $ban_array[$i]);
                            if($str !== false)
                            {
                            header ("Location: www.blablablabla.dk");
                            }
                      }
                  }
Avatar billede causasui Nybegynder
22. januar 2007 - 17:52 #5
Problemet er bare at hvis de ord der er banned skrives med f.eks. stort eller blandet store og små, så virker funktionen ikke..
Avatar billede styrk Nybegynder
22. januar 2007 - 18:32 #6
if(strip_tags(something))
{
  // smut
}

har ikke tested eller noget, bare en tanke ;oo
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