Я читаю mysqli_real_escape_string (), и после правильного экранирования моего контента у меня возникают некоторые проблемы с отображением, когда я снова вынимаю его.
Вот код, который у меня есть:
function update_section_content() {
$name = mysqli_real_escape_string($this->conn, $_POST['name']);
$text = mysqli_real_escape_string($this->conn, $_POST['content']);
// First, we do an update
$update_query = "UPDATE sections SET content = ? WHERE name = ?";
if($update_stmt = $this->conn->prepare($update_query)) {
$update_stmt->bind_param('ss', $text, $name);
$update_stmt->execute();
// If the update was successful, read in what we just updated
if($update_stmt->affected_rows == 1) {
$read_query = "SELECT content FROM sections WHERE name = ?";
if($read_stmt = $this->conn->prepare($read_query)) {
$read_stmt->bind_param('s', $name);
$read_stmt->execute();
$read_stmt->bind_result($content);
if($read_stmt->fetch()) {
echo nl2br($content);
}
}
}
$read_stmt->close();
$update_stmt->close();
}
Я надеялся, что следующий код обновит запись и удалит все недопустимые символы, а затем, в случае успеха, прочитает обновленный запрос обратно, сохранив прежнюю визуальную целостность. (То есть я хотел бы, чтобы текстовая область отображалась в этом контенте для отображения новых строк, а не тегов br.)
К сожалению, на данный момент я все еще получаю символы новой строки после побега. Чего мне не хватает?
Большое спасибо за ваше время, и любые советы, предоставленные с благодарностью.
К сожалению, это не так. Я все еще получаю символы новой строки