Avatar billede mjl Nybegynder
28. marts 2007 - 11:26 Der er 17 kommentarer og
1 løsning

Filter på tekst fra textarea

Hej der ...

Jeg har en tekst, der kommer fra et textarea felt. Teksten hedder $gaestetext, men må ikke indeholde emailadresser, eller links til andre sider ...

Jeg vil gerne, at $gaestetext bliver lig med ingenting, hvis teksten indeholder ovennævnte - men hvordan ?

hilsen Conrad
Avatar billede mjl Nybegynder
28. marts 2007 - 11:47 #1
Nogen der vil hjælpe ?
Avatar billede mjl Nybegynder
28. marts 2007 - 12:03 #2
?
Avatar billede simsevu Juniormester
28. marts 2007 - 12:15 #3
det er en meget "primitiv" måde jeg har at forslå:
men du kan jo bruge Str_replace til at fjerne @. og www. og .dk og http://.. men det er måske ikke den mest hensigts mæssige måde :)
Avatar billede mjl Nybegynder
28. marts 2007 - 12:32 #4
Jep - kunne bruges, men jeg vil ha' den til at lave $gaestetext = ingenting :o)
Avatar billede mjl Nybegynder
28. marts 2007 - 12:42 #5
Andre forslag ? Giver gerne flere points ...
Avatar billede mjl Nybegynder
28. marts 2007 - 13:05 #6
Hæver points til 150
Avatar billede mjl Nybegynder
28. marts 2007 - 13:18 #7
Nogen der kan/vil hjælpe ?
Avatar billede coderdk Praktikant
28. marts 2007 - 13:24 #8
if ( strpos( $gaestetext, "@" ) !== false || strpos( $gaestetext, "http://" ) !== false || strpos( $gaestetext, "www." ) !== false )
{
  die( "Ikke tilladt!" );
}

I stedet for die kan du jo bruge $gaestetext = "";
Avatar billede roenving Novice
28. marts 2007 - 13:34 #9
I javascript ville det f.eks. se sådan ud:

$gaestetekst = $gaestetekst.match(/@\w\.|www\.|http:\/\//)) ? "" : $gaestetekst;
Avatar billede mjl Nybegynder
28. marts 2007 - 13:34 #10
Totalt kanon ...

1000 tak - svar venligst for points !
Avatar billede mjl Nybegynder
28. marts 2007 - 13:34 #11
coderdk's virkede fint - men tak !
Avatar billede roenving Novice
28. marts 2007 - 13:36 #12
-- hrm, en par skønhedsfejl, bare hvis nogen skulle falde over det:

$gaestetekst = $gaestetekst.match(/(@\w+\.|\bwww\.|\bhttp:\/\/)/) ? "" : $gaestetekst;
Avatar billede johan.o Nybegynder
28. marts 2007 - 13:38 #13
Hvis du er tilfreds med et check af om der er @ eller www. i textarea'et kan dette måske bruges -->

if(str_replace("@", "", $gaestetext)!=$gaestetext) { $gaestetext=""; }
if(str_replace("www.", "", $gaestetext)!=$gaestetext) { $gaestetext=""; }

Men hvis du vil tillade brugerne at skrive disse tegn/kombinationer, men blot ikke i et format der kan 'tolkes' som en email adresse eller et link kan du måske bruge noget lignende det her -->

if(preg_match("/www\.(\S.)+\.[a-z]{2,3} /", $str)) { $gaestetext=""; }
if(preg_match("/(\S)+@(\S)+\.[a-z]{2,3} /", $str)) { $gaestetext=""; }

Disse reg.exp. er ikke 100% iforhold til at skille korrekt formaterede links og email adresser, men de kommer vist tæt på. Hvis du kun vil fjerne indholdet hvis du er 100% sikker på at det er enten en email adresse eller et link må du nok lede lidt efter de rigtige reg.exp. for dem kan jeg altså ikke lige på stående fod :)

Mvh. Johan
Avatar billede coderdk Praktikant
28. marts 2007 - 13:40 #14
$gaestetekst = preg_match( "#(@|www\.|http://)#i", $gaestetekst ) ? "" : $gaestetekst;

I PHP :) Aner ikke hvorfor jeg ikke tænkte regex med det samme :D
Avatar billede johan.o Nybegynder
28. marts 2007 - 13:42 #15
Nåh okay, der var lige blevet svaret mens man forfattede :)...strpos...ja da..tsk tsk

Mvh. Johan
Avatar billede mjl Nybegynder
28. marts 2007 - 13:44 #16
Tak igen - I er nu flinke ! :o)
Avatar billede johan.o Nybegynder
28. marts 2007 - 13:49 #17
Og bare for en god ordens skyld :), tvivler jeg på at det var din point hævelse der gjorde udslaget, så vidt jeg ved er der ingen af de i denne tråd deltagende personer der 'gider' lade sig lokke af ekstra point :)....men hvis nu 'olebole' havde været her...he he...ja så havde sagen jo været helt anderledes :)

Mvh. Johan
Avatar billede mjl Nybegynder
28. marts 2007 - 14:34 #18
Ha ha ha :o)
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