To rozwiązuje sprawę jeśli chodzi o wpisywanie danych do bazy. Niestety pobierane wpisy wciąż nie posiadają polskich znaków.
Nie wiem w ogóle co się dzieje.
Mam dwa pliki .php, które wykonują dokładnie ten sam skrypt z takimi samymi danymi i dokładnie z ta sama bazą danych. W jednym testowym wyświetla tak jak trzeba, a w drugim wciąż wyświetla z znakami zapytania.
Co się dzieje? Ja już wymiękam.
Pierwszy skrypt testowy:
header('Content-type: text/html; charset=utf8');
try
{
$polaczenie = new PDO
('mysql:host='.$serwer_bd.';dbname='.$nazwa_bd, $uzyt_bd, $haslo_bd, array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$polaczenie->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
echo 'Połączono z bazą danych!'; } catch (PDOException $e)
{
}
$nazwa = 'uzytkownik';
$haslo = '123456789';
$spr_nazwa = 'dobrze';
if ($spr_nazwa === 'dobrze') {
$pytanie = $polaczenie->prepare("SELECT id, nazwa, stopien FROM ".$przedrostek_bd."uzytkownicy WHERE nazwa=:nazwa AND haslo=:haslo LIMIT 1");
$pytanie->bindValue(':nazwa', $nazwa, PDO::PARAM_STR);
$pytanie->bindValue(':haslo', sha1($haslo), PDO::PARAM_STR);
if ($pytanie->execute()) {
$wynik = true;
while ($w = $pytanie->fetch(PDO::FETCH_ASSOC)) {
$dane_id = $w['id'];
$dane_nazwa =$w['nazwa'];
echo $dane_stopien = $w['stopien']; } } else {
$wynik = '<p class="blad">Nie udało się zalogować.<br />
Spróbuj ponownie później lub zgłoś to do obsługi technicznej.</p><br />'; }
}
Drugi skrypt:
header('Content-type: text/html; charset=utf8');
try {
$polaczenie_bd = new PDO
('mysql:host='.NAZWA_SERWERA_BD
.';dbname='.NAZWA_BD
, NAZWA_UZYT_BD
, HASLO_UZYT_BD
, array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or
die('Nie można połączyć się z bazą danych.'); $polaczenie_bd->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch (PDOException $e) {
echo ($e->getMessage()); }
if ($spr_nazwa === 'dobrze' && $spr_haslo === 'dobrze') {
$pytanie = $polaczenie_bd->prepare("SELECT id, nazwa, stopien FROM ".$przedrostek."uzytkownicy WHERE nazwa=:nazwa AND haslo=:haslo LIMIT 1");
$pytanie->bindValue(':nazwa', $nazwa, PDO::PARAM_STR);
$pytanie->bindValue(':haslo', sha1($haslo), PDO::PARAM_STR);
if ($pytanie->execute()) {
$wynik = true;
while ($w = $pytanie->fetch(PDO::FETCH_ASSOC)) {
$dane_id = $w['id'];
$dane_nazwa =$w['nazwa'];
echo $dane_stopien = $w['stopien']; } } else {
$wynik = '<p class="blad">Nie udało się zalogować.<br />
Spróbuj ponownie później lub zgłoś to do obsługi technicznej.</p><br />'; }
}
Próbowałem już kopiować z tego działającego i zamieniac z tymi niedziałajacymi fragmentami, ale ostatecznie i tak jest taki sam wynik.