Autor Zpráva
Pavel444
Profil
Dobrý večer,

prosím, jak můžu prosím uložit html kód psaného článku v CKeditoru 5 (ckeditor.com/ckeditor-5) do DB pomocí PHP a tak, aby to bylo kódované pomocí UTF8?

Prostě mám: <strong>Žák má rád <i>zelenou</i></strong> a jde mi to to, aby se to přesně takhle uložilo do DB. Je na to funkce, aby ten HTML kod prošel?

    $pridat_clanek = "INSERT INTO clanky (nadpis, clanky.obsah_text) VALUES ('{$_POST["nadpis"]}', '{$_POST["obsah_text"]}');";

    if ($connect->query($pridat_clanek) === TRUE) {
        header("Location: clanky.php");
        exit;
        } else {
            echo "Error: " . $pridat_clanek . "<br>" . $connect->error;
        }
  } 
Joker
Profil
HTML kód je z pohledu databáze normální řetězec (obvykle TEXT, případně VARCHAR).

Pokud je problém s kódováním, možná je buď na vstupu, nebo při zobrazování textu nastavené jiné kódování.

Jak se ten problém projevuje?
Kajman
Profil
Hodnoty je potřeba escapovat, např.
$pridat_clanek = "INSERT INTO clanky (nadpis, clanky.obsah_text) VALUES ('".$connect->real_escape_string($_POST["nadpis"])."', '".$connect->real_escape_string($_POST["obsah_text"])."')";

nebo raději použít prepare + bind_param.
php.net/manual/en/mysqli-stmt.prepare.php


JS editory někdy na server posílají diakritiku jako html entity - to se většinou nastavuje parametrem pro ten js editor.
Pavel444
Profil
Kajman:
Úžasné! Hrozně moc děkuji, funguje to.

Pěkný den oběma.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0