Avatar billede floetti Nybegynder
16. februar 2004 - 00:23 Der er 23 kommentarer og
1 løsning

Om string indeholder ord

Hej!

Hvordan kan jeg lave en kontrol som sørger for at stoppe en besøgende i at skrive ord som ikke toleres. Jeg vil gerne lave en

if(indeholder ikke tolerede ord){
echo "Fejl";
}else{ echo "OK"; }

På forhånd tak

floetti
Avatar billede esoulman Nybegynder
16. februar 2004 - 00:33 #1
if(strstr($tekst, 'svin')){
echo "Fejl, du må ik skrive svin";
}else{ echo "OK"; }
Avatar billede floetti Nybegynder
16. februar 2004 - 00:49 #2
OK! det lyder gott nok, men hvad hvis der skal checkes for flere ord?
Avatar billede esoulman Nybegynder
16. februar 2004 - 00:54 #3
$array_fy = array("svin", "lort", "skid", "røv");
$antal_ord = count($array_fy);

for ($k=0; $k<$antal_ord; $k++) {

if(strstr($tekst, $array_fy[k])){
echo "Fejl, du må ik skrive ".$array_fy[$k];
}else{ echo "OK"; }

}
Avatar billede floetti Nybegynder
16. februar 2004 - 01:03 #4
Hej! Nu har jeg sat flere points på...

Det skal checkes fra en $_POST['add'], hvor skal den så sættes ind?
Avatar billede floetti Nybegynder
16. februar 2004 - 01:03 #5
Ahhh... ind som $tekst !!
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:05 #6
yes :)
Avatar billede floetti Nybegynder
16. februar 2004 - 01:10 #7
Lige et problem...

Når ordet er posted og det er godkent, så skal det sættes ind i en database, men det den gør er at den sætter den ind så mange gange som der er ord der skal checkes... hvordan forhindrer jeg det??
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:13 #8
Hmm.. du kan lave feltet hvor du gemmer ordet i, til at være Unique.. så kan det ikke blive det samme to gange.
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:13 #9
Altså i mysql --^
Avatar billede floetti Nybegynder
16. februar 2004 - 01:14 #10
Ja, det er det....
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:18 #11
Jeg ved ikke helt om det her er, hvad du mener.. men prøv det.

$fejl = 0;
for ($k=0; $k<$antal_ord; $k++) {

if(strstr($tekst, $array_fy[$k])){
echo "Fejl, du må ik skrive ".$array_fy[$k];
$fejl = 1;
}else{ echo "OK"; }

}

if ($fejl == 0) { // Insert query her, fordi der ingen fejl har været. }
Avatar billede floetti Nybegynder
16. februar 2004 - 01:18 #12
Det forsætter bare med at sætte ind!
Avatar billede floetti Nybegynder
16. februar 2004 - 01:20 #13
Altså den skal sættes ind hvor echo "OK"; er ik?
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:20 #14
nej, for så indsætter den flere gange.. lige som jeg har skrevet ovenover, til allersidst i koden - prøv det eksempel?
Avatar billede floetti Nybegynder
16. februar 2004 - 01:29 #15
Nu sætter den den ind engang... men den checker ikke??

if($_POST['add']){
$array_fy = array("svin", "lort", "skid", "røv");
$antal_ord = count($array_fy);
$fejl = 0;
for ($k=0; $k<$antal_ord; $k++) {
if(strstr($_POST['url'], $array_fy['k'])){
$echo =  "Fejl, du må ik skrive ".$array_fy['$k'];
$fejl = 1;
}else{ $echo = "Slóðin er nú skrásett"; }
}
if ($fejl == 0) { mysql_query("") }
}

Er den OK..?
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:31 #16
Glemte at k'et skulle være en variabel- min fejl. ´Linie skal se sådan ud:

if(strstr($_POST['url'], $array_fy[$k])){
Avatar billede floetti Nybegynder
16. februar 2004 - 01:33 #17
Så prøver vi igen.. ;)
Avatar billede floetti Nybegynder
16. februar 2004 - 01:43 #18
Jo, det virker;)

Nu er det bare det at der skal checkes for en url, so undgår man selvfølgelig ik at der er .com,.dk og lignende med.... som nu er acepterer den url'en, om com er med!! ? hvorfor det?
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:47 #19
Det forstår jeg ikke - må der ikke være .com med i adressen eller hvad?
Avatar billede floetti Nybegynder
16. februar 2004 - 01:53 #20
Jo jo, det skal det - men den kører bare forbi ordet lort, om det er lort.com!
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:55 #21
Skal den fjerne ordet og erstatte det med et andet, eller kan det ikke finde ordet "lort" i url'en?
Avatar billede esoulman Nybegynder
16. februar 2004 - 01:56 #22
forresten brug funktionen stristr() istedet for strstr()

kom i tanke om, at stristr() ikke er case-sensitive så den er ligeglad med store og små bogstaver.
Avatar billede floetti Nybegynder
16. februar 2004 - 02:02 #23
Nu ser det ud til at virke alligevel... det der
if(strstr($_POST['url'], $array_fy[$k])){
havde jeg skrevet med
if(strstr($_POST['url'], $array_fy['$k'])){
så ville den ikke, men da jeg gjorde ligesom din uden '$k' - så ville den;)

Så jeg takker mange gange;)
Avatar billede esoulman Nybegynder
16. februar 2004 - 02:05 #24
Glad for at kunne hjælpe :)
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