Avatar billede adflicto Nybegynder
23. august 2003 - 20:25 Der er 10 kommentarer og
1 løsning

ereg, tjek tegn

hej...
i min tagwall kunne jeg godt tænke mig at tjekke om postene indeholder diverser tegn inden jeg gemmer postet, således at folk ikke kan skrive URL til billeder mm.
jeg ved det er noget med if(ereg(...., $...)){.. osv.
kan bare ikke helt hitte ud af den der ereg funktion
lad os sige at jeg har en form der har følg. variabler:
$navn
$besked
$email
og den sender dem til gem.php
i gem.php vil jeg da gerne verifye at variabler ikke indeholder diverse tegn som " og <img og } osv. ...
nogen der kan gi mig et eksempel...
på forhånd tak
Avatar billede marduk666 Nybegynder
23. august 2003 - 20:29 #1
htmlspecialchars($besked) kan klare det.
Avatar billede adflicto Nybegynder
23. august 2003 - 20:35 #2
sorterer den så alle de der "forbudte" tegn fra?
Avatar billede detox Nybegynder
23. august 2003 - 20:51 #3
Ellers brug strip_tags(). Den sorterer alle html tags fra, medmindre du specificerer nogle tilladte tags som det andet argument.
http://dk2.php.net/manual/en/function.strip-tags.php
Avatar billede cbolvig Nybegynder
23. august 2003 - 20:56 #4
"ereg" funktionen du selv nævnte benytter regulære udtryk (regular expressions). Mit eksempel benytter funktionen "eregi" som er ligeglad med store og små tegn.
Så hvis du selv vil vælge hvilke tegn og kombinationer af tegn du vi teste på gør du sådan når du vil teste på ' " og <img:

eregi("\'|\"|<img",$navn)
Avatar billede cbolvig Nybegynder
23. august 2003 - 21:01 #5
brug "eregi_replace" funktionen hvis du vil sortere tegnene fra
Avatar billede erikjacobsen Ekspert
23. august 2003 - 21:14 #6
Må jeg anbefale marduk666s løsning: der er ingen grund til at forbyde folk
at skrive bestemte tegn, når det nu ikke er nødvendigt. Forslaget vil give
samme effekt som her på eksperten.dk: de tegn man skriver bliver vist.
Avatar billede adflicto Nybegynder
23. august 2003 - 21:34 #7
kan i ikke sætte det sammen til et eksempel?:
i gem.php
if(htmlspecialchars($besked)){udskriver fejl...
}
else {
connect til db og post $besked... osv.
}
eller hvordan?
Avatar billede erikjacobsen Ekspert
23. august 2003 - 21:40 #8
1) Sæt den ind i din database uden check for noget som helst
2) Når du vil vise teksten i dit forum/gæstebog/whatever, så skriver du noget
  i retning af:

      print htmlspecialchars($row['besked']);
Avatar billede adflicto Nybegynder
23. august 2003 - 21:55 #9
kan ik få det lort til at virke...
jeg har postet i $besked: <img src="http://www.adflicto.frac.dk/overskriftmoerk.gif"> og det billede viser sig så der hvor den lille normale besked skulle have været ;D, vil gerne have at man ikke skal kunne lave et sådan trick (indsætte et billede) ;D
jeg prøvede at skrive print htmlspecialchars($get_gaestebog[besked]); men så viste den en fejl i stedet...
url: www.adflicto.frac.dk/tagwall.php <-- take a look og prøv lige at skrive hvad jeg skal gøre, og gerne hvad htmlspecialchars gør...
sry fordi jeg er så besværlig ;D
Avatar billede marduk666 Nybegynder
24. august 2003 - 12:53 #10
htmlspecialchars laver følgende tegn om til html entities
& bliver til: &amp;
" bliver til: &quot;
' bliver til: &#039;
< bliver til: &lt;
> bliver til: &gt;

Så undgår man at folk lige laver php scripts/javascripts o.s.v. på en side.
Avatar billede adflicto Nybegynder
24. august 2003 - 20:38 #11
jo tak, nu har jeg fået det til at virke...
hehe ikke flere af de der overdimensionerede billeder der ikke ´passer ind i tabellen ;D
tak eksperter !
mvh. AdfliCto
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