HEm
Сетевой бобер
регул. выр. - *безопасные* теги
Во-первых, скажите список *безопасных* тегов, вставка которых со стороны пользователей не повлияет ни на конфиденциальность информации на сервере ни тем более на его устойчивость к кулхацкерам
Во-вторых, вот, такой скрыпт пишу для восстановления *безопасных* тегов после обработки htmlspecialchars (просьба не кричать про откл. жабаскрипта, все по очереди, щас задача - корректно восстановить теги указанные в массиве)
файл clrhtm.php
<?
function clearhtml($s)
{
$safetags1=array("1"=>"th", "2"=>"b", "3"=>"i", "4"=>"h2",
"5"=>"h3", "6"=>"h4", "7"=>"h5", "8"=>"h6",
"9"=>"h7", "10"=>"center", "11"=>"td", "12"=>"a",
"13"=>"p", "14"=>"table", "15"=>"big", "16"=>"blockquote",
"17"=>"dt", "18"=>"ol", "19"=>"ul", "20"=>"li",
"21"=>"font", "22"=>"tr", "23"=>"pre", "24"=>"s",
"25"=>"sub", "26"=>"sup", "27"=>"u", "28"=>"dd", "29"=>"dl"
;
$safetags2=array("1"=>"br", "2"=>"hr"
;
$tmp=htmlspecialchars($s);
for ($i=1;$i<count($safetags1)+1;$i++)
{ $ss1="&lt;(".$safetags1[$i]."([:alnum:]*)(&gt
$)(.*)&lt;(/".$safetags1[$i]."
(&gt
$";
ereg_replace($ss1,"<\\1>\\4<\\5>",$tmp);
}
}
?>
файл test.php
<?
include("clrhtml.php"
;
$f=fopen("../main.htm","r"
;
$s=fread($f,filesize("../main.htm"
);
fclose($f);
$s1=clearhtml($s);
echo $s1."\n<br>-----------------------------<br>".$s;
?>
В итоге $s1 пустая, где ошибка?
Во-первых, скажите список *безопасных* тегов, вставка которых со стороны пользователей не повлияет ни на конфиденциальность информации на сервере ни тем более на его устойчивость к кулхацкерам
Во-вторых, вот, такой скрыпт пишу для восстановления *безопасных* тегов после обработки htmlspecialchars (просьба не кричать про откл. жабаскрипта, все по очереди, щас задача - корректно восстановить теги указанные в массиве)
файл clrhtm.php
<?
function clearhtml($s)
{
$safetags1=array("1"=>"th", "2"=>"b", "3"=>"i", "4"=>"h2",
"5"=>"h3", "6"=>"h4", "7"=>"h5", "8"=>"h6",
"9"=>"h7", "10"=>"center", "11"=>"td", "12"=>"a",
"13"=>"p", "14"=>"table", "15"=>"big", "16"=>"blockquote",
"17"=>"dt", "18"=>"ol", "19"=>"ul", "20"=>"li",
"21"=>"font", "22"=>"tr", "23"=>"pre", "24"=>"s",
"25"=>"sub", "26"=>"sup", "27"=>"u", "28"=>"dd", "29"=>"dl"

$safetags2=array("1"=>"br", "2"=>"hr"

$tmp=htmlspecialchars($s);
for ($i=1;$i<count($safetags1)+1;$i++)
{ $ss1="&lt;(".$safetags1[$i]."([:alnum:]*)(&gt



ereg_replace($ss1,"<\\1>\\4<\\5>",$tmp);
}
}
?>
файл test.php
<?
include("clrhtml.php"

$f=fopen("../main.htm","r"

$s=fread($f,filesize("../main.htm"

fclose($f);
$s1=clearhtml($s);
echo $s1."\n<br>-----------------------------<br>".$s;
?>
В итоге $s1 пустая, где ошибка?