Я думал, что правильный способ «санитарной обработки» входящие данные из HTML-формы перед тем введя его в базу данных MySQL, чтобы использовать real_escape_string
на него в PHP скрипт, например:real_escape_string не очистка введенного текста
$newsStoryHeadline = $_POST['newsStoryHeadline'];
$newsStoryHeadline = $mysqli->real_escape_string($newsStoryHeadline);
$storyDate = $_POST['storyDate'];
$storyDate = $mysqli->real_escape_string($storyDate);
$storySource = $_POST['storySource'];
$storySource = $mysqli->real_escape_string($storySource);
// etc.
И как только это будет сделано, вы можете просто вставить данные в базу данных, как это:
$mysqli->query("INSERT INTO NewsStoriesTable (Headline, Date, DateAdded, Source, StoryCopy) VALUES ('".$newsStoryHeadline."', '".$storyDate."', '".$dateAdded."', '".$storySource."', '".$storyText."')");
Так я думал, что делать это будет заботиться о очищая все невидимые «мусорные» символы, которые могут приходить в с представленным вами текст.
Тем не менее, я только что вставил текст, который я скопировал с веб-страницы в свою форму HTML, нажал «отправить», который выполнил вышеупомянутый скрипт и вставил этот текст в мою БД, но когда я прочитал этот текст назад из БД я обнаружил, что в этом фрагменте текста все еще есть мусорные символы, такие как –
.
И эти мусорные символы, конечно, вызвали PHP-скрипт, который я написал, что извлекает информацию из базы данных для сбоя.
Итак, что я делаю неправильно?
Использует real_escape_string
не путь сюда? Или я должен использовать его в сочетании с чем-то еще? ИЛИ, есть ли что-то, что я должен делать (например, больше экранов) при чтении данных чтения из базы данных mySQL?
(Я должен упомянуть, что я разработчик Objective-C, а не разработчик PHP/mySQL, но мне, к сожалению, была предоставлена эта задача, чтобы сделать некоторые вещи БД - отсюда мой вопрос ...) спасибо!
Вы должны использовать параметризованные запросы вместо 'real_escape_string', с одной стороны. Правильно ли вы установили набор символов для своих страниц? –
Хм, не совсем уверен, что вы подразумеваете под «правильно ли вы установили набор символов» - как выглядело бы это утверждение? (Я должен упомянуть, что я разработчик Objective-C, а не разработчик PHP/mySQL, но мне, к сожалению, была дана эта задача, чтобы сделать некоторые вещи базы данных ...) – sirab333
Где у вас появилась эта идея «очистки», «мусорные символы»? –