Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Brak polskich znaków w formularzu
kiepski96
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 22.02.2010

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


Mam formularz rejestracyjny. Plik z nim zakodowany jest w utf bez bom. W bazie danych jest format utf 8 general ci

Niestety mimo tego w bazie nie widać pl znaków..

  1. <div class="formularz">
  2. <form class="form" action="index.php" method="post">
  3. <input type="hidden" name="wyslane" value="TRUE" />
  4.  
  5. <p>
  6. <div class="label"></div>
  7. <input type="text" name="nazwisko" id="nazwisko" value="Imię i nazwisko" onfocus="if(this.value==this.defaultValue)this.value=''" />
  8. </p>
  9.  
  10. <p>
  11. <div class="label"></div>
  12. <input type="text" name="email" id="email" value="Twój Email" onfocus="if(this.value==this.defaultValue)this.value='' " />
  13. </p>
  14.  
  15. KONIEC;
  16. echo '<div class="recaptcha">';
  17. echo recaptcha_get_html($publickey); // wyświetlanie reCAPTCHA
  18. echo '</div>';
  19. echo <<< KONIEC
  20.   <p class="submit">
  21.   <input type="submit" value="dasdsa!" />
  22.   </p></form>
  23. KONIEC;
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
matiit
post
Post #2





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Jeśli w bazie nie widać polskich znaków... to może pokaż jak dodajesz coś do bazy danych, jak ustanawiasz połączenie.

Co nam po widoku formularza?
Go to the top of the page
+Quote Post
kiepski96
post
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 22.02.2010

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


Proszę, oto cały form:

  1. <?php
  2.  
  3. if (!isset($_SESSION['login'])) { // dostęp dla zalogowanego użytkownika
  4.  
  5. include 'inc/db.php'; // połączenie się z bazą danych
  6. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  7. include 'inc/recaptchalib.php'; // dołączenie modułu reCAPTCHA
  8. $privatekey = "dasp"; // prywatny klucz reCAPTCHA
  9. $publickey = "das"; // publiczny klucz reCAPTCHA
  10.  
  11. if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  12.  
  13. // filtrowanie treści wprowadzonych przez użytkownika
  14. $login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
  15. $haslo = $_POST["haslo"];
  16. $haslo2 = $_POST["haslo2"];
  17. $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
  18. $email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);
  19. $imie = htmlspecialchars(addslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
  20. $nazwisko = htmlspecialchars(addslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
  21. $resp = recaptcha_check_answer ($privatekey,
  22. $_SERVER["REMOTE_ADDR"],
  23. $_POST["recaptcha_challenge_field"],
  24. $_POST["recaptcha_response_field"]);
  25.  
  26. // system sprawdza czy prawidło zostały wprowadzone dane
  27. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  28. $blad++;
  29. echo '<span class="blad" style="margin-left:70px; color:#FF0000" >Proszę wprowadzić poprawnie adres email. <br /> </span>';
  30. } else {
  31. $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
  32. if (mysql_num_rows($wynik) <> 0) {
  33. $blad++;
  34. echo '<span class="blad" style="color:#FF0000" >Podany adres e-mail jest już zajęty.<br /> </span>';
  35. }
  36. }
  37. if (!$resp->is_valid) {
  38. $error = $resp->error;
  39. echo '<span class="blad" style="color:#FF0000" >Proszę wpisać poprawnie wyrazy z obrazka.</span>';
  40. $blad++;
  41. }
  42.  
  43. // jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
  44. if ($blad == 0) {
  45.  
  46. $haslo = md5($haslo); // zaszyfrowanie hasla
  47. $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika
  48.  
  49. $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$imie', '$nazwisko', '$login', '$haslo', '$email', '$kod', NOW(), '')");
  50. if ($wynik) {
  51. $header .= "Content-type: text/plain; charset=utf-8\r\n";
  52. $list = "Witaj $nazwisko !
  53. Kliknij w poniższy link, aby potwierdzidas. http://www.hgfhgfpl/weryfikacja.ph...#036;kod";
  54. mail($email, "dassanie !", $list, "From: <kontakt@dsada.pl>");
  55. echo '<br /> <p style="color:#FF0000">Dziękujemydas! W ciągu nabliższych 5 minut dostaniesz wiadomość e-mail z linkiem potwierdziającym, który musisz kliknąć !</p> <br /> <br /> ';
  56. mysql_close($polaczenie);
  57. }
  58. }
  59. mysql_close($polaczenie);
  60. }
  61.  
  62. // tworzenie formularza HTML
  63. echo <<< KONIEC
  64.  
  65.   <div class="formularz">
  66.   <form class="form" action="index.php" accept-charset="utf-8" method="post">
  67.   <input type="hidden" name="wyslane" value="TRUE" />
  68.  
  69. <p>
  70. <div class="label"></div>
  71. <input type="text" name="nazwisko" id="nazwisko" value="Imię i nazwisko" onfocus="if(this.value==this.defaultValue)this.value=''" />
  72. </p>
  73.  
  74. <p>
  75. <div class="label"></div>
  76. <input type="text" name="email" id="email" value="Twój Email" onfocus="if(this.value==this.defaultValue)this.value='' " />
  77. </p>
  78.  
  79. KONIEC;
  80. echo '<div class="recaptcha">';
  81. echo recaptcha_get_html($publickey); // wyświetlanie reCAPTCHA
  82. echo '</div>';
  83. echo <<< KONIEC
  84.   <p class="submit">
  85.   <input type="submit" value="Podpisz petycję !" />
  86.   </p></form>
  87. KONIEC;
  88.  
  89. } else {
  90. header('Location: /index.php');
  91. }
  92. ?>
  93.  
  94. <?php
  95.  
  96. // dane do połączenia z bazą MySQL
  97. $mysql_host = 'localhost';
  98. $mysql_login = 'fdsd';
  99. $mysql_haslo = 'fdsds';
  100. $mysql_baza = 'fff';
  101.  
  102. // połączenie z bazą danych
  103. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('Błąd: nie udało się nawiązać połączenia z bazą danych.');
  104.  
  105. // połączenie ze schematem bazy danych
  106. mysql_select_db($mysql_baza) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  107.  
  108. ?>


Ten post edytował kiepski96 22.04.2013, 13:42:25
Go to the top of the page
+Quote Post
matiit
post
Post #4





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


  1. <?php
  2.  
  3. // dane do połączenia z bazą MySQL
  4. $mysql_host = 'localhost';
  5. $mysql_login = 'fdsd';
  6. $mysql_haslo = 'fdsds';
  7. $mysql_baza = 'fff';
  8.  
  9. // połączenie z bazą danych
  10. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('Błąd: nie udało się nawiązać połączenia z bazą danych.');
  11. mysql_set_charset('utf8',$polaczenie);
  12.  
  13. // połączenie ze schematem bazy danych
  14. mysql_select_db($mysql_baza) or die('Błąd: nie udało się wybrać schematu bazy danych.');
  15.  
  16. ?>


Dla pewności pytanie: jaki encoding masz ustawiony na bazie danych?
Go to the top of the page
+Quote Post
b4x
post
Post #5





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Spróbuj po połączeniu z DB
  1. mysql_query('SET NAMES utf8');
Go to the top of the page
+Quote Post
kiepski96
post
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 22.02.2010

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


Po linijce:

  1. $polaczenie = mysql_connect($mysql_host, $mysql_login, $mysql_haslo) or die('Błąd: nie udało się nawiązać połączenia z bazą danych.');


Umieściłem tą w/w i nie działa nadal (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
matiit
post
Post #7





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


Cytat("matiit")
Dla pewności pytanie: jaki encoding masz ustawiony na bazie danych?
Go to the top of the page
+Quote Post
kiepski96
post
Post #8





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 22.02.2010

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


Jeśli chodzi o Metoda porównywania napisów: utf8_general_ci
Go to the top of the page
+Quote Post
b4x
post
Post #9





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


(IMG:http://www.wrzuc.to/3C537VpdT6Nc9Y9/Zrzut%20ekranu%202013-04-22%20o%2015.05.54.png)

(IMG:http://www.wrzuc.to/vnK2PdvjIvX622S/Zrzut%20ekranu%202013-04-22%20o%2015.06.44.png)

  1. SHOW VARIABLES LIKE 'character\_set\_%';


Co zwraca Ci?

Ten post edytował b4x 22.04.2013, 14:10:32
Go to the top of the page
+Quote Post
matiit
post
Post #10





Grupa: Zarejestrowani
Postów: 365
Pomógł: 70
Dołączył: 5.04.2009

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


+ metoda porównywania napisów powinna być dobrze ustawiona dla każdej kolumny, w której chcemy mieć polskie znaczki.
Go to the top of the page
+Quote Post
viking
post
Post #11





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


I oczywiście serwer http musi odpowiedzieć odpowiednimi nagłówkami.
Go to the top of the page
+Quote Post
kiepski96
post
Post #12





Grupa: Zarejestrowani
Postów: 233
Pomógł: 0
Dołączył: 22.02.2010

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


W sql tabeli dałem to co kazałeś i zwróciło:

http://prntscr.com/11o6be
Go to the top of the page
+Quote Post
b4x
post
Post #13





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


character_set_server musi być na utf8

  1. mysql_query("SET NAMES 'utf8'");
  2. mysql_query("SET CHARACTER SET 'utf8'");
Go to the top of the page
+Quote Post

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: 22.08.2025 - 21:11