|
|
|
| Подскажите когда надо использовать ту или иную функцию. Я читал что вроде на выводе данных их бд надо использовать stripslashes а при вводе в БД надо использовать addslashes. Но мнения расходятся где одно в другом месте другое. Помогите разобраться | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 21:25)
| | Где вы читали там написано правильно. а где мнения расходяться неходите туда=))) | |
|
|
|
|
|
|
|
для: Poison
(14.07.2007 в 21:27)
| | Та же гостевая книга на этом сайте там при занесении в бд используется stripslashes | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 21:29)
| | Pri rabote s bazami dannyh ispol'zuyut funkciyu mysql_escape_string(string string); Stripslashes primenyayut pri vklyuchennyh magic_guotes_gpc(), potomu chto ot nee problem bol'she...:) | |
|
|
|
|
|
|
|
для: Buhen
(14.07.2007 в 21:25)
| | При обработке данных, предназначенных для формирования SQL-запросов, следует ориентироваться на состояние директивы magic_quotes_gpc конфигурационного файла php.ini, если директива включена, GET, POST, COOKIE данные можно не экранировать, если отключена - следует экранировать.
<?php
if (!get_magic_quotes_gpc())
{
$_GET['text'] = addslashes($_GET['text']);
}
?>
|
Иногда используют другой подход, убирают экранирование при помощи stripslashes(), если включены "магические кавычки", а затем все данные подвергают экранированию при помощи addslashes()
<?php
if (get_magic_quotes_gpc())
{
$_GET['text'] = stripslashes($_GET['text']);
}
$_GET['text'] = addslashes($_GET['text']);
?>
|
PS Без учёта get_magic_quotes_gpc() использование функций stripslashes() и addslashes() перед помещением в базу данных GET, POST, COOKIE данных бессмысленно, по крайней мере до появления PHP 6, где механизм "магических кавычек" будет исключён. | |
|
|
|
|
|
|
|
для: cheops
(15.07.2007 в 09:52)
| | Большое спасибо cheops! УЧТУ! | |
|
|
|
|
|
|
|
для: Buhen
(15.07.2007 в 10:05)
| | Nado ispnl'zovat' mysql_escape string! | |
|
|
|
|
|
|
|
для: SportSoft
(15.07.2007 в 12:44)
| | по моему,надо использовать то,что тебе удобнее...Обоснуй преимущества mysql_escape_string над addslashes,а то я до сих пор особой разницы не понял... | |
|
|
|
|
|
|
|
для: SportSoft
(15.07.2007 в 12:44)
| | И вообще,вопрос немного некорректно поставлен...Это то же самое,что спросить,что лучше-ободрать двери от краски или покрасить их.Все зависит от конкретных условий.Если двери не покрашены,то надо их красить,если на них старая краска,то надо их обдирать | |
|
|
|
|
|
|
|
для: Ralph
(15.07.2007 в 15:15)
| | Дак что лучше использовать: mysql_escape_string или addslashes? | |
|
|
|
|
|
|
|
для: Buhen
(15.07.2007 в 16:19)
| | mysql_escape_string добавляет слыши перед символами: \x00, \n, \r, \\, ', ", \x1A. А addslashes только перед ', ", \. Смысл я сказал, а вот что использовать - это уже решать Вам. | |
|
|
|
|
|
|
|
для: Sportsoft
(15.07.2007 в 19:58)
| | Если addslashes экранирует обратные слэши,то автоматически будут заэкранированы и \r и \n и даже \z...Вот почему я и интересуюсь,почему так настойчиво рекомендуется именно mysql_escape_string,а не addslashes... | |
|
|
|
|
|
|
|
для: Ralph
(15.07.2007 в 20:32)
| | UP!!!
так что лучше использовать???
addslashes или mysql_escape_string???
и есть ли обратная функция к mysql_escape_string? | |
|
|
|
|
|
|
|
для: ProtoTeeP
(29.09.2007 в 11:07)
| | если уж мускулисты сделали отдельную ф-ию, наверное стоит ею и воспользоваться | |
|
|
|
|
|
|
|
для: ProtoTeeP
(29.09.2007 в 11:07)
| | addslashes или mysql_escape_string???
<?php
var_dump(mysql_escape_string("\r\n"));
var_dump(addslashes("\r\n"));
?>
|
> и есть ли обратная функция к mysql_escape_string?
В точности обратной нет. Можно написать, конечно, но в нормальных ситуациях такой функции не требуется. | |
|
|
|