Я использовал скрипт для загрузки статей на свой веб-сайт и немного поддерживал его, а теперь, когда я добавляю статью на сервер, он добавляет косые черты в мой текст. Вот код, который я использую:
$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
Может кто-нибудь сказать мне, почему побег не работает здесь?
Может кто-нибудь сказать мне, почему побег не работает здесь?
mysqli_real_escape_string()
возможно делает «побег«как вам требуется, однако»добавляет косые черты к моему тексту«не то, что mysqli_real_escape_string()
делает.
Не ожидайте, что он изменит код или добавит обратную косую черту. Он просто экранирует символы при добавлении в базу данных.
Что-то кроме mysqli_real_escape_string()
добавляет косые черты к вашему тексту.
Экранирует специальные символы в строке для использования в операторе SQL, учитывая текущую кодировку соединения
.
это добавляет косые черты к тексту, когда я загружаю его здесь, то, что он делает
Если вы не закодировали вручную в сценарии, чтобы избежать обратной косой черты, например, с помощью функции addslashes (), тогда, как предложил @zerkms, это может быть магические цитаты включен, который «убегает», автоматически добавляя обратную косую черту.
Определите, включены ли магические кавычки
Если у вас включены магические кавычки, прочитайте это: Почему бы не использовать магические кавычки
Предложение использовать stripslashes()
вполне может заставить эту проблему «исчезнуть из поля зрения», но она не решает основную проблему и не пытается решить потенциальную проблему с помощью магических кавычек, опять же Почему бы не использовать магические кавычки.
Просто отключить магические цитаты, для исправления этой проблемы, других проблем безопасности и того факта, что она устарела, и вы не должны использовать ее в коде, который может не работать на более новом сервере или при обновлении сервера.
Если у вас включены магические кавычки, вы теперь тратите ресурсы на магические кавычки, добавляя косую черту и stripslashes()
удаляя их.
Это не исправление, это «уловка».
Если вы довольны этим, то не беспокойтесь вообще, но, к моему сведению, такой подход вообще не является хорошей практикой.
Других решений пока нет …