2013-10-08 4 views
0

Я боролся с тем, чтобы избегать двойных и одинарных кавычек с добавками() и stripslashes() ... в мини-веб-приложении, которое просто вставляет значения и извлекает эти значения в форме для редактирования, и общую страницу для просмотра атрибутов. В конце концов я остановился на этой функции, чтобы изменить одинарные и двойные кавычки:Одиночные и двойные проблемы с котировками

function fixQuotes($string) { 
    $string = str_replace("'", ''', $string); 
    $string = str_replace('"', '"', $string); 
    return $string; 
} 

Поскольку у меня нет никаких подробностей для вас, как для того, что происходит, прежде чем использовать этот метод, я не могу спросить, что было неправильно. Скорее, я хотел бы знать, есть ли недостатки в использовании этой функции для замены одиночных и двойных кавычек объектами html.

+0

Прежде всего, зачем и где вы заменяете двойные кавычки? – Nes

+1

try htmlspecialchars() – nithin

+0

Я заменяю кавычки на строки, которые входят в базу данных mysql. Я пробовал использовать stripslashes и addslashes, но он не работал на моей странице формы. В любом случае, полоса. – ncf

ответ

4

Вы не можете просто волшебным образом «исправить» кавычки, не зная, куда идут данные.

  1. Когда вы вставляете данные в базу данных, избегайте ее с помощью функции escape-функции API базы данных. Если вы используете устаревший MySQL API (который не должен быть в новом коде, поскольку он устарел), используйте mysql_real_escape_string. Если вы используете API с улучшенным MySQL, используйте mysqli_real_escape_string. Если вы используете PDO, используйте bindValue или execute с параметром input_parameters, или quote.

  2. Когда вы эхо-текст на HTML-страницу, используйте htmlspecialchars.

+0

Спасибо, @Boann. – ncf

Смежные вопросы