Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o chat - php, ajax, mysqli
Forum PHP.pl > Forum > PHP
Freezend
Witam, zawsze miałem problem z tworzeniem zabezpieczeń związanych z wpisywaniem tekstu przez użytkownika, który wędruje do bazy danych. Teraz piszę trochę poważniejszy projekt i staram się robić wszystko jak najlepiej. O ile przy wpisywaniu nicków czy haseł mogę ograniczyć możliwość wpisywania do liter, cyfr i odstępów to przy chacie chciałbym, żeby można było wpisać dowolny znak z klawiatury. Moje pytanie brzmi czym to zabezpieczyć, żeby niepowołane znaki nie znalazły się w bazie danych, ale zarówno wszystko było poprawnie wyświetlane?

java script:
$.getScript("baza/s1.php?t=8&c="+chat2);
(chat2 to zawartość inputa do czatu)

PHP:
$c = $_GET['c'];
mysqli_query($con,"INSERT INTO `chat` (-,-,-,tresc) VALUES ('-','-','-','$c')");

Przy JS użyć encodeURIComponent lub jakiejś innej funkcji?
Z jakich funkcji skorzystać przy PHP? mysqli_real_escape_string, htmlentities, htmlspecialchars?

Wiem, że dla wielu zabrzmi ten problem śmiesznie, ale pisanie tutaj to jedyny sposób, żebym już więcej nie musiał się zastanawiać i zamartwiać tym banałem.
TheVVaS
A myślałeś może nad użyciem socketów?
Mi to bardzo ułatwiło zbudowanie mojego czatu biggrin.gif
markonix
A co to są dla Ciebie "niepowołane" znaki?
com
popierwsze pdo/mysqli i bind o mysql_* zapomnij i o tym śmiesznym real costam, po drugie http://php.net/manual/en/function.htmlspecialchars.php
adbacz
Jeśli znasz JavaScript to polecam ogarnąć w kilka dni działanie NodeJS i postawić ten Chat na NodeJS i na WebSocketach. To w dzisiejszych czasach jest jedyne racjonalne podejście do tego.

A jeśli chodzi o filtrowanie danych, to tak jak napisał @com, zwykłe htmlspecialchars() wystarczy w PHP.
com
a chat to wspomniane node raczej wink.gif
Freezend
Ok, dzięki za pomoc. Dotychczas myślałem, że htmlspecialchars w jakiś sposób da się obejść.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.