MySqli Real Escape не работает

Я использовал скрипт для загрузки статей на свой веб-сайт и немного поддерживал его, а теперь, когда я добавляю статью на сервер, он добавляет косые черты в мой текст. Вот код, который я использую:

$con = mysqli_connect("localhost","db_username","db_password","db_database");

$title = ucwords($_POST['title']);
$category = $_POST['category'];
$article = $_POST['article'];
$alt = $_POST['alt'];

$title = mysqli_real_escape_string($con, $title);
$article = mysqli_real_escape_string($con, $article);
$alt = mysqli_real_escape_string($con, $alt);

$insert_post_sql = "INSERT INTO ".$site_id."_articles (id, category, photo, alt, title, article, added, views) VALUES('$id', '$category', '.$extension', '$alt', '$title', '$article', '$added', '$views')";
$insert_post_res = mysqli_query($con, $insert_post_sql);
if(mysqli_affected_rows($con)>0){
move_uploaded_file($_FILES["photo"]["tmp_name"],"$path" . $id . "." . $extension);
header("Location: ../article.php?id=$id");
exit();
}
else{
echo "0";
};

Итак, мой текст статьи выглядит так: Here\'s my article\'s text

Может кто-нибудь сказать мне, почему побег не работает здесь?

-1

Решение

Может кто-нибудь сказать мне, почему побег не работает здесь?

mysqli_real_escape_string() возможно делает «побег«как вам требуется, однако»добавляет косые черты к моему тексту«не то, что mysqli_real_escape_string() делает.
Не ожидайте, что он изменит код или добавит обратную косую черту. Он просто экранирует символы при добавлении в базу данных.

Что-то кроме mysqli_real_escape_string() добавляет косые черты к вашему тексту.

mysqli_real_escape_string:

Экранирует специальные символы в строке для использования в операторе SQL, учитывая текущую кодировку соединения

.

это добавляет косые черты к тексту, когда я загружаю его здесь, то, что он делает

Если вы не закодировали вручную в сценарии, чтобы избежать обратной косой черты, например, с помощью функции addslashes (), тогда, как предложил @zerkms, это может быть магические цитаты включен, который «убегает», автоматически добавляя обратную косую черту.

Определите, включены ли магические кавычки

Если у вас включены магические кавычки, прочитайте это: Почему бы не использовать магические кавычки

РЕДАКТИРОВАТЬ

Предложение использовать stripslashes() вполне может заставить эту проблему «исчезнуть из поля зрения», но она не решает основную проблему и не пытается решить потенциальную проблему с помощью магических кавычек, опять же Почему бы не использовать магические кавычки.

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

Если у вас включены магические кавычки, вы теперь тратите ресурсы на магические кавычки, добавляя косую черту и stripslashes() удаляя их.

Это не исправление, это «уловка».
Если вы довольны этим, то не беспокойтесь вообще, но, к моему сведению, такой подход вообще не является хорошей практикой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]