Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]UTF-8 - Niedziałające skrypty PHP
Forum PHP.pl > Forum > Przedszkole
ebate
Mam edytor tekstowy, który ma możliwość kodowania w UTF-8. Gdy zmieniam z ANSI na UTF-8 skrypty php przestają mi działać.

Oto przykład:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4.  
  5. <head>
  6.  
  7. <link rel="Stylesheet" type="text/css" href="styl.css" title="Styl" />
  8.  
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  10.  
  11. <meta name="Description" content="Tu wpisz opis zawarto?ci strony" />
  12.  
  13. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  14.  
  15. <title>Strona główna</title>
  16.  
  17. </head>
  18.  
  19. <body>
  20.  
  21. <div id=naglowek>
  22.  
  23. <div id=logo>
  24.  
  25. LOGO
  26.  
  27. </div>
  28.  
  29. </div>
  30.  
  31. <?php
  32.  
  33.  
  34. require('conn.php');
  35.  
  36. $oldR = isset($_SESSION['zmienna_do_zdjec']) ? $_SESSION['zmienna_do_zdjec'] : '';
  37.  
  38. $_SESSION['zmienna_do_zdjec'] = time() + mt_rand(1000000,9999999);
  39.  
  40. $wykonaj=mysql_query("SELECT * FROM user WHERE plec='meżczyzna' ORDER BY rand() limit 1")or die(mysql_error());
  41.  
  42. $wiersz = mysql_fetch_array($wykonaj);
  43.  
  44.  
  45.  
  46. $wykonaj1=mysql_query("SELECT * FROM user WHERE plec='meżczyzna' ORDER BY rand() limit 1")or die(mysql_error());
  47.  
  48. $wiersz1 = mysql_fetch_array($wykonaj1);
  49.  
  50.  
  51.  
  52. echo '<a href=glosowaniem.php?pierwszy=1&wyg='.$wiersz['sciezka'].'&prze='.$wiersz1['sciezka'].'&r='.$_SESSION['zmienna_do_zdjec'].'><img height="200" width="175" src="'.$wiersz['sciezka'].'"/></a>';
  53.  
  54. echo '<a href=glosowaniem.php?drugi=1&wyg='.$wiersz['sciezka'].'&prze='.$wiersz1['sciezka'].'&r='.$_SESSION['zmienna_do_zdjec'].'><img height="200" width="175" name="przycisk" src="'.$wiersz1['sciezka'].'"/></a>';
  55.  
  56. if(isset($_GET['pierwszy']) && isset($_GET['r']) && $_GET['r'] == $oldR)
  57.  
  58. {
  59.  
  60. mysql_query("UPDATE user SET wygrana=wygrana+1 WHERE sciezka='".$_GET['wyg']."'")or die(mysql_error());
  61.  
  62. mysql_query("UPDATE user SET przegrana=przegrana+1 WHERE sciezka='".$_GET['prze']."'")or die(mysql_error());
  63.  
  64. }
  65.  
  66. if(isset($_GET['drugi']) && isset($_GET['r']) && $_GET['r'] == $oldR)
  67.  
  68. {
  69.  
  70. mysql_query("UPDATE user SET wygrana=wygrana+1 WHERE sciezka='".$_GET['prze']."'") or die(mysql_error());
  71.  
  72. mysql_query("UPDATE user SET przegrana=przegrana+1 WHERE sciezka='".$_GET['wyg']."'")or die(mysql_error());
  73.  
  74. }
  75.  
  76. ?>
  77.  
  78. </body>
  79.  
  80. </html>


Przy ANSI wszystko jest ok, leczy gdy zmieniam na UTF-8 to zdjęcia źle sie wyświetlają(małe prostokąty).

W innym skrypcie mam tabele wyświetlająca dane z tabeli (pętla while). W przypadki UTF-8 nic nie wyświetla, jedynie początkowe ramy tabeli.
nospor
Masz to gdzieś wystawione online?

ps: sprawdź źródło strony w przeglądarce i zobacz co ci wygenerował kod php
ebate
ANSI:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4.  
  5. <head>
  6.  
  7. <link rel="Stylesheet" type="text/css" href="styl.css" title="Styl" />
  8.  
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  10.  
  11. <meta name="Description" content="Tu wpisz opis zawarto?ci strony" />
  12.  
  13. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  14.  
  15. <title>Strona g��wna</title>
  16.  
  17.  
  18. </head>
  19.  
  20. <body>
  21.  
  22. <div id=naglowek>
  23.  
  24. <div id=logo>
  25.  
  26. LOGO
  27.  
  28. </div>
  29.  
  30. </div>
  31.  
  32.  
  33.  
  34. <a href=glosowaniem.php?pierwszy=1&wyg=pliki/d.jpg&prze=pliki/c.jpg&r=1330043491><img height="200" width="175" src="pliki/d.jpg"/></a><a href=glosowaniem.php?drugi=1&wyg=pliki/d.jpg&prze=pliki/c.jpg&r=1330043491><img height="200" width="175" name="przycisk" src="pliki/c.jpg"/></a>
  35. </body>
  36.  
  37. </html>


UTF-8:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4.  
  5. <head>
  6.  
  7. <link rel="Stylesheet" type="text/css" href="styl.css" title="Styl" />
  8.  
  9. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  10.  
  11. <meta name="Description" content="Tu wpisz opis zawarto?ci strony" />
  12.  
  13. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  14.  
  15. <title>Strona główna</title>
  16.  
  17.  
  18. </head>
  19.  
  20. <body>
  21.  
  22. <div id=naglowek>
  23.  
  24. <div id=logo>
  25.  
  26. LOGO
  27.  
  28. </div>
  29.  
  30. </div>
  31.  
  32.  
  33.  
  34. <a href=glosowaniem.php?pierwszy=1&wyg=&prze=&r=1328452353><img height="200" width="175" src=""/></a><a href=glosowaniem.php?drugi=1&wyg=&prze=&r=1328452353><img height="200" width="175" name="przycisk" src=""/></a>
  35. </body>
  36.  
  37. </html>


A strone odpalam przez serwer postawiony na moim komputerze (xampp)
nospor
Jak widać src="" czyli dane z bazy ci się nie pobierają.
Skoro die(mysql_error()) nie zwraca ci błędu zapytania, znaczy że warunek plec='meżczyzna' nie jest spełniony. Zapewne chodzi o tekst "meżczyzna" który w kodowaniu utf8 nie pasuje.

Co to w ogołe za pomysł jako płec pisać meżczyzna kobieta? Do tego uzywa sie 0 oraz 1, ewentualnie enum, ewentualnie m or k smile.gif
ebate
W końcu musiało to nastąpić. Już wielu mi pisało żeby to zmienił ale myślałem, że nie będzie to konieczne. A jednak...

Biorę się za zmiany, a co do tematu to Dzięki za pomoc.
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.