Kom ihåg mig?
Home Menu

Menu


Blockera ord i formulär

Ämnesverktyg Visningsalternativ
Oläst 2009-03-01, 08:38 #1
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Hej!

Har en förmodligen en väldigt enkel fråga, är nybörjare på php... Hur blockerar man vissa ord, e-postadresser osv. i ett formulär? När jag skriver såhär
Kod:
if (is_form_submit('submit_form') && ($values['body'] != 'ordet att blockera'))
går det inte att skicka utifall body BARA innehåller detta ord.. Skriver man en mening innehållandes detta ord slinker mailet igenom. Hur gör jag en block för ett ord bland mängden?

För e-post:
Kod:
(is_form_submit('submit_form') && ($values['email'] != [email protected]))
Funkar bra för EN e-postadress men hur skriver man om jag vill ange flera e-postadresser? Har provat runt lite men får det ej att funka.

Som sagt detta är grundläggande php-frågor som jag vet är barnsligt enkla men tänkte det går snabbare att fråga än leta runt mera... :unsure:

Tack på förhand!
Domine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 09:18 #2
Erik Stenman Erik Stenman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2007
Inlägg: 2 154
Erik Stenman Erik Stenman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2007
Inlägg: 2 154
Du kan använda str_pos
Erik Stenman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 09:29 #3
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Exempel?
Domine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 10:03 #4
vco-systemss avatar
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 774
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
vco-systemss avatar
 
Reg.datum: Dec 2004
Inlägg: 774
Citat:
Har en förmodligen en väldigt enkel fråga, är nybörjare på php... Hur blockerar man vissa ord, e-postadresser osv. i ett formulär? När jag skriver såhär CODE
if (is_form_submit('submit_form') && ($values['body'] != 'ordet att blockera'))
går det inte att skicka utifall body BARA innehåller detta ord.. Skriver man en mening innehållandes detta ord slinker mailet igenom. Hur gör jag en block för ett ord bland mängden?
str_pos fungerar om du vill hitta ALLA förekomster av ordet, även om det är en del av ett annat ord. Om de vill filtrera bort enbart hela ord kan du använda explode.

Kod:
$tmp=explode(" ",$values['body']);
$test=true;
foreach ($tmp as &$t) {
 $t=trim($t); //Ta bort mellanslag, radbrytningar etc. från början/slutet av ordet
 $t=trim($t,".,:;"); //Ta bort "." "," ":" ";" från ordet
 if ($t=='ord att blockera') $test=false;
}
if ($test) {.....
vco-systems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 12:12 #5
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Använd preg_match('/(a|b|c|…)/ui',$söksträng), då hittar du ordet i strängen med såväl stora som småbokstäver, varsomhelst i strängen.

Exempelvis:
Kod:
if(preg_match('/(trams|skräp|bluff)/ui',$söksträng,$m)) {
 echo "Strängen innehåller förbjudet ord : ".$m[1];
} else {
 echo "Strängen är okej";
}
som hittar orden trams, skräp och bluff.

För problem två kan du använda:
$block = array('[email protected]','[email protected]');
och kontrollera med:
if(in_array(trim($indata), $block)) echo "Myglare!";
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 14:58 #6
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Domine Domine är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2007
Inlägg: 29
Ok, tack för de snabba tipsen! Jag har provat lite men får det inte riktigt att fungera med detta
Kod:
 if (preg_match('/(trams|skräp|bluff)/ui',$values,$m)) 
 {	
 	$valid_postback = false;
 	echo "test : ".$m[1]; 
 }
Ser det ok ut?
Domine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-03-01, 21:13 #7
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Citat:
Originally posted by Domine@Mar 1 2009, 15:58
Ok, tack för de snabba tipsen! Jag har provat lite men får det inte riktigt att fungera med detta
Kod:
 if (preg_match('/(trams|skräp|bluff)/ui',$values,$m)) 
 *{	
 *	$valid_postback = false;
 *	echo "test : ".$m[1]; 
 *}
 *
Ser det ok ut?
$values ska vara en sträng, t.ex.:

$values = "Häri finns det något trams som du inte vill ha.";

I övrigt ser det väl okej ut.
martine är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:28.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017