Использование двойных кавычек в значении 'input type = "text"' не работает, строка останавливается при двойной кавычке!

Как я могу позволить пользователям использовать «» (двойную кавычку) внутри текстового поля …

Всякий раз, когда я использую двойную кавычку в поле (значение), то при получении переменной в моем PHP-файле:

$text=mysql_real_escape_string($_POST['subject']); 

а затем эхо его, я получаю строку, которая экранирована должным образом, но строка останавливается точно перед двойной кавычкой!

Я не хочу, чтобы он остановился из-за двойной цитаты!

Javascript используется для проверки текстового поля, поэтому он не пуст, может быть, я должен сделать что-то еще с javascript при проверке и изменении значения, так что php может получить правильное значение, включая двойные кавычки?

благодаря

ОБНОВИТЬ

КОД:

  $headline= mysql_real_escape_string($_POST['headline']); echo htmlentities($headline); 

Я попытался слить два выше, даст только те же результаты. ПРИМЕЧАНИЕ. У меня также есть TRIED, добавление ENT_QUOTES в функцию htmlentities …

Неформатированная строка:

  + , . ; : - _ space & % ! ? = # * ½ @ / \ [ ]< > " ' hej hej 

выдает это при повторении:

  + , . ; : - _ space & % ! ? = # * ½ @ / \\ [ ]< > 

Вы должны использовать htmlspecialchars($str, ENT_QUOTES) или htmlentities($str, ENT_QUOTES) чтобы преобразовать кавычки в объект HTML &quot; , Эти функции также заботятся о других символах, которые должны быть закодированы.

mysql_real_escape_string() предназначен только для экранирования одиночных кавычек в запросах базы данных, так что вы можете правильно вводить строки с одинарными кавычками в свою базу данных (и избегать инъекций SQL).

EDIT: Добавлены параметры. Благодаря micahwittman

Причина, по которой он не работает, когда вы выводите его на input заключается в том, что value усекается при цитировании. Вам нужно будет использовать htmlspecialchars () на выходе.

Вы смешиваете две вещи: mysql_real_escape_string используется для подготовки строк для хранения в базе данных mysql. htmlentities используется для подготовки строк для эха в браузере. И то, и другое важно делать, но нельзя называть одну и ту же строку одной и той же строкой. Сделайте что-то вроде следующего:

 // Copy string after escaping for mysql into $db_headline $db_headline= mysql_real_escape_string($_POST['headline']); // Copy string after escaping for page display into $html_headline $html_headline = htmlentities($_POST['headline']); // Store the headline in the database ... ?> <input type="text" name="headline" value="<?php echo $html_headline ?>" /> ... 

Не работа JS для изменения входной строки, сервер должен убедиться, что она может принять то, что ее получает независимо.

Вы могли бы избежать двойных кавычек с другим значением либо символом Assci, либо HTML &quot; и т. д., прежде чем передавать его в функцию выключения mysql?