[MYSQL] Polskie znaki |
[MYSQL] Polskie znaki |
1.01.2009, 17:21:06
Post
#1
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 |
Wiele osób ma problem z polskimi znakami w bazie danych, dlatego postanowiłem jakiś czas temu napisać artykuł na łamach wortalu. Mam nadzieje że będzie pomocny, a forum nie będzie zaśmiecane kolejnymi pytaniami dotyczącymi tego problemu.
Artykuł znajduje się tutaj. |
|
|
30.11.2010, 22:03:32
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 30.11.2010 Ostrzeżenie: (0%) |
Modyfikuje skryp z generatora formularza. Chce by w nazwisku dostepne byly polskie znaki. Pierwszy problem to wyslwietlanie polskich zankow po wyslaniu formularz. Formularz akceptuje i przesyla je do mysql natomiast zupenie nie akceptuje "o z kreska" ani w formie "o z kreska" a ni w formie utf. W przypadku wpisania "o z kreska" do formularza wyskakuje info, ze znak niedozwolony.
Druga sprawa to iz w bazie, polskie znaki zapisane sa unicodem, a nie forma graficzna(a z ogonkiem itp). Metoda porownania to latin2_general_ci.Prosze o info jak to zmienic. Ponizej skrypt. Probowalem mysql_query('SET NAMES latin2_general_ci'); i mysql_query('SET NAMES utf8'); ale nie wiem czy w dobrym miejscu wstawiam... <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <?php include("global.inc.php"); $errors=0; $error="Formularz zostal niepoprawnie wypelniony. Sporboj ponownie. Ponzej znajduja sie popelnione bledy<ul>"; pt_register('POST','Email'); pt_register('POST','haslo'); pt_register('POST','nazwisko'); if($Email=="" || $haslo=="" ){ $errors=1; $error.="<li>Zadne pole nie moze poozstawac bez danych. Prosze wrocic i rozpoczac od nowa."; } if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){ $error.="<li>Niepoprawna forma email"; $errors=1; } if(strlen ($haslo) <3 || strlen ($haslo)> 16) { $errors=1; $error.="<li>Haslo musi miec conajmniej 10 znakow. Nie wiecej niz 16."; } if(!eregi("^[a-zA-Z;ÓóĄąĆćĘꣳŃńŚśŹźŻż]*$",$nazwisko)){ $error.="<li>Niepoprawne znaki"; $errors=1; } if($errors==1) echo $error; else{ $where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/")); $message="Ponizsze dane zostaly zapisane na serwerze Dk service Email: ".$Email." haslo: ".$haslo." nazwisko: ".$nazwisko." Jesli chcesz zmodyfikowac dane www.google.pl"; $message = stripslashes($message); mail("testi@o2.pl","Form Submitted at your website",$message,"From: phpFormGenerator"); mail("$Email","Form Submitted at your website",$message,"From: phpFormGenerator"); $link = mysql_connect("localhost","xxxx","xxxxxx"); mysql_select_db("guingamp_cv",$link); mysql_query('SET NAMES utf8); mysql_query('SET NAMES latin2_general_ci'); $query = mysql_query("SELECT * FROM firma WHERE email = '$Email'||'$nazwisko'"); if( mysql_num_rows($query) != 0) echo 'Apikacja zostala juz wczesniej zlozona.<a href="http://www.dkservice.eu/phpformgenerator/use/firma/form1.html"><input type="button" value="cofnij" /></a> '; else { $query="insert into firma (Email,haslo,nazwisko) values ('".$Email."',sha1(md5('".$haslo."')),'".$nazwisko."')"; mysql_query($query); $make=fopen("admin/data.dat","a"); $to_put=""; $to_put .= $Email."|".$haslo."|".$nazwisko." "; fwrite($make,$to_put); ?> <h2>Dziekujemy za wypelnienie aplikacji</h2> <table width=50%> <tr><td>Email: </td><td> <?php echo $Email; ?> </td></tr> <tr><td>haslo: </td><td> <?php echo $haslo; ?> </td></tr> <tr><td>nazwisko: </td><td> <?php echo $nazwisko; ?> </td></tr> </table> <?php }} ?> |
|
|
Wersja Lo-Fi | Aktualny czas: 21.06.2024 - 14:27 |