/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan frasorteres html i formindput?
Fra : Jakob Munck


Dato : 14-12-05 22:59

Det er særdeles skadeligt for ens website, hvis en bruger indsætter
html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
når det vises.

Men hvordan bortsorterer man html-tags i formindputtet??

v.h.
Jakob



 
 
Jesper H (15-12-2005)
Kommentar
Fra : Jesper H


Dato : 15-12-05 01:17

Ved hjælp af funktion htmlentities (tror jeg nok):
http://dk2.php.net/manual/en/function.htmlentities.php

--
Mvh Jesper, http://fdf.dk/landsdel1/


Jakob Munck (15-12-2005)
Kommentar
Fra : Jakob Munck


Dato : 15-12-05 02:07


"Jesper H" <jesper.haukrogh@gmail.com> skrev i en meddelelse
news:1134605808.872968.302300@g47g2000cwa.googlegroups.com...
Ved hjælp af funktion htmlentities (tror jeg nok):
http://dk2.php.net/manual/en/function.htmlentities.php


Tak for det. Mon ikke også denne replace-funktion kan fjerne html effektivt?

$message = str_replace("<", " ", $message);
$message = str_replace(">", " ", $message);

v.h.
Jakob



Jesper H (15-12-2005)
Kommentar
Fra : Jesper H


Dato : 15-12-05 02:02

Kører htmlentities() på sit forminput (tror jeg nok):
http://dk2.php.net/manual/en/function.htmlentities.php

--
Mvh Jesper, http://fdf.dk/landsdel1/


Jesper H (15-12-2005)
Kommentar
Fra : Jesper H


Dato : 15-12-05 10:03

Det kan den vist godt, men det burde måske nærmere være:
<?php
$message = str_replace("<", "&lt;", $message);
$message = str_replace(">", "&gt;", $message);
?>
Det kan jo godt være at der i teksten er et større-end tegn eller
mindre-end, som ikke er tiltænkt som html-kode.

Men hvorfor så ikke bruge htmlentities() eller htmlspecialchars() ...

--
Mvh Jesper, http://fdf.dk/landsdel1/


bonfils (15-12-2005)
Kommentar
Fra : bonfils


Dato : 15-12-05 11:27

On Wed, 14 Dec 2005 22:59:25 +0100, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:

>Det er særdeles skadeligt for ens website, hvis en bruger indsætter
>html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
>for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
>når det vises.
>
>Men hvordan bortsorterer man html-tags i formindputtet??

Udover de nævnte:
http://dk2.php.net/manual/en/function.strip-tags.php

--
bonfils
http://kim.bonfils.com

Jakob Munck (15-12-2005)
Kommentar
Fra : Jakob Munck


Dato : 15-12-05 12:58

> Udover de nævnte:
> http://dk2.php.net/manual/en/function.strip-tags.php
>
> --

Helt fint, tak for det!

v.h.
Jakob



Peter Brodersen (15-12-2005)
Kommentar
Fra : Peter Brodersen


Dato : 15-12-05 14:04

On Wed, 14 Dec 2005 22:59:25 +0100, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:

>Det er særdeles skadeligt for ens website, hvis en bruger indsætter
>html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
>for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
>når det vises.

Bare for at opsummere:

- du kan bruge strip_tags() til helt at fjerne tags og hvad der minder
om.
- du kan bruge htmlspecialchars() til at rette bl.a. < og > til &lt;
og &gt; (så det vises som mindre-end- og større-end-tegn). Det kan
være at foretrække, hvis folk bruger < og > til noget reelt i deres
indlæg.
- htmlspecialchars() er at foretrække frem for htmlentities(), idet
sidstnævnte også retter bl.a. æ til &aelig; m.m., hvilket bl.a. gør
søgninger mere besværlige
- normalt er det ved output, at man afvikler funktionerne, og ikke ved
indsættelse af dataen. Tanken er at dataen i databasen er
medieuafhængigt, så man ikke har fx unødvendig HTML liggende i sin
database. Overheadet ved at afvikle fx htmlspecialchars() hver gang er
vitterligt minimalt, og det er typisk en uhensigtsmæssig optimering at
gøre det "en gang for alle" ved indsættelse i databasen. Hvis man fx
vil sende e-mails med indholdet eller præsentere indholdet på en anden
måde, er det måske ikke hensigtsmæssigt at indholdet pludselig er
fedtet ind i HTML-entities.

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste