Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z kodwaniem w polach input
Forum PHP.pl > Forum > PHP
bleeder
Witam
Mam problem z kodowaniem znaków w php... dokladniej chodzi o to że mam formularz który wysyła dane do bazy danych mysql.
Baz danych ma kodowanie znaków:
jak tworze tabele to wpisuje ->
engine=InnoDB DEFAULT CHARSET=utf8;
Metoda porównywania napisów w mysql: utf8_polish_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)

wszytsko ładnie zapisuje się w bazie i odczytuje na stronie ale problem jest w tym że jak wpisuje tekst polski w pole input i gdy wciskam OK to następuje weryfikacja formularza i jeśli są błędy to odświeża formularz i wpisuje dane wcześniej wpisane w pola input - no i niestety już pole zamist polskich znaków ma krzaki :-( (jak formularz jest oki to wszytskie polskie znaki są wysłane do bazy i tam się dobrze zapisują oraz odczytują gdy je pobieram w php)
Ponieżej kawalek kodu który działa i można przetestować (po wisaniu slowa "aaaaaaaa" i kliknieciu oki wszystko jest dobrze ale gdy już wpiszę "śąćżłóźźź" wyskakują krzaki :-( )

Kod

<?php ob_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<?php

     if ($_SERVER['REQUEST_METHOD'] == 'GET') {

     display_form(array());
} else {

     $errors = validate_form();
     if (count($errors)) {

         display_form($errors);
     } else {
    
     $imie_k=$_POST['imie_k'];
  
       try
    {  

             dodaj_nowego_klienta($imie_k);
         komunikat('Dodano nowego klienta');
    }
    catch (Exception $e)
    {
     blad($e->getMessage());
     exit;
      
    }      
     }
}
function display_form($errors) {    
    
     $defaults['imie_k'] = isset($_POST['imie_k']) ? htmlentities($_POST['imie_k']) : '';

     ?>
     <script><!--
function displayWindow(url, width, height) {        var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=0,scrollbars=yes,menubar=no' );}
//-->
</script>
         <div id='maincontent'>
         <h1 class='first'></h1>
         <h1>Dodaj klienta do bazy</h1>
         <form method=post action='<?php echo $_SERVER['SCRIPT_NAME'] ?>'>
         <h2>
            <table>
            <tr>
            <td>Imie:<font color=red > * </font></td>
            
              <td valign=top><input type=text name=imie_k value='<?php echo $defaults['imie_k'] ?>'
                              size=30 maxlength=20</td></tr>
            
            <td colspan=2 align=center>
              <input class='button' type=submit value="OK"></td>
         </h2>
          </form>
          
          <p class='last'></p>
         </div><!-- end div maincontent -->

<?php        
}

function print_error($key, $errors) {
     if (isset($errors[$key])) {
         echo "<dd class='error' >{$errors[$key]}</dd>";
        
     }
}

function validate_form() {
     global $flavors;

     $errors = array();
    
    
         if (isset($_POST['imie_k']) && (strlen($_POST['imie_k']) > 3))
          {

                  $errors['imie_k'] = '<font color=red > długa nazwa</font>';
                  
             }
        return $errors;
}
?>
</html>
<?php ob_end_flush(); ?>


Sedziwoj
Może chodzić o kodowanie znaków... ale to nie temat na to pod forum.
Cysiaczek
Ja tylko formalnie. Widzę, że dyskusja nad poziomem edukacji nie jest bezsensowna, a przynajmniej narzekanie na owy poziom jest zasadne
http://forum.php.pl/Poziom_szkolnictwa_zar...tc_t100547.html
Następnym razem pomyśl, zanim gdzieś otworzysz temat. Przenoszę na PHP
bleeder
sorki - nie mam doswidczenia wystawianiu postów i nie zauważyłem gdzie to poszło winksmiley.jpg

co do kodowania to mam w ustawione w pliku php w sekscji head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
inne polskie znaki które wysietlane są w formularzu html i php są poprawne, i te które sa wysyłane i pobierane z bazy też!
kod pisze w eclipse - tam też mam ustawione kodowanie na utf-8.
nie wiem gdzie jest błąd i proszę o pomoc.
Kicok
htmlentities" title="Zobacz w manualu PHP" target="_manual - trzeci parametr
bleeder
dzięki wielkie!! pomogło :-)
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.