Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Polskie znaki mysql vs php
hiper0007
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 6.06.2016

Ostrzeżenie: (0%)
-----


Witam!

Sprawa jest pewnie błacha ale juz brak mi pomysłow

dokument index.php (koowanie UTF-8-bez BOM)

phpmyadmin

Sortowanie połączenie z serwerem: UFT8mb4-polish_ci

baza daynych: uft8_polish_ci

tabela: uft8_polish_ci

struktura tabeli: kazde pole edytowane na: uft8_polish_ci

pole tytul:

phpmyadmin:brak polskich znaków (dodane przez formularz php)

strona: polskie znaki występują

pole tresc:

phpmyadmin: polskie znaki wystepują (oprócz litery ó)

strona: brak polskich znaków znaki ?

Po dołączeniu do skryptu php linijki

$polaczenie->set_charset("utf8");

pole tresc;


powoduje iż w bazie mam polskie znaki (oprócz ó) , a w tresci na stronie mam wszystkie polskie znakiw tym ó.

pole tytul;

Nie mam polskich znaków ani tu ani tu a w bazie jest w ten sam sposob ustawione utf8_polish_ci
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Może pośpieszyłem się z radą. Ale nie zapytałem się czy dane które wprowadzałeś do bazy były na kodowaniu UTF-8 czy może innym?

Bo ja kiedyś też zrobiłem tak że poprzestawiałem gdzie się da kodowanie na UTF-8, ale i tak miałem krzaki. Dopiero otwarcie połączenia na poprzednim kodowaniu i przekazanie wartości 1:1 do drugiego połączenia, zapisało kontent w bazie z prawidłowym kodowaniem,
Go to the top of the page
+Quote Post
hiper0007
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 6.06.2016

Ostrzeżenie: (0%)
-----


Cytat(Tomplus @ 28.12.2016, 17:55:58 ) *
Może pośpieszyłem się z radą. Ale nie zapytałem się czy dane które wprowadzałeś do bazy były na kodowaniu UTF-8 czy może innym?

Bo ja kiedyś też zrobiłem tak że poprzestawiałem gdzie się da kodowanie na UTF-8, ale i tak miałem krzaki. Dopiero otwarcie połączenia na poprzednim kodowaniu i przekazanie wartości 1:1 do drugiego połączenia, zapisało kontent w bazie z prawidłowym kodowaniem,


To jest skrypt dodawania nowego tematu

  1.  
  2. require_once "connect.php";
  3. mysqli_report(MYSQLI_REPORT_STRICT);
  4.  
  5. try
  6. {
  7. $polaczenie = new mysqli($host, $db_login, $db_pass, $db_name);
  8. if ($polaczenie->connect_errno!=0)
  9. {
  10. throw new Exception(mysqli_connect_errno());
  11. }
  12. else
  13. {
  14.  
  15.  
  16. $tytul=$_POST['tytul'];
  17. $tresc=$_POST['tresc'];
  18. $datat=date('d-m-Y H:i');
  19. $datate="";
  20. $kod=md5(mt_rand());
  21. $editt=md5(mt_rand());
  22. $closet=md5(mt_rand());
  23. $podzial="sh0";
  24. $views=0;
  25. $punkty=2;
  26. $status='open';
  27. $login=$_SESSION['login'];
  28. $complete='<i class="icon-lock-open"></i>';
  29.  
  30.  
  31. $tytul=htmlentities(trim($tytul),ENT_QUOTES,"UTF-8");
  32. $tresc=htmlentities(trim($tresc),ENT_QUOTES,"UTF-8");
  33.  
  34. //Udana walidacja? Załóżmy, że tak!
  35.  
  36. $wszystko_OK=true;
  37.  
  38.  
  39. //Sprawdzenie poprawności pola Temat
  40.  
  41.  
  42. if((strlen($_POST['tytul'])<10)||(strlen($_POST['tytul'])>100))
  43. {
  44. $wszystko_OK=false;
  45. $_SESSION['blad1']="Temat min. 10 znaków max. 100 znaków!";
  46.  
  47.  
  48. }
  49.  
  50.  
  51. if(empty($_POST['tytul']))
  52. {
  53. $wszystko_OK=false;
  54. $_SESSION['blad1']="Proszę wypełnić pole Temat!";
  55.  
  56. }
  57.  
  58. if((strlen($_POST['tresc'])<10)||(strlen($_POST['tresc'])>1000))
  59. {
  60. $wszystko_OK=false;
  61. $_SESSION['blad2']="Wiadomość min. 10 znaków max. 1000 znaków!";
  62.  
  63.  
  64. }
  65.  
  66.  
  67. if(empty($_POST['tresc']))
  68. {
  69. $wszystko_OK=false;
  70. $_SESSION['blad2']="Proszę wypełnić pole Wiadomość!";
  71.  
  72. }
  73.  
  74. //Zapamiętywanie danych
  75.  
  76.  
  77. $_SESSION['zp_tytul']=$tytul;
  78. $_SESSION['zp_tresc']=$tresc;
  79.  
  80.  
  81. if ($wszystko_OK==true)
  82. {
  83.  
  84. if($polaczenie->query(sprintf("INSERT INTO topic VALUES(NULL,'%s' , '%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",mysqli_real_escape_string($polaczenie,$tytul),mysqli_real_escape_string($polaczenie,$tresc),mysqli_real_escape_string($polaczenie,$datat),mysqli_real_escape_string($polaczenie,$datate),mysqli_real_escape_string($polaczenie,$podzial),mysqli_real_escape_string($polaczenie,$kod),mysqli_real_escape_string($polaczenie,$editt),mysqli_real_escape_string($polaczenie,$closet),mysqli_real_escape_string($polaczenie,$views),mysqli_real_escape_string($polaczenie,$punkty),mysqli_real_escape_string($polaczenie,$complete),mysqli_real_escape_string($polaczenie,$status),mysqli_real_escape_string($polaczenie,$_SESSION['idu']))))
  85. {
  86.  
  87.  
  88.  
  89. // Usuwanie zmiennych sesyjnych zapamietujacych dane w formularzu
  90.  
  91. if(isset($_SESSION['zp_tytul'])) unset($_SESSION['zp_tytul']);
  92. if(isset($_SESSION['zp_tresc'])) unset($_SESSION['zp_tresc']);
  93.  
  94. // usuwanie zmienny informujacych o bledzie
  95. if(isset($_SESSION['blad1'])) unset($_SESSION['blad1']);
  96. if(isset($_SESSION['blad2'])) unset($_SESSION['blad2']);
  97.  
  98.  
  99. $_SESSION['finish1']="Temat został dodany! Dziękujemy!";
  100.  
  101.  
  102.  
  103. }else{
  104.  
  105. throw new Exception($polaczenie->error);
  106. }
  107.  
  108.  
  109. }
  110.  
  111. $polaczenie->close();
  112. }
  113.  
  114. }
  115. catch(Exception $e)
  116. {
  117. //echo '<br />Informacja developerska: '.$e;
  118. $_SESSION['serwer']="Błąd serwera! Przepraszamy za utrudnienia i prosimy o dodanie tematu w innym terminie.";
  119. header('Location:serwer.php');
  120. }
  121.  


gdzie umieścić informacje o kodowaniu utf-8

Ten post edytował hiper0007 28.12.2016, 23:36:07
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 08:10