Насколько безопасно юзать данный код? Для изменения информации: PHP: <php $osebe = $_POST['osebe']; $osebe = htmlspecialchars($osebe); $osebe = addslashes($osebe); // Экранируем спец символы ... $result = mysql_query ("UPDATE `users` SET `name` = '$name',... ?> Для вывода результата: PHP: <?php ... $osebe = stripslashes($myrow_ui[osebe]); // Удаляет экранирование символов ... echo "<textarea name=\"osebe\" rows=5 cols=20>$osebe</textarea>"; ... ?> P.S. Был тут http://phpfaq.ru/slashes Спасибо за ответы
Нифига addslashes не экранирует (точнее экранирует но далеко не всё что надо бы) иди обратно на http://phpfaq.ru/slashes и читай ещё раз (пока не дойдёт)
написал длинный пост, но по рассеянности закрыл вкладку переписывать лень. dobs, смотри про mysql_real_escape_string(), magic_quotes, плейсхолдеры а по делу PHP: <php $osebe = $_POST['osebe']; $osebe = htmlspecialchars($osebe); $osebe = addslashes($osebe); // Экранируем спец символы $result = mysql_query ("UPDATE `users` SET `name` = '$name',... ?> юзать небезопасно. $name не фильтруется
Правильно ли я понял, надо юзать так? PHP: <php $osebe = $_POST['osebe']; $osebe = htmlspecialchars($osebe); $result = mysql_query ("UPDATE `users` SET `name` = '%s'', `osebe`='%s'", mysql_real_escape_string($name), mysql_real_escape_string($osebe)); ?> спс
PHP: <?php // Запись данных $name = (isset($_POST['name']) ? trim((string)$_POST['name']) : ''); $osebe = (isset($_POST['osebe']) ? trim((string)$_POST['osebe']) : ''); if (0 !== strlen($name) && 0 !== strlen($osebe)) mysql_query('UPDATE `users` SET `name` = "' .mysql_real_escape_string($name) .'", `osebe` = "' .mysql_real_escape_string($osebe) .'"'); // Вывод данных $result = mysql_query('SELECT `osebe` FROM `users` WHERE `name` = "Vasja" LIMIT 1'); $row = ''; if( mysql_num_rows($result)) { $row = mysql_fetch_row['result']; $row = htmlspecialchars($row[0]); } ?> <textarea name="osebe" rows="5" cols="20"><?= $row; ?></textarea>