Странно, я переместил сайт и базу данных с одного сервера LAMP на другой. На старом сервере пользователи могут без проблем вводить текст в текстовые области, в которых есть кавычки. Я предполагаю, что это либо в конфигурационных файлах php или sql, проблема в том, что мой хост на старом сайте не будет предоставлять эти файлы, поэтому я не уверен, что изменить. Есть идеи, почему это работает на одном, а не на другом?
Вот строка кода на всякий случай:
mysql_query("UPDATE Stu SET Stu_IDD = '$snumd', First = '$first', Last = '$last',
MPhone = '$mphone', HPhone = '$hphone', EContact = '$econtact',
EPhone = '$ephone', GMail = '$gmail', PMail = '$pmail',
Address = '$address', Apt = '$apt', Pcode = '$pcode',
City = '$city', DOB = '$dob', Gender = '$gender',
Deaf = '$deaf', Notes = '$notes'
WHERE Stu_ID = '$snum'")
or die(mysql_error());
Большое спасибо заранее за ваше время и ответы!
На старом сервере пользователи могут вводить текст в текстовые области, которые включают
цитаты без проблем.
Похоже, что ваши кавычки автоматически сбрасывались на старом сервере, возможно, из-за настройки в старых версиях php Магические цитаты.
Эта «особенность» устарела и удалена, и на нее не следует полагаться в любом случае для экранирования данных для базы данных.
Вы должны переключиться на PDO или mysqli и использовать подготовленные операторы со связанными параметрами.
В любом случае вы, возможно, захотите не включать неэкранированные кавычки в вашу базу данных по соображениям безопасности. использование mysqli_real_escape_string
чтобы избежать этих персонажей: \x00, \n, \r, \, ', ", \x1a
В новых версиях mysql команды запроса используют mysqli вместо mysql … Попробуйте вместо этого выполнить mysqli_query. Если это не работает, убедитесь, что имена базы данных и имена в запросе совпадают.