Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Brak polskich znaków w danej sekcji strony
Forum PHP.pl > Forum > PHP
venus
Cześć. Przede wszystkim, jeśli pomyliłem się z działem dot. forów, to bardzo przepraszam, ale do tematu.

Wyciągam dane (treść tematów oraz ost. tematy jako ich nazwy) z forum MyBBoard i wczytuję do najprostrzej w świecie strony pisanej w html'u z rozszerzeniem .php ze względu na skrypty. Problem pojawia się już na starcie, mianowicie gdy skrypt wczytuje nazwy tematów, polskie znaki wyświetlają się poprawnie. Jednak jeśli zerknę na newsy, to już tychże znaków brak. W ich miejsca pojawiają się znaki zapytania "?". Strona posiada kodowanie UTF-8, tak samo jak forum z którego wyciągam treść. Niżej przedstawię ów skrypty:

Na początku strony:

Kod
<?php
    $conn = @mysql_connect('localhost','user','haslo')
        or die('Problem z polaczeniem do bazy danych: '.mysql_error());
    mysql_select_db('baza');
?>


Blok aktualności (newsy - tu nie wyświetlają się polskie znaki)

Kod
    <?php
/*------------------------------*/
define("IN_MYBB", 1);
define("KILL_GLOBALS", 1);
define("NO_ONLINE", 1);
/*------------------------------*/
include("forum/inc/init.php");
/*------------------------------*/
$forumpath = $mybb->settings['bburl'];
require_once MYBB_ROOT."/inc/class_parser.php";
$parser = new postParser();

/*------------------------------*/
$connect = @mysql_connect("localhost", "user", "haslo") or die ("Brak lacznosci z serwerem.");
mysql_query('SET CHARSET windows-1255 ');
mysql_select_db("baza") or die ("Brak lacznosci z Baza Danych.");

$show_news = ("SELECT tid, replyto, fid, subject, uid, username, dateline, message, visible FROM forum_posts WHERE (fid = '4') AND (replyto = '0') ORDER BY tid DESC LIMIT 0,4");
$show_news_query = mysql_query($show_news) or die("Wystapil nieoczekiwany blad. Pracujemy nad tym. Przepraszamy i zapraszamy później.");

while($news = mysql_fetch_array($show_news_query))
{
$subject = $news[subject];
$message = $news[message];
$date_day = date("j", $news[dateline]);
$date_mounth = date("m", $news[dateline]);
$date_year = date("Y", $news[dateline]);
$time = date("H:i", $news['dateline']);
   switch ($date_mounth) {
         case '01': $date_mounth = 'Stycznia'; break;
         case '02': $date_mounth = 'Lutego'; break;
         case '03': $date_mounth = 'Marca'; break;
         case '04': $date_mounth = 'Kwietnia'; break;
         case '05': $date_mounth = 'Maja'; break;
         case '06': $date_mounth = 'Czerwca'; break;
         case '07': $date_mounth = 'Lipca'; break;
         case '08': $date_mounth = 'Sierpnia'; break;
         case '09': $date_mounth = 'Wrzesnia'; break;
         case '10': $date_mounth = 'Pazdziernika'; break;
         case '11': $date_mounth = 'Listopada'; break;
         case '12': $date_mounth = 'Grudnia'; break;
           default: $date_mounth = 'Blad!!!'; break;
       }
       echo "<div class='item'>";
echo "<h4 class='title'><a href='forum/showthread.php?tid=$news[tid]'>".$parser->parse_message($subject)."</a></h4>";
print (" <p class='meta'><small>Napisane ".$date_day." ".$date_mounth." ".$date_year." r. o godz. ".$time." przez <a href='forum/member.php?action=profile&amp;uid=$news[uid]'><b>".$news[username]."</b></a>.</small></p> ");
print ("<p class='excerpt'></p><p>".$parser->parse_message($message)."</p>");
print ("</div>");

}
?>


Blok ost. tematy (tu wyświetlają się poprawnie polskie znaki)

Kod
<?php
$connect = @mysql_connect("localhost", "user", "haslo") or die ("Brak lacznosci z serwerem.");
mysql_query('SET CHARSET utf8');
mysql_select_db("baza") or die ("Brak lacznosci z Baza Danych.");

$tem = mysql_query("SELECT * FROM `forum_threads` ORDER BY `tid` DESC LIMIT 15");
while ($temat = mysql_fetch_row($tem)) {
if(strlen($temat[2]) > 23){
$tematn = substr($temat[2],0, 40);
$nazwa_tematu = ''.$tematn.'...';
}else{
$nazwa_tematu = $temat[2];
}
echo "> <a href='forum/showthread.php?tid=".$temat[0]."'><strong>".$nazwa_tematu."</strong> →</a><br>";
}?>


Nade wszystko, z pewnego forum webmasterskiego wykorzystałem zapytanie

Kod
SET NAMES utf8 COLLATE utf8_polish_ci


co dało *!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ , bez zmian - i tu niestety wysiadam. Wszystkie powyższe rozwiązania to po prostu kopia z innych forów. Nie znam się na tym zbytnio, a więc kieruję prośbę do Was o pomoc. Gdyby ktoś chciał jeszcze zobaczyć stronę 'live' to może to zrobić klikając tu.
ciekawskiii
Jak byk masz:
  1. mysql_query('SET CHARSET
  2. windows-1255');

zmien na
  1. mysql_query('SET CHARSET
  2. utf8');
askone
I dlatego właśnie jestem za wydzielaniem wszelkiego typu operacji na bazie do oddzielnego bytu. Wtedy poprawiasz coś w jednym miejscu i masz spokój. A tak to szukasz w każdym pliku i na 90% coś gdzieś pominiesz wink.gif

Pozdrawiam
venus
Najmocniej przepraszam. To, akurat był mój błąd. Po prostu umyślnie zmieniałem kodowanie odpowiadające za newsy i nie poprawiłem na forum. Teraz wszystko ma to samo kodowanie UTF-8 i jak widać, zmian nie ma. Tzn, nie wyświetlają się polskie znaki, gdyż są "ucięte". Live url -> klik
ciekawskiii
Bo teraz w bazie ucielo znaki z tamtego kodowania, to juz musisz raczej recznie poprawic i bedzie ok.
venus
Cytat(ciekawskiii @ 8.03.2011, 08:46:35 ) *
Bo teraz w bazie ucielo znaki z tamtego kodowania, to juz musisz raczej recznie poprawic i bedzie ok.


Troszkę nie rozumiem. Newsy wyciągam z forum jako posty. Forum w kodowaniu UTF-8, strona jak i to, co wyświetlam również, a więc w bazie danych powinienem mieć już post pisany w ów kodowaniu. A to, że miałem kodowanie windows to tyczyło się wyświetlania, a więc wątpię czy miałoby to związek z bazą danych. Napisałem przykładowego newsa z polskimi znakami. Można zobaczyć, że nawet nowo-powstały post, a raczej jego treść nie wyświetla polskich znaków (kliknij w tytuł newsa, aby zobaczyć treść posta).

Jeśli mogę prosić, to pragnę odświeżyć ów temat... Pozdrawiam.
AndyPSV
  1. mysql_query("SET NAMES utf8"); header('content-type:text/html;charset:utf-8');

wstawiasz ZARAZ po polaczeniu z baza danych
venus
Przepraszam, ale jakiś czas nie miałem dostępu do komputera. No cóż. Zastosowałem powyższą radę i niestety strona wywalała błędy, w której nawet "odkryło" dane do bazy danych MySQL, a więc również bez rozwiązania sad.gif

Podsyłam Wam oryginalny plik z indeksu. Tutaj jest kilka połączeń i wygrzebywania tabel z forum. Może coś się z czymś gryzie?

Kod
<?php
    $conn = @mysql_connect('localhost','user','pass')
        or die('Problem z polaczeniem do bazy danych: '.mysql_error());
    mysql_select_db('base');
?>
<!DOCTYPE html>
<head>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="./css/style.css">
<title>Nieoficjalny serwis klubu Venus Planet w Konecku</title>
<script type="text/javascript">
<!--
   function popup(url)
   {
     window.open(url,'index-playlist.htm','width=235,height=205');
   }
//-->
</script>
</head>
    

<body class="page-news">
<div id="content" class="container_24">

    <div id="header">
        <div id="logo" class="grid_6">
        <a href="#"><img src="./css/logo.png" alt="Nieoficjalny serwis klubu Venus Planet w Konecku" style="border: 0;"></a>
        </div>
        
        <!-- /logo -->
        <div id="nav" class="grid_16 push_1">
            <ul>

<li class="haschild"><a href="#">Serwis</a>
<ul class="children">
<li class="haschild"><a href="aktualnosci.html">Aktualności</a></li>
<li class="haschild"><a href="serwis-informacje.html">Informacje</a></li>
<li class="haschild"><a href="serwis-kontakt.html">Kontakt</a></li>
</ul>
</li>

            
            
<li class="haschild"><a href="#">Klub</a>
<ul class="children">
<li class="haschild">
<a href="klub-imprezy.html">Imprezy</a>
<ul class="children">
<li><a href="klub-imprezy-przyszle.html">Przyszłe</a></li>
<li><a href="klub-imprezy-archiwum.html">Archiwum</a></li>
</ul>
</li>

<li><a href="klub-informacje.html">Informacje</a></li>
<li><a href="klub-galeria.html">Galeria</a></li>
<li><a href="klub-sety.html">Sety</a></li>
<li><a href="klub-tracklisty.html">Tracklisty</a></li>
</ul>
</li>
            
<li class="haschild"><a href="#">Społeczność</a>
<ul class="children">
<li class="haschild"><a href="prywatnosc.html">Prywatność</a></li>
<li class="haschild"><a href="/forum/">Forum</a></li>
<li class="haschild"><a href="./forum/memberlist.php">Użytkownicy</a></li>
</ul>
</li>        
        
<li class="haschild"><a href="#">Konto</a>
<ul class="children">
<li><a href="./forum/member.php?action=login" target="blank">Logowanie</a></li>
<li class="haschild">
<a href="#">Edycja</a>
<ul class="children">
<li><a href="./forum/usercp.php?action=profile" target="blank">Dane</a></li>
<li><a href="./forum/private.php?fid=1" target="blank">Wiadomości</a></li>
<li><a href="./forum/usercp.php?action=options" target="blank">Ustawienia</a></li>
<li><a href="./forum/usercp.php?action=avatar" target="blank">Avatar</a></li>
<li><a href="./forum/usercp.php?action=password" target="blank">Hasło</a></li>
</ul>
<li><a href="rules.php" target="blank">Rejestracja</a></li>
</li>        
        


        







        

        </div><!-- /nav -->

        <div class="grid_9 hinfo">
            <h4>Najnowsze pliki</h4>
            
            
            

<?php

$link1 = @mysql_connect("localhost","user","pass") or die("Date base caput;>");
mysql_query('SET CHARSET utf8');
mysql_select_db("base");


$pytanie =  mysql_query('SELECT `tid` , `subject` , `fid` FROM `forum_threads` WHERE fid = "8" ORDER BY `dateline`  DESC LIMIT 0 , 3');
while($odp= mysql_fetch_array($pytanie)){

$topic = $odp['subject'];
$topic = str_replace('RE: ','',$topic);

echo '<li><a href="forum/showthread.php?tid='.$odp[tid].'">'.$topic.' ?</a></li>';
}

mysql_close($link1);
?>
            
            
            
        </div>
        <div class="grid_6 push_1 hinfo">
            <h4>Najciekawsze hity</h4>
            
            <object type="application/x-shockwave-flash" data="dewplayer-playlist.swf" width="240" height="20" id="dewplayer" name="dewplayer">    
    <param name="wmode" value="transparent" />
    <param name="movie" value="dewplayer-playlist.swf" />
    <param name="flashvars" value="play=true&showtime=true&autoplay=true&randomplay=1&autoreplay=1&xml=playlista.xml" />
</object>
<br />
<small><a href="java script:popup('index-playlist.htm')">Otwórz w oknie</a></small>
            

        </div>
        <div class="grid_6 push_2 userinfo hinfo">
        
        

        
        
    <h4>Najnowsze tracklisty</h4>
      <ul>
      
      
      
      
      
      
      <?php

$link1 = @mysql_connect("localhost","user","pass") or die("Date base caput;>");
mysql_query('SET CHARSET utf8');
mysql_select_db("base");


$pytanie =  mysql_query('SELECT `tid` , `subject` , `fid` FROM `forum_threads` WHERE fid = "9" ORDER BY `dateline`  DESC LIMIT 0 , 4');
while($odp= mysql_fetch_array($pytanie)){

$topic = $odp['subject'];
$topic = str_replace('RE: ','',$topic);

echo '<li><a href="forum/showthread.php?tid='.$odp[tid].'">'.$topic.' ?</a></li>';
}

mysql_close($link1);
?>
      
      
      
      
      
      
      

      </ul>
        </div><!-- /userinfo -->
    </div><!-- /header -->
    <div id="main" class="grid_24">


        <!-- /section -->



<div class="grid_12 alpha">




    <h2>Aktualności</h2>
    <div class="tbl-border latestnews">
    

    
    
    
    
    
    <?php
/*------------------------------*/
define("IN_MYBB", 1);
define("KILL_GLOBALS", 1);
define("NO_ONLINE", 1);
/*------------------------------*/
include("forum/inc/init.php");
/*------------------------------*/
$forumpath = $mybb->settings['bburl'];
require_once MYBB_ROOT."/inc/class_parser.php";
$parser = new postParser();

/*------------------------------*/
$connect = @mysql_connect("localhost", "user", "pass") or die ("Brak lacznosci z serwerem.");
mysql_query('SET CHARSET utf8');
mysql_select_db("base") or die ("Brak lacznosci z Baza Danych.");


$show_news = ("SELECT tid, replyto, fid, subject, uid, username, dateline, message, visible FROM forum_posts WHERE (fid = '4') AND (replyto = '0') ORDER BY tid DESC LIMIT 0,4");
$show_news_query = mysql_query($show_news) or die("Wystapil nieoczekiwany blad. Pracujemy nad tym. Przepraszamy i zapraszamy później.");

while($news = mysql_fetch_array($show_news_query))
{
$subject = $news[subject];
$message = $news[message];
$date_day = date("j", $news[dateline]);
$date_mounth = date("m", $news[dateline]);
$date_year = date("Y", $news[dateline]);
$time = date("H:i", $news['dateline']);
   switch ($date_mounth) {
         case '01': $date_mounth = 'Stycznia'; break;
         case '02': $date_mounth = 'Lutego'; break;
         case '03': $date_mounth = 'Marca'; break;
         case '04': $date_mounth = 'Kwietnia'; break;
         case '05': $date_mounth = 'Maja'; break;
         case '06': $date_mounth = 'Czerwca'; break;
         case '07': $date_mounth = 'Lipca'; break;
         case '08': $date_mounth = 'Sierpnia'; break;
         case '09': $date_mounth = 'Wrzesnia'; break;
         case '10': $date_mounth = 'Pazdziernika'; break;
         case '11': $date_mounth = 'Listopada'; break;
         case '12': $date_mounth = 'Grudnia'; break;
           default: $date_mounth = 'Blad!!!'; break;
       }
       echo "<div class='item'>";
echo "<h4 class='title'><a href='forum/showthread.php?tid=$news[tid]'>".$parser->parse_message($subject)."</a></h4>";
print (" <p class='meta'><small>Napisane ".$date_day." ".$date_mounth." ".$date_year." r. o godz. ".$time." przez <a href='forum/member.php?action=profile&uid=$news[uid]'><b>".$news[username]."</b></a>.</small></p> ");
print ("<p class='excerpt'></p><p>".$parser->parse_message($message)."</p>");
print ("</div>");

}
?>

    
    
    
</div>
</div>



<div id="addons" class="grid_12 omega">
    <h2>Ostatnio na forum</h2>
    

    
    <ul class="tbl-border latestnews" style="list-style:none">
        <li>
        <p>
<?php
$connect = @mysql_connect("localhost", "user", "pass") or die ("Brak lacznosci z serwerem.");
mysql_query('SET CHARSET utf8');
mysql_select_db("base") or die ("Brak lacznosci z Baza Danych.");

$tem = mysql_query("SELECT * FROM `forum_threads` ORDER BY `tid` DESC LIMIT 15");
while ($temat = mysql_fetch_row($tem)) {
if(strlen($temat[2]) > 23){
$tematn = substr($temat[2],0, 40);
$nazwa_tematu = ''.$tematn.'...';
}else{
$nazwa_tematu = $temat[2];
}
echo "> <a href='forum/showthread.php?tid=".$temat[0]."'><strong>".$nazwa_tematu."</strong> ?</a><br>";
}?>

</p>
    
    </li>
        </ul>
</div>
        <!-- /section -->
<!--sub_news_idx-->
            </div><!-- /main -->
</div><!-- /content -->

<div id="footer">
    <div class="container_24" style="padding-bottom:20px;">
                <div class="footer grid_4">
            <h3>Serwis</h3>
            <ul>
                <li><a href="#"><span>Aktualności</span></a></li>
                <li><a href="#"><span>Informacje</span></a></li>
                <li><a href="#"><span>Kontakt</span></a></li>
            </ul>
        </div>
        <div class="footer grid_4">
            <h3>Klub</h3>
            <ul>
                <li>Imprezy <a href="#"><span>Przyszłe</span></a></li>
                <li>Imprezy <a href="#"><span>Archiwum</span></a></li>
                <li><a href="#"><span>Informacje</span></a></li>
                <li><a href="#"><span>Galeria</span></a></li>
                <li><a href="#"><span>Download</span></a></li>
                <li><a href="#"><span>Tracklisty</span></a></li>
            </ul>
        </div>
        <div class="footer grid_4">
            <h3>Spoleczność</h3>
            <ul>
                <li><a href="#"><span>Prywatność</span></a></li>
                <li><a href="#"><span>Forum</span></a></li>
                <li><a href="#"><span>Użytkownicy</span></a></li>
            </ul>
        </div>

        <div id="subfooter" class="grid_24">
            <small style="padding:10px 0">Copyright by Venusplanet.xaa.pl 2009-2011 <b><a href="ver.html">v3.1</a></b> | Serwis nie jest oficjalnie zwiazany z klubem Venus Planet. Stanowi on tylko baze informacji na jego temat. <br /> Korzystajac z serwisu oswiadczasz, ze zapoznales sie z regulaminem naszej organizacji.</small>
        </div><!-- /subfooter -->
        <div class="clearfix"></div>
    </div>
</div>

</body></html>


Ponownie proszę o pomoc.

ref

Ponawiam prośbę o pomoc sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.