Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwersja emotikon do bazy danych
maksik
post 1.06.2016, 15:56:27
Post #1





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Chciałbym dać możliwość dodawania emoticon z telefonu do bazy danych utf-8 lecz w jaki sposób jednocześnie zabezpieczyć dodawanie rekordów przed apostrofami?

Gdy dodam mysql_real_escape_string() emotikony znikają
Go to the top of the page
+Quote Post
gitbejbe
post 1.06.2016, 17:46:33
Post #2





Grupa: Zarejestrowani
Postów: 515
Pomógł: 63
Dołączył: 27.08.2012

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


to wrzuć jako hash, np base_64. Po pobraniu z bazy dekodujesz i obrabiasz jak chcesz
Go to the top of the page
+Quote Post
maksik
post 1.06.2016, 19:18:00
Post #3





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Czy jest możliwość, aby jakoś wykryć w całym rekordzie i tylko zakodować emotikony?
Go to the top of the page
+Quote Post
viking
post 1.06.2016, 19:21:35
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Wywal tą bzdurę escape string i poczytaj o bindowaniu http://php.net/manual/en/mysqli.prepare.php


--------------------
Go to the top of the page
+Quote Post
com
post 1.06.2016, 19:32:21
Post #5





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


mysql_real_escape_string ta metoda nie wiele Ci daje, lepiej użyć prepare
Go to the top of the page
+Quote Post
maksik
post 1.06.2016, 19:49:54
Post #6





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Cytat(com @ 1.06.2016, 20:32:21 ) *
mysql_real_escape_string ta metoda nie wiele Ci daje, lepiej użyć prepare


Jaka jest zasadnicza różnica? używam escape_string by uniknąć sql injection w czym mogłoby być lepsze prepare?
Go to the top of the page
+Quote Post
com
post 1.06.2016, 19:51:53
Post #7





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


w tym, że escape_string nie chroni przed sql injection, używało się dawno temu w mysql_* którego już w core php nie ma dlatego, że nie było tam nic innego i dlatego już tego w php nie ma teraz jest mysqli i pdo, które mają własnie prepare wink.gif
Go to the top of the page
+Quote Post
maksik
post 1.06.2016, 19:59:58
Post #8





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Dzięki za informację. Samo prepare raczej nie rozwiązuje problemu z emotikonami
Go to the top of the page
+Quote Post
com
post 1.06.2016, 20:02:15
Post #9





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


nwm w jaki sposób masz je reprezentowane ale zapewne jest to string wiec, nie widzę problemu wink.gif
Go to the top of the page
+Quote Post
viking
post 1.06.2016, 20:31:12
Post #10





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Co to robiło po stronie mysql? http://dev.mysql.com/doc/refman/5.7/en/mys...ape-string.html
Zapewne w twoim stringu są któreś z tych znaków podczas wyświetlania stąd niepoprawna reprezentacja. Zmienisz na nowsze metody i zacznie działać.


--------------------
Go to the top of the page
+Quote Post
maksik
post 1.06.2016, 21:42:53
Post #11





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


Takie ogólne pytanie, mysqli jest nowsze niż mysql? (czy lepsze?)
Go to the top of the page
+Quote Post
viking
post 1.06.2016, 21:56:33
Post #12





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


mysql nie ma już w najnowszym php. Od lat wisi o tym komunikat w dokumentacji.
Używaj mysqli albo PDO.


--------------------
Go to the top of the page
+Quote Post
maksik
post 1.06.2016, 22:49:29
Post #13





Grupa: Zarejestrowani
Postów: 206
Pomógł: 0
Dołączył: 26.09.2012

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


  1. $stmt = $mysqli->prepare("INSERT INTO Table (text) VALUES (?)");
  2. $stmt->bind_param('s', $_POST['text']);
  3. $stmt->execute();
  4. $stmt->close();


W tekście jest zawarta emotikonka 😅 lecz nie widać jej w rekordzie, jest coś źle zastosowane?
Go to the top of the page
+Quote Post
KsaR
post 1.06.2016, 22:58:10
Post #14





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(maksik @ 1.06.2016, 23:49:29 ) *
(...)
W tekście jest zawarta emotikonka questionmark.gif lecz nie widać jej w rekordzie, jest coś źle zastosowane?

Cytat(maksik @ 1.06.2016, 16:56:27 ) *
Chciałbym dać możliwość dodawania emoticon z telefonu do bazy danych utf-8 (...)

http://forum.php.pl/index.php?showtopic=25...t&p=1193070

Ten post edytował KsaR 1.06.2016, 22:58:50


--------------------
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: 16.04.2024 - 18:51