Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Brak polskich znaków na stronie
Forum PHP.pl > Forum > Przedszkole
shemko
Witam, mam pewien dziwny problem. Stworzyłem stronę na zasadzie modułów tj.:
w głównym katalogu strony mam plik "index.php" z którego odnośniki prowadzą do folderów podstron za pomocą:
  1. <a href="../podstrona/">link</a>

Dzięki temu w okienku adresu strony w przeglądarce nie widać rozszerzeń .php, tylko nazwy katalogów.


Index.php oraz każda podstrona.php składa się się ze złożonych modułów (np. header, footer, menu itd. ) wywoływanych komendą:
  1. <?php require("../modules/nazwa modułu.php"); ?>

Dzięki temu, kiedy będę musiał coś zmienić, edytuję tylko dany moduł a nie kod w każdej z podstron.


Problem pojawia się na kodowaniu polskich znaków. Próbowałem już chyba wszyskiego: pliki zapisane w formacie utf-8 bez BOM, kodowania w meta na utf-8 lub windows-1250, ale nic nie skutkuje.

Kiedy ustawiam kodowanie w meta na utf-8 moduły wczytywane komendą: "include" zamiast polskich znaków zawierają pytajniki a kod pisany bezpośrednio w podstronie wyświetla się poprawnie. Kiedy ustawię kodowanie na windows-1250 jest na odwrót. Moduły wczytywane za pomocą "include" wczytują się z polskimi znakami a treść podstrony już nie.

Czy jest na to jakiś sposób, czy powinienem treść podstron wczytywać też jako oddzielny moduł? Dla przykładu strona "kontakt.php" wyświetla polskie znaki w ten sposób.

moduł header.php:
  1. <meta http-equiv="Content-Type" content="text/html;charset=windows-1250">
  2. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  3. <meta name="title" content="Oeconomus" />
  4. <meta name="description" content="Oeconomus - kredyty, szkolenia i finanse" />
  5. <title>Oeconomus</title>
  6. <link rel="shortcut icon" href="../images/favicon.ico">
  7. <link href="../css/style.css" rel="stylesheet" type="text/css" />
  8. <link href="../css/slide.css" rel="stylesheet" type="text/css" />
  9. <script type="text/javascript" src="../js/jquery-1.10.1.js"></script>
  10. <script type="text/javascript" src="../js/easySlider1.7.js"></script>


podstrona kontakt.php:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  5. <?php require("../modules/header.php"); ?>
  6. </head>
  7.  
  8.  
  9. <?php require("../modules/top_main.php"); ?>
  10.  
  11. <div class="main_frame2">
  12.  
  13. Kontakt:<br><br>
  14. polskie znaki: ąęćóżźś
  15.  
  16. </div>
  17.  
  18. <?php require("../modules/menu_bottom.php"); ?>
  19.  
  20. <?php require("../modules/footer.php"); ?>
  21.  
  22. </body>
  23. </html>
Turson
Jeżeli masz 1 główny plik (szkielet) a resztę includujesz, w tym pliku ustaw kodowanie UTF-8 bez BOM oraz
  1. <!DOCTYPE html>
  2. <meta charset="UTF-8">
  3. </head>
  4. ęąśłżźć
  5. </html>


Poza tym zobacz jak działa ModRewrite zamiast tworzyć katalogi dla ładnych linków facepalmxd.gif
shemko
ustawiłem w ten sposób:

header.php:
  1. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  2. <meta name="title" content="Oeconomus" />
  3. <meta name="description" content="Oeconomus - kredyty, szkolenia i finanse" />
  4. <title>Oeconomus</title>
  5. <link rel="shortcut icon" href="../images/favicon.ico">
  6. <link href="../css/style.css" rel="stylesheet" type="text/css" />
  7. <link href="../css/slide.css" rel="stylesheet" type="text/css" />
  8. <script type="text/javascript" src="../js/jquery-1.10.1.js"></script>
  9. <script type="text/javascript" src="../js/easySlider1.7.js"></script>


kontakt.php:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  5. <meta charset="UTF-8">
  6. <?php require("../modules/header.php"); ?>
  7. </head>
  8.  
  9.  
  10. <?php require("../modules/top_main.php"); ?>
  11.  
  12. <div class="main_frame2">
  13.  
  14. Kontakt:<br><br>
  15. polskie znaki: ąęćóżźś
  16.  
  17. </div>
  18.  
  19. <?php require("../modules/menu_bottom.php"); ?>
  20.  
  21. <?php require("../modules/footer.php"); ?>
  22.  
  23. </body>
  24. </html>


I jest podobnie jak opisywałem wcześniej. (link do pliku kontakt.php)

Dzięki za ModRewrite, już czytam o tym.

oraz kiedy mam plik .htaacess:
  1. <Files ~ "^\.(htaccess|htpasswd)$">
  2. deny from all
  3. </Files>
  4. Options -Indexes
  5. DirectoryIndex index.php
  6. order deny,allow


jak dopisać:
  1. RewriteEngine on
  2. RewriteRule ^oferta$ /oferta.php

Tak aby nie pokazywało adresu "oferta.php" tylko "/oferta/" ?
Turson
Kod
    RewriteEngine on
    RewriteRule ^oferta$ /oferta.php [L]


http://oeconomus.pl/kontakt/
nie widzę tutaj żebyś ustawił jakikolwiek charset
shemko
tak, dopiero teraz ustawiłem. Ale nadal nie działa. Pliki includowane pliki php wczytuje bez polskich znaków (pytajniki w rąbach).
MrCoody
zapewne format znaków dokumentu masz ustawione na ASCI a nie na UTF-8 tongue.gif

w Notepad++ możesz ustawić to poprzez Format -> Koduj w UTF-8 (bez BOM) biggrin.gif
ustaw tak we wszystkich dokumentach :}

Powinno pomóc,
z poważaniem Hubert
shemko
Pracuje w notepad++, kodowanie mam ustawione na utf-8 bez bom. Nie wiem co jeszcze robie nie tak :/
MrCoody
Ustawić kodowanie PHP np: poprzez ustawienie w pliku .httacces php_value default_charset UTF-8

lub inne http://lukasz.dc2.pl/kodowanie-stron-html-...polskich-liter/

biggrin.gif
shemko
Odpuściłem mieszanie treści strony w html z modułami w php i wszystko teraz w plikach bazowych wczytuję za pomocą php. Treści podstron wsadziłem do modułów. W sumie bez różnicy w działaniu a już nie miałem siły dochodzić co robię źle biggrin.gif Dziękuje wszystkich serdecznie za pomoc. Pozdrawiam
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.