Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: brak polskich znaków po migracji
Forum PHP.pl > Forum > PHP
jason300
Witam mam takie problem po migracji z maszyny windows server 2003 na centosa przestały mi działać polskie znaki w jednym bardzo ważnym skrypcie ze strukturą , który łączy sięz bazą danych poprzez odbc_connect jak wiadomo to trochę inaczej wygląda na centosie z racji na inny driver w związku z powyższym musiałem zmienić connect string z

$conn = odbc_connect("Charset=cp1250;DRIVER={MySQL ODBC 5.1 Driver};ServerName=127.0.0.1;Database=db;uid=root;pwd=123;CommLinks=tcpip(Host=1
27.0.0.1;port=3306)","root","123");

na wersję gdzie zamiast charset = jest nazwa data-source w tym przypadku mysqlBaza i wyrzuciłem też nazwę drivera reszta pozostała nietknięta tak jak parametry bazy danych i połączenia z serwerem (w bazie danych nie ma krzaków tylko normalne znaki więc wnioskuję że problem jest z połączeniem na linii baza-strona) a poniżej cały skrypt .
Czy mógłbym prosić o pomoc w sprawie tego jak w najłatwiejszy sposób sprawić żeby polskie znaki zaczęły działać i tym samym uruchamiało się to na IE bo to jest kluczowa sprawa a w tej chwili uruchamia się na wszystkich innych przeglądarkach ale z krzakami a na IE wcale puste pole w tym miejscu.

problem występuje w tej części

  1. <?
  2.  
  3. header("Expires: Mon, 26 Jul 1998 01:00:00 GMT"); // Date in the past
  4. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
  5. header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
  6. header("Pragma: no-cache"); // HTTP/1.0 // sleep(2);
  7.  
  8. $input = $_GET['input'];
  9. $len = strlen($input);
  10. $limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 0;
  11. $res_t = array();
  12. $count = 0;
  13.  
  14. include ('inc.func.php');$conn = dbconnect();
  15. if ($len or 1) {
  16. #$input = mysql_escape_string(trim(strip_tags(($input))));
  17. #$input = iso2cp(mb_strtolower(mb_convert_encoding ($input, "iso-8859-2", "utf-8"), "iso-8859-2"));
  18. $input=iconv("windows-1250","utf-8",$input);
  19. //echo $input; die();
  20. $q0 = "select count(*) as cnt
  21. from employee
  22. inner join employeeunit on employee.id = employeeunit.employee_id
  23. inner join unit on employeeunit.unit_id = unit.id
  24. left join position on unit.departament = position.id
  25. where length(employee.photourlsuffix)>4 limit 1";
  26.  
  27. $res = get_all_rows($q0);
  28. $count = $res[0]['cnt']; //echo "z";die ();
  29. //error_log ($count);
  30. do {
  31. $randlimit = mt_rand(1,$count); //echo ($randlimit);
  32. //error_log($randlimit);
  33. $q = "select *, employee.photourlsuffix as ephoto,unit.name as unit__name, unit.id as unit__id,
  34. db.getunitroot_company_id(unit.id) as spolka, employee.id as employee__id,
  35. position.floor as depfloor, position.filename as depfilename, position.name as depname
  36. from employee
  37. inner join employeeunit on employee.id = employeeunit.employee_id
  38. inner join unit on employeeunit.unit_id = unit.id
  39. left join position on unit.departament = position.id
  40. where length(employee.photourlsuffix)>4 limit ".$randlimit.",1"
  41.  
  42. // jak wylosuje z niefunkcjonalnej losowac jeszcz eraz
  43. // estructuredb.getunitroot_company_id(unit.id) as spolka
  44. //$q.="group by employee.id order by lastname, firstname limit 100";
  45. $res=get_all_rows($q);// print_R($res);
  46. } while ($res[0]['spolka'] <> 2184);
  47. odbc_close($conn);
  48. for ($i=0;$i<count($res);$i++) {
  49. #if (strtolower(substr(utf8_decode($aUsers[$i]),0,$len)) == $input) #{
  50. $count++;
  51. $res[$i]['firstname'] = win2utf($res[$i]['firstname']);
  52. $res[$i]['lastname'] = win2utf($res[$i]['lastname']);//.' '.$res[$i]['spolka'];
  53. $res[$i]['unit__name'] = win2utf($res[$i]['unit__name']);
  54. $res[$i]['iconurlsuffix'] = win2utf($res[$i]['iconurlsuffix']);
  55. $res[$i]['ephoto'] = win2utf($res[$i]['ephoto']);
  56. $res[$i]['stanowisko'] = substr(win2utf($res[$i]['stanowisko']),0,80);
  57.  
  58. //echo '<pre>';print_r($res[$i]);
  59. //die();
  60. if (strlen($res[$i]['telephone'])>2) $tel = "".$res[$i]['telephone'].""; else $tel="";
  61. if (strlen($res[$i]['mobile'])>6) $mobile = ", ".$res[$i]['mobile']; else $mobile="";
  62. $contact = $tel."".$mobile;
  63. if ($res[$i]['depfloor'] > 1 )
  64. $floor = $res[$i]['depfloor'];
  65. elseif ($res[$i]['floor'])
  66. $floor = $res[$i]['floor'];
  67. else
  68. $floor = "";
  69. $res_t[] = array(
  70. "eid" => $res[$i]['employee_id'],
  71. "uid" => $res[$i]['unit__id'],
  72. "name" => ($res[$i]['firstname'].' '.$res[$i]['lastname']),
  73. "contact" => htmlspecialchars($contact),
  74. "floor" => htmlspecialchars($floor),
  75.  
  76. "stanowisko" => htmlspecialchars($res[$i]['unit__name']),
  77.  
  78. "iconurl" => htmlspecialchars($res[$i]['iconurlsuffix']),
  79.  
  80. "photourl" => htmlspecialchars($res[$i]['ephoto']),
  81.  
  82. );
  83.  
  84. #}
  85.  
  86. //echo "<img src='/foto/".$res[$i]['ephoto']."'>";
  87.  
  88. if ($limit && $count==$limit)
  89.  
  90. break;
  91.  
  92. }
  93.  
  94. }
  95.  
  96. //sleep(1);
  97.  
  98. if (isset($_REQUEST['json'])){}
  99.  
  100. //echo '<pre>';print_r($res_t);
  101.  
  102. $l = $res_t[0];
  103.  
  104. //print_r($l);
  105.  
  106. if ($floor) $txtfloor = win2utf(", {$l['floor']} piętro");
  107.  
  108. echo <<<EOD
  109.  
  110. <div class="kjkblok" style="margin:0px;font-size:10px;text-align:center" >
  111.  
  112. <a href="/kim/forma?uid={$l['uid']}"><img src="/foto/{$l['photourl']}" style=""/></a>
  113.  
  114. <br>
  115.  
  116. <span style="color:#103184;">{$l['name']}</span>
  117.  
  118. <div style="border-top:1px solid gainsboro;text-align:center">
  119.  
  120. <span class="blok_stanowisko" style="color:gray">{$l['stanowisko']}{$txtfloor}</span>
  121.  
  122. <br style="clear:both"/>
  123.  
  124. </div>
  125.  
  126. </div>
  127. EOD;
  128.  
  129. //odbc_close($conn);
  130.  
  131. ?>
memory
win2utf co to za funkcja?
jason300
  1. <?php
  2. function get_all_rows ($q) {
  3. global $conn;
  4. $rows=array();
  5. $result = odbc_exec ($conn, $q);
  6. if ($result) {
  7. while ($row = odbc_fetch_array($result))
  8. $rows[]=$row;
  9. odbc_free_result($result);
  10. return $rows;
  11. }
  12. return "";
  13. }
  14. function dbconnect() {
  15. global $conn;
  16. $conn = odbc_connect(tu jest connect string ) ;
  17.  
  18.  
  19. if( ! $conn )
  20. die ("Connection failed\n");
  21. return $conn;
  22. }
  23. function cp2iso($tekst) {
  24. return iconv("windows-1250", "ISO-8859-2", $tekst);
  25. }
  26. function iso2cp($tekst) {
  27. return iconv("ISO-8859-2", "windows-1250", $tekst);
  28. }
  29. function win2utf ($t) {
  30. $t=iconv("windows-1250","utf-8",$t);
  31. return $t;
  32. }
  33. function utf2win ($t) {
  34. //return iconv("ISO-8859-2","windows-1250",mb_convert_encoding($t,"iso-8859-2", "UTF-8"));
  35. return iconv("utf-8","windows-1250",$t);
  36. }
  37. ?>


tak to wygląda w pliku inc.func.php' , który jest zaincludowany w tym powyżej
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.