Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z kodwaniem w polach input
bleeder
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.06.2008

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


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(); ?>


Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 21.08.2025 - 12:23