Jeg har forsøgt at lave en funktion, der sletter attributter, som
jeg ikke vil tillade:
function strip_not_allowed_attr($text) {
// *******************************************
$allowed_attr=array("title", "href", "summary", "for", "type",
"id", "name", "method", "action", "cite");
// *******************************************
$search_before = array();
$replace_before = array();
$search_after = array();
$replace_after = array();
$i = 1;
foreach($allowed_attr AS $item) {
$search_before[] = ("'".$item."='");
$replace_before[] = "__".$i."__";
$search_after[] = ("'__".$i++."__'");
$replace_after[] = ($item."=");
}
$text = preg_replace($search_before, $replace_before, $text);
$stripAttrib = array("' ([a-zA-Z]*?)=\"(.*?)\"'i","'
([a-zA-Z]*?)=\'(.*?)\''i");
$text = stripslashes($text);
$text = preg_replace($stripAttrib, '', $text);
$text = preg_replace($search_after, $replace_after, $text);
$text = addslashes($text);
return trim($text);
}
Men den fejler, hvis jeg fx skriver <a onclick=ond_function()>Ond
funktion</a>; Er der nogen, der kan hjælpe med det, så den ikke
kan snydes?
Samtidig vil jeg gerne sikre mig, at linket inde i fx src og href
er regelrette links. Til det har jeg følgende tjek:
if(ereg("(http|ftp|https)://[-A-Za-z0-9._/]+", $var['url'])) { //
link er ok }
Jeg vil imidlertid gerne, hvis man på en eller anden måde kunne
kombinere den øverste funktion med det?
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials