Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: htmlspecialchars $ MySQL & безопасная запись

Сообщения:  [1-5] 

 
 автор: f@ntom   (22.02.2010 в 14:59)   письмо автору
 
   для: heed   (22.02.2010 в 00:43)
 

Кавычки в запросе стоят, из функции просто их убрать забыл =), числа теперь отдельно через интвал пропускаю. Думаю прокатит =)

  Ответить  
 
 автор: heed   (22.02.2010 в 00:43)   письмо автору
 
   для: f@ntom   (21.02.2010 в 23:38)
 

неа, не универсально :)
>"'" .
я так понял потомучто в самих запросах вы кавычки таки не ставите
>mysql_real_escape_string(htmlspecialchars
если так обрабатывается например ник участника <rock'n'roll>, то будете так и выводить ему надпись "здрасьте,'<rock\'n\'roll>'
>Если переменная - число
, а если переменная пустая, а нужно при отсутствии значения значение "0", а если не "0" а "-1" ? :)

Я пытался сделать одной функцией всё что бывает нужно, вызывалась примерно так-же но со вторым параметром,
который означал что-за тип данных ожидается, email или url или число или ещё чего-то , экранированное или не экранированное html или нет, потом всётаки стали появляться случаи что эта функция не делала,)
и тем более когда нужна только одна цифра таскать везде такую функцию быстро надоело :)


//всётаки без htmlspecialchars в большинстве случаев удобнее, знаешь что работаешь с чистыми данными, а когда нужно изменяешь их

  Ответить  
 
 автор: f@ntom   (21.02.2010 в 23:38)   письмо автору
 
   для: heed   (21.02.2010 в 23:32)
 

Порылся там-сям, в итоге получилось что-то такое =)
Щас попробую в деле.

<?
function cleanstr($value)
{
    
// если magic_quotes_gpc включена - используем stripslashes
    
if (get_magic_quotes_gpc()) {
        
$value stripslashes($value);
    }
    
// Если переменная - число, то экранировать её не нужно
    // если нет - то окружем её кавычками, и экранируем
    
if (!is_numeric($value)) {
        
$value "'" mysql_real_escape_string(htmlspecialchars($valueENT_QUOTES'UTF-8')) . "'";
    }
    return 
$value;
}
?>

  Ответить  
 
 автор: heed   (21.02.2010 в 23:32)   письмо автору
 
   для: f@ntom   (21.02.2010 в 22:04)
 

>погуглил, тоже ответа не нашёл

это потомучто надо было вбивать запрос "site:softtime.ru mysql_real_escape_string",
а лучше вообще вбивать здесь :)

>-Можно ли пропускать данные через htmlspecialchars до занесения в базу?
можно , и даже если хватило-бы простого intval(), вопрос в том нужно-ли, и даст-ли это в чём-то выигрыш, но в размере текстовых данных выигрыша не будет точно.

>-И нужена ли mysql_escape_string, если предварительно обработал через htmlspecialchars.
это нужно читать мануал по обоим функциям, и заодно про magic_quotes и stripslashes().

  Ответить  
 
 автор: f@ntom   (21.02.2010 в 22:04)   письмо автору
 
 

Доброго времени суток, возник такой вопрос: как безопасно записать данные в базу, а потом их так же безопасно оттуда вытащить?
Прочитал что не стоит перед занесением пропускать данные через htmlspecialchars , а лучше пропускать mysql_escape_string , а уже при выводе данных пускать через htmlspecialchars .
Но почему делать именно так я не понял, погуглил, тоже ответа не нашёл.
Дак как всётаки лучше?
-Можно ли пропускать данные через htmlspecialchars до занесения в базу?
-И нужена ли mysql_escape_string, если предварительно обработал через htmlspecialchars.

Заранее спасибо =)

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования