Chciałbym zasięgnąć pomocy bardziej doświadczonych użytkowników baz danych co do następującego problemu wałkowanego na wielu forach, z którym mimo wszystko nie potrafię sobie poradzić.
PROBLEM:
Gdy wstawiam dane do bazy przez skonstruowany, prosty, formularz mam polskie czcionki na stronach internetowych z formularzem [iso-8859-2] natomiast po zapisaniu danych w bazie danych [iso-8859-2, latin2_general_ci] w tabelach zamiast polskich znaków widzę same krzaki.
Gdy do bazy wprowadzam dane przez konsole mysql w terminalu baza danych zapisuje w tabelach polskie znaki.
Poniżej zamieszczam kody plików:
Plik blog_formularz.php:
Kod: Zaznacz cały
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Dodawanie wpisów do Bloga</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" >
<meta name="keywords" lang="pl" content="śluby">
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="robots" content="all">
</head>
<body>
<form action="blog_dodaj_wpis.php" method="post">
<p class="standard_form_describtion_text">Podaj temat wpisu:<br><textarea class="form_text" name="tytul" cols="64" rows="2"></textarea><br>
Podaj treść wpisu:<br><textarea class="form_text" name="tresc" cols="64" rows="15"></textarea><br>
<?php require("kategorie.php");?>
<input class="form_text" type="text" name="autor" value="Sebastian"/><br>
<input type="submit" value="Dodaj wpis" /></p>
</form>
</body>
</html>
Kod: Zaznacz cały
<html>
<head>
<title>Dodano wpis</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" >
</head>
<body>
<?php
$tytul = $_POST['tytul'];
$tresc = $_POST['tresc'];
$data = date('Y-m-d H:i:s');
$kategoria = $_POST['kategorie'];
$autor = $_POST['autor'];
if (!$tytul||!$tresc||!$tytul||!$kategoria||!$autor)
{echo 'Nie podano wszystkich wymaganych pól';
exit;}
$tytul = addslashes($tytul);
$tresc = addslashes($tresc);
$kategoria = addslashes($kategoria);
$autor = addslashes($autor);
$polaczenie = mysql_connect("localhost","urzytkownik","haslo");
if (mysqli_connect_errno())
{echo 'Błąd: Polączenie z MySQL nie powiodlo się.<br>';}
else
{echo 'Nawiązano pbołączenie z MySQL.<br><br>';}
mysql_select_db("BAZA",$polaczenie);
mysql_query('set names \'latin2\'');
mysql_query('SET CHARACTER SET \'latin2\'');
mysql_query('set collation_connection=\'latin2_general_ci\'');
//$sql="INSERT into blog_wpisy values ('".$tytul."','".$tresc."','".$data."','".$kategoria."','".$autor."')";
$ins = @mysql_query("INSERT INTO blog_wpisy SET tytul='$tytul', tresc='$tresc', data='$data', kategorie='$kategoria', autor='$autor'");
if($ins) echo "Rekord został dodany poprawnie";
else echo "Błąd nie udało się dodać nowego rekordu";
echo 'Wysyłanie danych do BAZY <br>';
echo $tytul.'<br>' ;
echo $tresc.'<br>';
echo $data.'<br>';
echo $kategoria.'<br>';
echo $autor.'<br>';
?>
</body>
</html>