Autor Zpráva
BliXer
Profil
Prosím pomohli byste mi s mým problémem? Zde vidíte ukázku php kódu pro vložení informací do databáze:

<?php
if ((empty ($_POST)) and (empty ($_POST['nadpis'])) and (empty ($_POST['kategorie'])) and (empty ($_POST['nahled'])) and (empty ($_POST['obsah']))) 
{
}
else
{
include ("config.php");

$nadpis = empty($_POST['nadpis']) ? "" : $_POST['nadpis'];
$kategorie = empty($_POST['kategorie']) ? "" : $_POST['kategorie'];
$nahled = empty($_POST['nahled']) ? "" : $_POST['nahled'];
$obsah = empty($_POST['obsah']) ? "" : $_POST['obsah'];

mysql_query('INSERT INTO clanky (nadpis,kategorie,nahled,obsah) VALUES ("'.$nadpis.'","'.$kategorie.'","'.$nahled.'","'.$obsah.'")') or die(mysql_error());
}
?>



Vkládání funguje správně, ale jen dokud nepoužívám diakritiku, všechny další znaky po písmenu s diakritikou (např. háček nebo čárka) se už nevloží.Config.php obsahuje také připojení k databázi. Formát kódováni nastaven na Utf-8.

Děkuji za pomoc.

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
bohyn
Profil
BliXer:
Zabezpeč si vkládané proměné pomocí mysql_real_escape_string(). Předejdeš tim i SQL injection
Alphard
Profil
voláte set names?
mysql_query("set names 'utf8'");
BliXer
Profil
Alphard:
voláte set names?


ano volám
Kajman_
Profil *
Když si vypíšete ten insert, tak je v utf8 diakritika v pořádku? Sloupec tabulky je v db nastaven na jakou znakovou sadu?
BliXer
Profil
Kajman:
Když si vypíšete ten insert, tak je v utf8 diakritika v pořádku? Sloupec tabulky je v db nastaven na jakou znakovou sadu?

Při var_dumpu dané proměnné je vše OK, nicméně se tam diakritika neuloží. V phpmyadmin je přesně to co se i vypíše, tedy všechny znaky před znakem s diakritikou. Sloupec má znakovou sadu utf8_general_ci.
Kajman_
Profil *
Takže při dumpu koukáte v prohlížeči s nastaveným kódováním na utf8 a když si vypíšete kompletní insert a dáte ho do pma, tak je to v pořádku?

A je možné vidět ten config.php? Heslo si můžete změnit.
BliXer
Profil
<?php
  mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se pripojit k MySQL: " . mysql_error());
  mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());
  mysql_query("SET NAMES UTF8");
?>

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