Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

5 Stron V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> [MYSQL] Polskie znaki
monami
post 10.08.2010, 08:32:52
Post #41





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.08.2010

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


Cytat
Tak, ja bym to uniemożliwił.

Jeżeli to odpowiedz na post o polskich znakach w loginie i hasle przy rejestracji to dziekuje.
Usunelam post zaraz po dodaniu bo cos na temat znalazlam na innej stronie, nie zauwazylam odpowiedzi.
Go to the top of the page
+Quote Post
pag-r
post 24.08.2010, 18:18:29
Post #42





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 29.08.2007

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


Nie chce tworzyć nowego tematu,a zapewne ktoś miał do czynienia z takim problemem. Mianowicie mam bazę zapisaną w latin2. Żeby wyświetlić dane konwertuje je do utf-8 (iconv()), ponieważ moduł do przetwarzania tych danych jest w utf-8. Ale kiedy cokolwiek zmienię w polach edycji czy to input czy textarea i prześle te dane POST'em, są już nie do odczytania. Pojawiają się symbole nieprawidłowego kodowania typu zamiast litery ł pojawia się A z kółkiem. W każdym razie kodowanie się psuje. W jaki sposób sprawić by te dane były kodowane w jakiś ze standardowo przyjętych, żeby móc z nimi cokolwiek sensownego zrobić?
Go to the top of the page
+Quote Post
k_rogalski
post 30.11.2010, 22:03:32
Post #43





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
}}
?>
Go to the top of the page
+Quote Post
ixpack
post 3.12.2010, 18:05:41
Post #44





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


  1. mysql_query('SET NAMES utf8);
  2.  
  3. mysql_query('SET NAMES latin2_general_ci');


A czemu ustawiasz najpierw utf a później latin? Jak kodujesz dane w bazie? Ustaw kolumnę z nazwiskami na utf. I jak dodajesz nazwisko to ustaw dane jako utf, tak samo chyba jak nazwisko wyciągasz.

Jeżeli masz: dokument w utf8, dodajesz do bazy dane z tego dokumentu, ale przedtem ustawiasz names utf8 i jeżeli kolumna do której dodajesz dane utf8 jest w systemie kodowania utf8 I system porównania jest utf8 to musi działać.

Tak samo z wyciąganiem danych.

Ten post edytował ixpack 3.12.2010, 18:13:06


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
Rid
post 12.12.2010, 15:54:10
Post #45





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Mam zadeklarowane nagółwki header, meta w utf-8 ,pliki skonwertowane do utf8 bez bom. Cały serwer zainstalowany od nowa:
Apache 2.2
PHP 5.2.15 V6
MySQL 5.1.52 na win XP.Baza była utworzona za pomocą skryptu
Kod
$link=mysql_connect('localhost','root','');

$charset = mysql_client_encoding($link);

if ( $charset != 'utf8' ) {

mysql_set_charset('utf8',$link);

}



$sql="CREATE DATABASE IF NOT EXISTS rejestr ";

mysql_query($sql) or die(mysql_error());





mysql_select_db('rejestr',$link);



$sql="CREATE TABLE IF NOT EXISTS rejstr(

id int(4) NOT NULL auto_increment,

nick varchar(30) NOT NULL ,

haslox varchar(32) NOT NULL ,

mails varchar(70) NOT NULL ,



PRIMARY KEY klucz1 (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; ";



mysql_query($sql) or die(mysql_error());
więc nie ma możliwości żeby była kodowana inaczej jak w UTF-8 i nie wiem dlaczego koduje mi w latin1 po wysłaniu formularza,a w bazie są krzaki.
Czy ktoś mógłby ,polecić mi jakiś naprawde ,dobry program serwerowy z Apache ,PHP i MySQL?Już kilka razy reinstalowałem swój serwer i w rezultacie otrzymuje inne kodowanie niż zadeklarowane.Ręce opadają. withstupidsmiley.gif
Go to the top of the page
+Quote Post
Zyx
post 12.12.2010, 15:59:58
Post #46





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Ale na kolumny to już kodowania nie ustawiłeś.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
Rid
post 12.12.2010, 16:10:39
Post #47





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Popatrzyłem w MySQL Workbench i kolumny utworzyły się w UTF8 polish_ci więc wszystko wydaje się być wporządku.
Go to the top of the page
+Quote Post
rulespl
post 14.01.2011, 12:38:16
Post #48





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 29.03.2009

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


Witam
Nie wiem dlaczego ale cały czas pokazują mi się krzaczki zamiast polskich znaków. Używam kodowania UTF-8;
Oto jak wygląda sytuacja:
-Pliki są kodowane w UTF-8 bez DOM (zwykłe utf-8 też sprawdzałem) - ustawiłem poprzez notepad ++
-Kodowanie na stronie:
  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />

-przy połączenu z bazą mam:
  1. mysql_query("SET NAMES utf8'");
  2. mysql_query("SET CHARACTER_SET utf8_unicode_ci");

-baza tabela i kolumny mają poustawiane kodowanie utf8_unicode_ci

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


Pokazuje mi:
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8

Z tego widzę, że character_set_server ma ustawione latin1, czy to powoduję problem? Jeśli tak, czy da się to jakoś obejść bez zmiany ustawień całego serwera?

Jeszcze jedno. Przy dodawaniu wartości z poziomu php nie wstawia polskich znaków. To chyba jest problem z kodowaniem serwera, ale jak to zmienić, żeby inne bazy na serwerze nie wykrzaczyły się przy okazji?

Ten post edytował rulespl 14.01.2011, 13:12:26
Go to the top of the page
+Quote Post
webdice
post 14.01.2011, 13:20:11
Post #49


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj o AddDefaultCharset w Apache.

P.S. Bez BOM, nie DOM.
Go to the top of the page
+Quote Post
rulespl
post 14.01.2011, 13:32:55
Post #50





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 29.03.2009

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


No ta miałem na myśli oczywiście BOM

Ustawiłem w .htaccess

AddDefaultCharset UTF-8

Nic nie dało, jeszcze dodam, że w pliku na górze mam także:
  1. header('Content-type: text/html; charset=utf-8');
Go to the top of the page
+Quote Post
webdice
post 14.01.2011, 14:17:49
Post #51


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jak wygląda kodowanie tabel oraz kolumn?
Go to the top of the page
+Quote Post
rulespl
post 17.01.2011, 15:10:42
Post #52





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 29.03.2009

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


Cytat(webdice @ 14.01.2011, 14:17:49 ) *
Jak wygląda kodowanie tabel oraz kolumn?


Kodowanie bazy, tabel jak i poszczególnych kolumn jest utf8_unicode_ci


Problem został rozwiązany, był banalny błąd w zapytaniu:
  1. mysql_query("SET NAMES 'utf8'");


Brakowało apostrofu przed 'utf8'

Dzięki za pomoc
Go to the top of the page
+Quote Post
marlynbyr82
post 22.03.2011, 04:51:35
Post #53





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 12.01.2011

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


Problem jest taki:
w bazie MySQL chciałbym umieścić teksty polskie i hiszpańskie, a na stronie wyświetlać je tak żeby były widoczne
jednocześnie. smile.gif


--------------------
I work on my home pc and i go to any places but with a remote desktop I can still work.
Go to the top of the page
+Quote Post
webdice
post 22.03.2011, 10:17:32
Post #54


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj o UTF.
Go to the top of the page
+Quote Post
--san--
post 24.03.2011, 19:41:43
Post #55





Goście







musisz wstawic jednoliwe kogodanie
przesył danych z bazy,baza,tabele,struktura,pliki php
Go to the top of the page
+Quote Post
JoShiMa
post 5.04.2011, 12:40:00
Post #56





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Pomóżcie bo wymiękłam. Kodowanie dokumentu utf-8, baza i tabele utf8_general_ci. Wstawianie i odczytywanie rekordów przwidłowo, bez krzaków.Ale zapytanie:

  1. SELECT id FROM tabela WHERE name='ń'


zwraca id dla name = n

poza tym jeśli w bazie jest rekord name=ń to wpisanie rekordu z name=n jest niemożliwe bo wrzeszczy iż jest duplikat. W czym rzecz?


--------------------
Go to the top of the page
+Quote Post
Hexonex
post 27.05.2011, 02:16:14
Post #57





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 12.04.2011

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


Witam, robię wszystko tak jak piszecie ale nadal mam problem ze znakami. Z początku były znaki zapytania zamiast polskich znaków (oprócz litery "ó"). Gdy dodałem
  1. mysql_query('SET NAMES utf8');
  2. mysql_query('SET CHARACTER_SET utf8_unicode_ci');
  3.  


Zamiast znaków zapytania pojawiły mi się AÂĄbÌ¿³ó.
Już nie wiem co mam robić, zważając na fakt, że jak nie dodałem


  1. mysql_query('SET NAMES utf8');
  2. mysql_query('SET CHARACTER_SET utf8_unicode_ci');
  3.  

to przynajmniej miałem polskie znaki w nowo napisanych postach, zaś teraz to nie mam w ogóle.

Moja strona została przeniesiona z friko.pl, na proserwer.pl.
Go to the top of the page
+Quote Post
worek
post 16.06.2011, 15:29:46
Post #58





Grupa: Zarejestrowani
Postów: 82
Pomógł: 3
Dołączył: 26.04.2011

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


Ja jako panaceum na polskie znaki używam funkcji do konwersji na encje dla polskich liter. I to mi w zupełności styka bo mam gdzieś jakie będzie ustawione kodowanie w przeglądarce, i tak mi się polskie znaki zawsze wyświetlą czy to utf czy iso.
Go to the top of the page
+Quote Post
toaspzoo
post 16.06.2011, 15:49:08
Post #59





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Kod
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
-Gość-
post 4.08.2011, 00:00:07
Post #60





Goście







smile.gif
Go to the top of the page
+Quote Post

5 Stron V  < 1 2 3 4 5 >
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 13:43