Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Salvando Código e caracteres especiais no banco

Estou tentando criar um pequeno sistema PHP que grave conteúdo de um textarea no banco de dados, criando pequenas anotações. O problema é que eu não consigo gravar códigos PHP, css etc. Muito parecido com o que temos aqui no fórum

Parece que alguns caracteres não são aceitos.

<?php
    $conn = mysqli_connect("localhost","root","root","notas");

        $texto = $_POST[texto];

        $query = "INSERT INTO notas VALUES(null, '$texto')";
        $stmt = $conn->prepare($query);
            $stmt->execute();
        $stmt->close();
    $conn->close();


?>
4 respostas

Rafael,

Tenta usar o utf8_encode ( string $data ) ou o utf8_decode ( string $data ). Caso não funcione você pode converter para html entity.

Espero ter ajudado

Não funcionou Carlos. =/

Para páginas gravadas em arquivos com codificação em UTF-8 e que tenham a seguinte metatag

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Você pode tentar fazer o seguinte, na hora de gravar no banco, usar o utf8_decode. Exemplo

$StrSQL = "INSERT into minha_tabela (meu campo) VALUES ('" .  utf8_decode($_POST["campo_do_formulario"]). "')";

Para imprimir esse valor na página, você pode usar o utf8_encode(nome_do_campo_da_tabela)

solução!

A solução pra mim foi substituir os caracteres que atrapalham a gravação peloi seu respectivo código Windows-1252 antes de submeter o formulário.

Ex.:

texto = texto.replace(/&/g, "%26");

E após isso submeter o form.