Прежде всего, вам не нужны двойные кавычки вокруг переменных.Просто $titleunit_name
правильно, а не "$titleunit_name"
.
Во-вторых, никогда не используйте аддлэш.Если вы экранируете контент для входа в MySQL, используйте более надежную функцию mysql_real_escape_string
.addslashes
пропускает случаи и оставляет ваш сценарий таким же открытым для атаки, как если бы вы его вообще не использовали.
И, наконец, косые черты не входят в вывод HTML.Вам нужна функция htmlspecialchars
, которая подготавливает строку для записи в документ HTML.
echo '<option value="' . htmlspecialchars($titleunit_name) . '" name="' . htmlspecialchars($titleunit_name) . '">' . htmlspecialchars($titleunit_name) . '</option>';
Обратите внимание, что все использует $titleunit_name
(или любая другая переменная) необходимо экранировать таким образом, прежде чем записывать их на страницу.
Теперь я догадываюсь из контекста, в котором у вас есть "магические кавычки", поэтому PHP автоматически выполняет addslashes
для входящих данных POST.Если это так, отключите магические кавычки, и когда придет время вставить строку в базу данных, выполните соответствующее экранирование.Если это невозможно, используйте stripslashes
, чтобы убрать косые черты из всех POST-данных в начале выполнения скрипта, чтобы получить данные как отправленные.