Rozumiem że ten czat jest anonimowy, bez kont?
Tak. Jaknajbardziej chodzi o anonimowy czat. Chodzi również o to, żeby dany user mógł sobie edytować wpisy, ale tylko swoje i niczyje inne.
Ciasteczka bez problemu można oszukać więc nie najlepsze rozwiązanie.
Jak się oszukuje ciasteczka i po co to robić? Przecież jak nie ma jakiegoś ciasteczka to jak można je zrobić skoro nie zna się kodu dzięki któremu można będzie edytować określone wpisy w czacie?
Po prostu daj po stronie PHP jakieś if które sprawdza czy IP się zgadza i czy minęło X czas od dodania wpisu.
To mnie bardzo ciekawi. Jeszcze nie eksperymentowałem z $_SERVER['REMOTE_ADDR'] ???
A póki co to jest coś co wymyśliłem. Moim zdaniem... bardzo ładne:
<?
session_start();
// check if session is set
echo 'Session: '.$_SESSION["Guest_Cookie_User"].'<br>';
// check if coockie is set
echo 'Cookie :'.$_COOKIE["Guest_Cookie_User"].'<br><br>';
// jeśli zmienna sesji jest jeszcze pusta (stosowac tutaj empty czy isset ?)
if(empty($_SESSION["Guest_Cookie_User"]) AND empty($_COOKIE["Guest_Cookie_User"])) {
// jednokrotne nadanie ZMIENNEJ SESJI będącej hasłem
$_SESSION["Guest_Cookie_User"] = $Guest_Cookie_User = bin2hex(openssl_random_pseudo_bytes(4));
// ustanawiamy ZMIENNĄ COOKIE z nazwą losową
setcookie( "Guest_Cookie_User", $Guest_Cookie_User, strtotime( '+266 years' ) );
// następnie do każdego wpisu będziemy dodawać identyfikator cookie do późniejszego porównania
}
// session is set
echo 'Session: '.$_SESSION["Guest_Cookie_User"].'<br>';
// coockie is set
echo 'Cookie :'.$_COOKIE["Guest_Cookie_User"];
session_destroy();
// przy pierwszej iteracji jest tylko zmienna SESSION natomiast przy kolejnych
// dopóki istnieje jest tylko zmienna COOKIE
?>