Save formatted text in MySQL DB

3

I am developing a news system and need to save formatted text, with line breaks, images between one paragraph and another and bold / italic etc. It's all working php posting, display and everything. Could someone show me how I can save that way? If possible using TinyMCE.

My post code:

<body>
<?php
if(isset($_POST['enviar'])){
    $titulo = mysql_real_escape_string(trim(strip_tags($_POST['titulo'])));
    $postagem = mysql_real_escape_string(trim(strip_tags($_POST['postagem'])));

    $img = $_FILES['foto'];
    $name = $img['name'];
    $tmp = $img['tmp_name'];
    $size = $img['size'];
    $ext = end((explode('.', $name)));
    $pasta = 'imagens';
    $maxSize = 1024 * 1024 * 2;
    $permite = array('jpg','jpeg', 'png');

    if(empty($titulo) && empty($postagem) && empty($name)){
        echo '<script>alert("Por favor, preencha o formulário de postagem corretamente.");</script>';
    }else if(empty($titulo)){
        echo '<script>alert("Por favor, preencha o campo Título.");</script>';
    }else if(empty($postagem)){
        echo '<script>alert("Por favor, preencha o campo Postagem.");</script>';
    }else if(empty($name)){
        echo '<script>alert("Por favor, selecione uma imagem.");</script>';
    }else if(!in_array($ext, $permite)){
        echo '<script>alert("A extensão da imagem selecionada não é suportada.");</script>';
    }else if($maxSize < $size){
        echo '<script>alert("A imagem selecionada é grande demais.");</script>';
    }else{
        $name = uniqid().'.'.$ext;
        $sql = mysql_query("INSERT INTO postagem (titulo, postagem, imagem) VALUES ('$titulo', '$postagem', '$name')") or die(mysql_error());
        if($sql){
            $upload = move_uploaded_file($tmp, $pasta.'/'.$name);
            if($upload){
                echo '<script>alert("Postagem salva com sucesso!");</script>';
            }else{
                echo '<script>alert("A postagem não pôde ser salva corretamente.");</script>';
            }
        }else{
                echo '<script>alert("Desculpe, ocorreu um erro.");</script>';
            }
    }
}
?>
<div class="formulario">
    <div id="form_limites">
<form action="" method="post" enctype="multipart/form-data">
    <a class="textos">Título.:</a><br>
    <input type="text" id="titulo" name="titulo" maxlength="80"><br>
    <br><a class="textos">Conteúdo da postagem.:</a><br>
    <textarea type="text" id="postagem" name="postagem"></textarea><br>
    <br><a class="textos">Imagem.:</a><input type="file" id="foto" name="foto"><br>
    <input type="submit" id="enviar" name="enviar" value="Salvar postagem">
</form>
    </div>
</div>
</body>

Problem: My text simply does not return formatted at the time of displaying on the site. It comes in one line.

    
asked by anonymous 13.06.2014 / 15:37

1 answer

2

If text formatted by TinyMCE has an html, remove the strip_tags from $postagem . This function removes all html tags so the text will be saved to the database without any formatting.

change:

$postagem = mysql_real_escape_string(trim(strip_tags($_POST['postagem'])));

To:

$postagem = mysql_real_escape_string(trim($_POST['postagem']));
    
13.06.2014 / 16:15