Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie czy imię składa się z tylko liter/polskie znaki również
mariolita
post 12.03.2016, 11:54:57
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


Witam Was, jak sprawdzać czy wprowadzone imię jest prawidłowe

wydaje mi się że najpewniejszą metodą będzie wymienić wszystki litery razem z polskimi i następnie porównać:


  1. header('Content-Type: text/html; charset=utf-8');
  2.  
  3. $imie = "mariola";
  4.  
  5. $polskie_znaki = 'a ą b c ć d e ę f g h i j k l ł m n ń o ó p r s ś t u w y z ź ż';
  6.  
  7. $usun_przerwy = str_replace(' ', '', $polskie_znaki);
  8.  
  9. $kodowanie = mb_strtolower($removeSpace, 'UTF-8');


I TUTAJ POTRZEBUJĘ SPRAWDZENIA CZY zmienna imię składa się tylko ze znaków wymienionych w $polskie_znaki

Ten post edytował mariolita 12.03.2016, 11:55:30
Go to the top of the page
+Quote Post
koodo218
post 12.03.2016, 12:04:41
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 25
Dołączył: 22.11.2015

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


Cytat(mariolita @ 12.03.2016, 11:54:57 ) *
wydaje mi się że najpewniejszą metodą będzie wymienić wszystki litery razem z polskimi i następnie porównać:

Nie prościej zrobić wyrażenie regularne?


--------------------
Słaba znajomość (ale się staram): HTML5, CSS3, JavaScript, SQL, Access
Go to the top of the page
+Quote Post
mariolita
post 12.03.2016, 12:05:18
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


a możesz mi pokazać jak powinno to wyglądac?
Go to the top of the page
+Quote Post
viking
post 12.03.2016, 12:13:51
Post #4





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

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


https://wwwgo.pl/advice/show/10/jak_zweryfi...ery_i_liczby%3F


--------------------
Go to the top of the page
+Quote Post
mariolita
post 12.03.2016, 16:06:07
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


mam taki problem że po zapisaniu pattern '/^[a-ząśżźćłóęńĄŚŻŹĆŁÓĘŃ -]+$/ui'

zmienia się na jakieś znów fikuśne literki questionmark.gif?

OK, poradziłem sobie w ten sposób że każdy plik otworzyłem w notatniku i zapisywałem z utf8

teraz mam jeszcze jeden problem a mianowicie mam formularz rejestracyjny JQuery -> Ajax -> PHP -> bazada danych do której niestety nie wpadają już polskie znaki

w bazie kolumna od imienia jest utf8_unicode_ci zatem raczej nie w tym problem bo jak wprowadzę ręcznie to trzyma polskie znaki

jak sprawdzam jakie imię php odeśle (to co dostało) - odsyła już pozbawione polskich znaków tylko krzaki - zatem problem tkwi w tym czy w chwili wysłania do pliku php wysyła dobre znaki

do Ajaxa dodalem

encoding: "UTF-8",

contentType: "application/x-www-form-urlencoded; charset=UTF-8",

lecz nie pomaga

pytanie czy psuje się coś na poziomie wysyłania jeszcze po stronie strony czy otrzymywania w php

ok, w pliku php od razu po otrzymaniu POST imię - wszystko co plik otrzymał jest zapisywane do pliku textowego i już na tym etapie są krzaki czyli problem tkwi prawdopodobnie w chwili wysyłania do pliku danych POSTEM/Ajax

a co fając się jeszcze do podstaw, jak sprawdzam żeby wziąć zawartość inputa z imieniem i text() zawartość inputa/imię to imię jest prawidłowe więc chodzi raczej o wysłanie.
Go to the top of the page
+Quote Post
viking
post 12.03.2016, 16:10:47
Post #6





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

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


nagłówki, set names itd. Było milion razy na forum , jest wytłumaczone znowu w mojej stopce.


--------------------
Go to the top of the page
+Quote Post
mariolita
post 12.03.2016, 16:18:45
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


ale ja to już pozmieniałem natomiast w twoim artykule nie ma informacji jak to tyczy się do qjuery/ajax
Go to the top of the page
+Quote Post
viking
post 12.03.2016, 16:21:21
Post #8





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

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


Jeśli wszystko pozmieniałeś na utf-8 to nie będzie żadnego problemu z ajaxem również. A ponieważ kodu albo strony żadnego nie podałeś to pozostaje wróżenie. Domyślnie wszystkie dane w POST jquery są wysyłane jako utf-8.

Ten post edytował viking 12.03.2016, 16:24:27


--------------------
Go to the top of the page
+Quote Post
mariolita
post 12.03.2016, 16:41:07
Post #9





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


hej mogę Wam wysłać wszystkie skrypty ale to bez sensu bo jest ich sporo a naprawdę są prost jak barszcz,

co już wiemy:

1. był problem z tym że po zapisywaniu pliku php polskie znaki zmieniały się w krzaki - naprawione
2. po włożeniu mysqli_set_charset($polaczenie,"utf8") - komórka Imię w tabeli jest całkiem pusta
3. wszystkie strony w headerach mają <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
4. Skrypty wszystkie php też zaczynają się header ("Content-Type: text / html; charset = utf-8 ");
5. Odpowiedź z pliku PHP Ajaxem przychodzi poprawna czyli z polskimi znakami.
6. Problem tkwi z wysłaniem do pliku php imienia z polskimi znakami.

Przykład wysyłania imienia (skrypt działa poprawnie - kilka rzeczy usunąłem bo i tak nie wpływają na działanie a nie chciałem Wam mieszać w głowie):

  1. $.ajax({
  2.  
  3. type: "POST",
  4.  
  5. url: "php/signup.php",
  6.  
  7. data: dataAjax,
  8.  
  9. contentType: "application/x-www-form-urlencoded;charset=UTF-8",
  10.  
  11. success: function(answerdata) {
  12.  
  13. $("#odpowiedz").html(answerdata);
  14.  
  15. if(answerdata == 'done') {
  16. ...
  17.  
  18. } else {
  19.  
  20. ...
  21. }
  22.  
  23. }
  24.  
  25. });



a plik php znów zaczyna się tak:

header ("Content-Type: text / html; charset = utf-8");

  1. if(isset($_POST["imie"]) && isset($_POST["email"])) { ...
Go to the top of the page
+Quote Post
viking
post 12.03.2016, 19:09:40
Post #10





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

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


Cytat
2. po włożeniu mysqli_set_charset($polaczenie,"utf8") - komórka Imię w tabeli jest całkiem pusta


Najwyraźniej masz z tym fragmentem kodu coś nie tak.


--------------------
Go to the top of the page
+Quote Post
mariolita
post 14.03.2016, 15:21:02
Post #11





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


SZOK


Siedzę pare dni już nad tym, głowię się i nareszcie mi się udało, zadziałało - pięknie wszystkie polskie znaki trafiały do bazy danych. Wyłączyłem przeglądarkę, włączam (nic nie zmieniałem - zupelnie nic) i znów to samo - znów polskich znaków brak.

NO CO JESTTTTTTTTTTTTTTTTTTTTTTTTTTT?questionmark.gifquestionmark.gifquestionmark.gif

dobra strtolower() puszczał brzydkie bąki

zatem jak wyciągam przy logowaniu z bazy emaila lub imię to co dać zeby nie zważał na małe czy duże znaki?
Go to the top of the page
+Quote Post
nospor
post 14.03.2016, 15:24:30
Post #12





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Przestan naduzywac rozmiaru czcionek!!

Co do problemu:
http://php.net/manual/en/function.mb-strtolower.php


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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: 2.05.2025 - 06:32