Jump to content
  • 0

htmlspecialchars()


klierik
 Share

Question

Доброго времени суток.

Устанавливая некоторый плагин для Magento в доке было указано использовать функцию htmlspecialchars() но не было показано как именно :rolleyes:

Такой вопрос: как правильно использовать эту функцию для того что бы в БД попали безопасные данные?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Такой вопрос: как правильно использовать эту функцию для того что бы в БД попали безопасные данные?

если вы сформулировали вопрос верно, и именно речь идёт о безопасности данных при записи в БД под-MySQL движком, стоит использовать mysql_real_escape_string().

Я это делаю общедоступным в проекте методе класса со всякими утилитами:


/**
* слэшит и тримит рекурсивно массив
*/
function cleanUserData($userArr = array())
{
$cleanArr = array();
foreach ($userArr as $key => $val)
if(is_array($val))
$cleanArr[$key] = $this->cleanUserData($val);
else
$cleanArr[$key] = mysql_real_escape_string(trim($val));

return $cleanArr;
}

плюс стоит инициализировать переменные в нужно типе перед записью их значений в базу.

типа


$post = $utils->cleanUserData($_POST);
$query = "INSERT INTO `".PREFIX."users_levels`
SET
`id` = ".(int) $post['id'].",
`title` = '".$post['title']."',
`name` = '".$post['name']."',
`description` = '".$post['description']."'
";

$id = $mysql->exec($query, 1);

преимущества функции mysql_real_escape_string тут расписывать не буду, можно в сети аргументы нагуглить.

Edited by Быколай
Link to comment
Share on other sites

  • 0

andyarus,

веришь, я сюда отписал после гугла. далёк я от пхп =(

Быколай, благодарю за потраченное время на ответ.

я не понял твоего поста. у меня есть в разметке темплента:


<form ... >
...
<textarea ...?></textarea>
...
</form>

при нажатии на submit форма отправляет данные на сервер.

в общем всё логично.

Как я понял, так htmlspecialchars() работает как раз на выходе. то если нужно эти данные вывести где-то в разметке, то они прогоняются через эту функцию.

Но, это приходится делать каждый раз.

Собственно вопрос: реально ли вообще что бы данные поступали в БД уже отфильтрованные и безопастные (ну что бы на выходе каждый раз при запросе не запускать htmlspecialchars()) ?

ЗЫ: я буду очень благодарен за приземленный ответ для разработчика которые далек от терминологии php

Link to comment
Share on other sites

  • 0

Можешь сделать и так, но тогда функция редактирования данных становится сложнее. А в чём проблема один раз в жизни написать функцию для вывода данных и забыть о ней? Или это такая забота о сервере?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy