konto usunięte

Temat: Ciasteczka

Witam. Czy ktoś może powiedzieć w czym rzecz? Mam skrypt który umożliwia dodawanie plusów i minusów do zdjęcia. Wszystko odbywa się za pomocą ajaxa, bez przeładowania strony. Jeżeli użytkownik nie dodawał jeszcze punktu to tworzony jest plik cookie. A teraz to co nie dziala: jesli plik cookie o określonej nazwie istnieje skrypt nie powinnien zwiększać liczby punktów. Obecnie za kazdym kliknieciem dodawany jest punkt.

to kod realizujący odpowiedź dla js:

if (isset($_POST['name'])) {
$name = $_POST['name'];
if (isset($_COOKIE[$name]))
{
$response = $model->getImgInfos($name);
$response['info'] = 'Głosowałeś już na to zdjęcie.';
$response['class'] = 'red';
}
else
{

if($model->isInfo($name)) {
$data=array('up'=>new Zend_Db_Expr('up + 1'));
$table->update($data, "name='$name'");
} else {
$data=array('name'=>$name, 'up'=>1, 'down'=>0);
$table->insert($data);
}
$response = $model->getImgInfos($name);
setcookie($name, 'add', time()+3600*24*2, '/');
$response['info'] = 'Twój głos został dodany.';
$response['class'] = 'green';
}

echo json_encode($response);
}


skrypt nie wchodzi w

if (isset($_COOKIE[$name]))
{
$response = $model->getImgInfos($name);
$response['info'] = 'Głosowałeś już na to zdjęcie.';
$response['class'] = 'red';
}


nawet gdy taki plik istnieje.

### Edit

Może nowe pliki cookie są dostępne dopiero po przeładowaniu strony?Piotr Burant edytował(a) ten post dnia 30.01.12 o godzinie 19:10
Michał Sosnowski

Michał Sosnowski grafik/webmaster

Temat: Ciasteczka

Z tego co się orientuje.. aby odczytywać z tablicy $_COOKIE musi nastąpić przeładowanie strony..
może spróbuj użyć wersji cookie w jQuery

konto usunięte

Temat: Ciasteczka

rzeczywiście :) pomogło.

Dziękuję bardzo.

A jakie zabezpieczenie proponujecie w momencie wyłączenia cookies w przeglądarce? W sumie wystarczy mi chyba do zamknięcie przeglądarki czyli może wystarczy sesja - o ile nie trzeba przeładować strony żeby mieć do niej dostęp ;)

konto usunięte

Temat: Ciasteczka

Zabezpieczenie takie:
- cookies,
- browser fingerprint
- ip
- useragent
- sesja
- jeżeli serwis wymaga logowania do głosowania, to i id usera

A i tak nie masz gwarancji że tego nie obejdzie.

konto usunięte

Temat: Ciasteczka

ok, dzięki. Myślę, że sobie poradzę. Nie ma logowania, głosować może każdy. Nie zależy mi na tym żeby było to jakoś super zabezpieczone wystarczy, że tylko trochę utrudnię życie przy spamowaniu punktami.

konto usunięte

Temat: Ciasteczka

Jesli nie masz logowania uzytkownikow - cookie i sesja wydaje sie byc bardzo ok, moze adres email, ktory mozesz zbierac i sprawdzac czy juz glosowal, to jako opcja.

konto usunięte

Temat: Ciasteczka

Andrzej Winnicki:
Jesli nie masz logowania uzytkownikow - cookie i sesja wydaje sie byc bardzo ok, moze adres email, ktory mozesz zbierac i sprawdzac czy juz glosowal, to jako opcja.
Piotr chce utrudnić powtórne głosowanie a nie głosowanie jako takie :)

konto usunięte

Temat: Ciasteczka

Michał Wachowski:

Niech zostawia cookiesa i jesli ktos probuje zaglosowac jeszcze raz, to dostaje trudne zadanie matematyczne do rozwiazania :D

konto usunięte

Temat: Ciasteczka

jeśli masz konta użytkowników (lub maile) to nie ma problemu, w innym przypadku dobrym rozwiązaniem jest evercookie:
- Standard HTTP Cookies
- Local Shared Objects (Flash Cookies)
- Silverlight Isolated Storage
- Storing cookies in RGB values of auto-generated, force-cached
PNGs using HTML5 Canvas tag to read pixels (cookies) back out
- Storing cookies in Web History
- Storing cookies in HTTP ETags
- Storing cookies in Web cache
- window.name caching
- Internet Explorer userData storage
- HTML5 Session Storage
- HTML5 Local Storage
- HTML5 Global Storage
- HTML5 Database Storage via SQLite

;)Kamil B. edytował(a) ten post dnia 30.01.12 o godzinie 20:56

Następna dyskusja:

Desery ciasta i ciasteczka




Wyślij zaproszenie do