Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z polskimi znakami
Forum PHP.pl > Forum > Serwery WWW > Apache
Nosfi
Aby naświetlić sprawę zacznę od budowy systemu:

W bazie mamy tabelę LISTA,
a w niej kilka pól:
ID - int(10) auto_increment
NAME - text

zapisujemy dane:
  1. INSERT
  2. INTO `lista` VALUES (1, 'ala;ola;basia;kasia');
  3. INSERT
  4. INTO `lista` VALUES (2, 'łukasz;ewa;olek');
  5. INSERT
  6. INTO `lista` VALUES (3, 'beata;sławek;przemek');
  7. INSERT
  8. INTO `lista` VALUES (4, 'ula;piotrek');

listujemy to na stronie (według podania zmiennej list_id):
  1. <?php
  2.  
  3. $query = &#092;"SELECT * FROM lista\";
  4. $result = mysql_db_query($nazwa_bazy,$query);
  5. while($row = mysql_fetch_array($result)){
  6. $list_name = explode(&#092;";\",$row[\"name\"]);
  7. $list_tab = sizeof($list_name);
  8. echo '<b>' . $row[&#092;"id\"] . '</b><br>';
  9.  
  10. for($x = 1; $x <= $list_tab; $x++){
  11. echo $list_name[$x-1] . ' - <a href=\"?list_id=' . $row[&#092;"id\"] . '&name_value=' . $list_name[$x-1] . '\">USUŃ</a><br>';
  12. }
  13. echo '<hr>';
  14. }
  15.  
  16. ?>

narazie wszystko OK ...
teraz próbujemy usuwać poszczególne pozycje:
  1. <?php
  2.  
  3. if(!empty($name_value)){
  4. $query_del = &#092;"SELECT * FROM lista WHERE id = '$list_id'\";
  5. $result_del = mysql_db_query($nazwa_bazy,$query_del);
  6. $row_del = mysql_fetch_array($result_del);
  7.  
  8. $l_name_old = explode(&#092;";\",$row_del[\"name\"]);
  9. $index = array_search($name_value, $l_name_old);
  10. unset($l_name_old[ $index ]);
  11. $l_name_new = implode(&#092;";\",$l_name_old);
  12.  
  13. $query_upd = &#092;"UPDATE lista SET name = '$l_name_new' WHERE id = '$list_id'\";
  14. $result_upd = mysql_db_query($nazwa_bazy,$query_upd);
  15. }
  16.  
  17. ?>

i teraz problem ...

polega on na tym iż jeśli chcemy usunąć imię zawierające POLSKI ZNAK - nie ma szansy ...

pojawia mi się błąd:
Kod
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

w LOGu natomiast mam takie wpisy:
Kod
(22)Invalid argument: utf8 to ucs2 conversion failed on this string: REDIRECT_QUERY_STRING=list_id=3&name_value=s\xb3awek

[Wed Mar 30 17:39:10 2005] [error] [client 127.0.0.1] (22)Invalid argument: couldn't create child process: 22: php.exe, referer: http://localhost/test.php

[Wed Mar 30 17:39:11 2005] [error] [client 127.0.0.1] (22)Invalid argument: couldn't spawn child process: C:/php/php.exe, referer: http://localhost/test.php

na tym serwerku stoi:
APACHE 2.0.53
php 4.3.10
MySQL 4.0.24

Wszystko działa pięknie, poza tym jednym szczegółem z polskimi znakami ...

Pozdrowionka
Fo
a co masz w httpd.conf na temat :
AddDefaultCharset ?

sprawdz czy napewno masz tak :

AddDefaultCharset ISO-8859-2

albo czy wogole masz ta linijke, jak jej nie masz to ja tam wklep gdzies w konfigu sobie. ostatnio cos spotykam sie coraz czesciej z tym ze w httpd.conf nie ma adddefaultcharset....

to moze nie rozwiazac twojego problemu bo widze ze jest on natury czysto php, ale sprawdz na serwerze to co napisalem powyzej dla pewnosci...
Nosfi
niestety to nie pomaga ...

w httpd.conf i php.ini już robiłem takie przewroty, że sobie można je tylko wyobrazić biggrin.gif

doszedłęm do jednego ... po usunięciu apache'a 2.0.53 i instalacji wersji starszej (1.3.33) wszystko działa jak należy ...

Może ktoś wpadnie na pomysł jak to uruchomić pod wersją 2.0.XX ...
kasma
Miałem problemik z phpMyAdminem (The mbstring php extension was not found and you seem to be using multibyte charset.) - może Tobie ten manewr także pomoże smile.gif

Odremować linię w php.ini:
extension=php_mbstring.dll

Skopiować do C:\WINDOWS\system32 plik php_mbstring.dll z katalogu php ..\php\ext

Na końcu restarcik Apache.......

(Apache 2, php 5, winXP SP2)
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.