Я создал пример кода опции выбора в файле tpl для использования в форме отправки в базу данных, но у меня недостаточно опыта, чтобы узнать, защищено ли значение поля {$submit_field1}
!
PHP
$main_smarty->assign('Tags_Allow', htmlspecialchars($Tags_Allow));
$main_smarty->assign('submit_field1', $content->field1);
if(isset($_POST['field1'])){$content->field1 = sanitize($_POST['field1'], 4, $Tags_Allow);}
function sanitize($var, $santype = 1, $allowable_tags = ''){
if ($santype == 1) {
return strip_tags($var, $allowable_tags = '');
}
elseif ($santype == 2) {
return htmlentities(strip_tags($var, $allowable_tags),ENT_QUOTES,'UTF-8');
}
elseif ($santype == 3) {
return addslashes(strip_tags($var, $allowable_tags));
}
elseif ($santype == 4) {
return stripslashes(preg_replace_callback('/<([^>]+)>/is',
function($m) {
return '<'.sanitize($m[1],5).'>';
}, strip_tags($var, $allowable_tags)));
}
elseif ($santype == 5) {
return preg_replace_callback('/\son\w+\s*=/is',
function($m) {
return '';
},$var);
}
}
Шаблон tpl
<select id="country" name="field1">
<option value="{$submit_field1}">Please Select</option>
<option value="United State">
United State
</option>
<option value="France">
France
</option>
<option value="Russia">
Russia
</option>
</select>
Что еще нужно сделать для значения защиты, вставленного в {$submit_field1}
из SQL-инъекций, как проверить на входе, что оно приемлемо?