Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak zrbić ban na cookies?
Forum PHP.pl > Forum > Przedszkole
Gość_Maciek
Jak zrobić skrypt, który:
- Da bana na cookies
- Będzie sprawdzał czy jest ban na ciasteczko
- Będzie też umiał usunąć bana.
Chcę to wykożystać w phpbb.
Z góry dziękuję smile.gif
Gość_Maciek
Jeszcze by się przydała lista cookies zbanowanych i niezbnowanych i do kogo na leży (np. IP).
Diwi
Wiesz co lekko nie rozumiem co to jest ban Cookies. Zbanowanie Cookies nigdy o czymś takim nie słyszałem ohmy.gif. Możesz wyjaśnić ?

Pozdrawiam
Gość_Maciek
Chodzi mi o to że danej osobie z odpowiednim ciasteczkiem jest zabroniony wstęp na stronę, serwis, portal itp.
Gość_Maciek
ban = blokada, zablokowanie itp. smile.gif
Diwi
Acha o to ci chodzi no to musisz sobie zrobić taki skrypcik:

  1. <?php
  2.  
  3. if (isset($_COOKIE['ban'])) {
  4.  
  5.  echo 'Nie masz dostępu do tej strony';
  6.  
  7. }
  8.  
  9. ?>


Pozdrawiam

// polecam rejestracje na forum, będziesz mógł edytować posty smile.gif
mdz000
Dobra zarejestrowałem się. A możesz zrobić jeszcze:
- listę zablokowanych cookies
- listę niezablokowanych cookies
- Skrypt dodający do ciastaczka info o banie
- skrypt usuwający info o banie.
Ociu
Banowanie na cookies ? Usunie ciasteczka i nie bede zbanowany...
mario
proponuję oprzeć system o sesje
mdz000
Ale powiedzcie. Wiem o tym, ale i tak chcę.
strife
Tak więc poczytaj to => $_COOKIE. Natomiast ciastka które są objete banem przechowuj w pliku, tablicy etc.

Pozdrawiam!
mario
Jak jesteś taki uparty to poszukaj sobie tutaj na forum, było xxx razy o COOKIES szukaj na forum php.pl nt. COOKIES
mdz000
Przepraszam, ale :
1. Dobrze nie znam angielskiego.
2. To dla mnie za trudne te cookies.
3. Jest 15 stron wyszykiwania i to o nie tym co szukam dry.gif .
Próbowałem na wielu forach i zawsze mi nie pomogą. Jak znalazłem to forum to pomyślałem "Zbawienie". A tu tak samo. sad.gif Chyba nigdzie nie doczekam się pomocy. sad.gif
strife
Proszę, ja też nie znam d. ang. ale znalazłem coś takiego więc!

Usuwanie ciastek:
  1. <?php
  2.  
  3. / ustaw datę ważności na godzinę wstecz
  4. setcookie (&#092;"TestCookie\", \"\", time() - 3600);
  5. setcookie (&#092;"TestCookie\", \"\", time() - 3600, \"/~rasmus/\", \".utoronto.ca\", 1);
  6.  
  7. ?>


wyświetlanie ciastek
  1. <?php
  2.  
  3. echo $TestCookie;
  4. echo $_COOKIE[&#092;"TestCookie\"];
  5.  
  6. ?>


ustawianie ciastek
  1. <?php
  2.  
  3. setcookie (&#092;"cookie[three]\", \"cookiethree\");
  4. setcookie (&#092;"cookie[two]\", \"cookietwo\");
  5. setcookie (&#092;"cookie[one]\", \"cookieone\");
  6. if (isset ($cookie)) {
  7.  while (list ($name, $value) = each ($cookie)) {
  8.  echo &#092;"$name == $value&lt;br>n\";
  9.  }
  10. }
  11.  
  12. ?>


To są wszystko przykłady z manuala php, zajrzyj też tutaj => http://www.leon.w-wa.pl/texts/kurs/trans.php#cookies. Jeśli jest to dla Ciebie za trudne to napisz kawałek kodu napisz czego nie rozumiesz, a napewno ktoś Ci pomorze smile.gif

Pozdrawiam! winksmiley.jpg
mario
Cytat(scarface @ 2005-05-05 20:48:21)
Jeśli jest to dla Ciebie za trudne to napisz kawałek kodu napisz czego nie rozumiesz, a napewno ktoś Ci pomorze smile.gif

Też tak uważam. php'a najlepiej uczyć się samemu z manual'a i przykładów, wtedy wiesz co robisz, dlaczego i skąd się wszystko bierze. Tu nikt Cię nie zlewa, tylko jak ktoś pisze ogólnikowo i czeka na "zbawienne skrypty" dostaje często kubeł zimnej wody na głowę smile.gif Dlatego lepiej jest po kimś poprawiać i szukać błędu niż ktoś ma za Ciebie napisać gotowe skrypty.
mdz000
Tylko na podstawie tego zrobię mod do phpbb smile.gif
scarface dzięki. O to mi chodziło.
  1. <?php
  2.  
  3. if (isset($_COOKIE['ban'])) {
  4.  
  5. echo 'Nie masz dostępu do tej strony';
  6.  
  7. }
  8.  
  9. ?>
Co to robi dokłdnie?
I jeszcze
  1. <?php
  2. // zapis
  3. $tablica = Array('a' => 'pierwszy', 'b' => 'drugi');
  4. setcookie('tablica', serialize($tablica), time()+3600);
  5.  
  6. // odczyt zabezpieczony przed nieistniejącym ciasteczkiem
  7. if (isset($_COOKIE['tablica'])) {
  8. $tablica = unserialize($_COOKIE['tablica']);
  9. } else {
  10. $tablica = Array();
  11. }
  12.  
  13. ?>
I co to robi.
Ociu
Cytat(mario @ 2005-05-05 20:11:00)
proponuję oprzeć system o  sesje

A wiesz ile taka sesja żyje ?

Edit:

iMHO. Lepiej system banów oprzeć o bazę danych.
mario
Cytat(Ociu @ 2005-05-07 15:01:43)
A wiesz ile taka sesja żyje ?

"Żyje" tyle czasu ile jest w ustawieniach php.ini. Można zmieniać jej długość trwania. Każdy sposób jest moim zdaniem dobry byle nie ciasteczka, baza danych również jest spoko.
Domin
Cześć jak zrobić banowanie cookies na określony czas w ustawieniach. Np. Ktoś dodaje pozdrowienia na stronie, w ustawieniach w bazie danych jest blokada na 5 minut wiec użytkownik któy dodał pozdrowienia moze wejsć na strone z pozdrowieniami lub wyświetla mu się okienko java z czasem że za tyle czasu może dodać kolejne pozdrowienia. Po minięciu tego czasu moze dodać kolejne pozdrowienia i jak je doda znów jest blokowany. Jak to zrobić??
mike
Jesli użytkownik chce dodać pozdrowienie sprawdzasz czy ma ciacho. Jeśli nie ma to pozwalasz mu dodać.
Jesli ma to sprawdzasz jaką datę ma zapisanę w ciastku, jeśli nie nimęło do niej 5 min. (lub inny czas, sam ustalasz) to nie pozwalasz, jeśli nimęło więcej niż 5 min. pozwalasz na dodanie pozdrowienia.

W chwili dodawania pozdrowienia ustawiasz ciacho z datą dodania (najlepiej timestamp).
Domin
Dzieki że mi to trochę objaśniłeś, ale mój problem polega na tym ze wogóle sie na cookies nie znam. Możesz mi pomóc??
mike
Cytat(Domin @ 2005-12-11 15:13:04)
(...) Możesz mi pomóc??

Mogę tongue.gif
Ale moge pomóc a nie odwalić za Ciebie.

Dostałeś objaśnienie (swego rodzaju algorytm) i nawet nie poszukałeś, nie spróbowałeś nic zrobić samemu.
Skoro nie znasz ciasteczek to powinieneś zacząć od zapoznania się z manualem ich dotyczącym, poznać funkcje do ich obsługi i postarać sie samemu. A my Ci wtedy pomożemy jeśli natrafisz na problemy.

Problem, który chcesz zozwiązać zawąża się do dwóch rzeczy: instrukcji warunkowej if...else i funkcji setcookie() (, no daty można jeszcze dorzucić).

Jesteś leniem i tyle.
Resztę piszących w tym wątku, proszę: dajcie się wykazać @Domin'owi i nich nam pokaże że potrafi mysleć (samemu)
Domin
Zrobiłęm coś takiego, ale z tymi ciastkami jest coś nadal źle ...

  1. <?php
  2.  
  3. if ( isset($_POST['wpisz']) ){
  4. $nick = escape_data($_POST['nick']);
  5. $tresc = escape_data($_POST['tresc']);
  6. $ip=$REMOTE_ADDR;
  7. $host=gethostbyaddr($ip);
  8.  
  9. $query2 = "INSERT INTO pozdrowienia ( nick, tresc, data, ip, host) VALUES ( '$nick', '$tresc', NOW(), '$ip', '$host' )";
  10. $result2 = mysql_query ($query2);
  11. {
  12.  setcookie("Pozdrowienia - MojeRadio.pl", true, time()+60*5);
  13.  header("Location:index.php?pozdrowienia");
  14.  }
  15.  echo '<p><font color="red">Pozdrowienia zostały dodane<br>Następne możesz dodać za 5 minut</font></p>';
  16.  }else{
  17.  echo 'Twoje pozdrowienia nie zostały dodane';
  18.  }}
  19.  
  20.  
  21. echo'<br><tr><td style="border-top: 0px solid; border-left: 1px solid; border-right: 1px solid; border-bottom: 1px solid; border-color: red"><table>
  22. <form name="wpisz" action="index.php?pozdrowienia" method="post">
  23. <tr><td valign="top">Nick: </td><td><input type="text" name="nick" /></td></tr>
  24. <tr><td valign="top">Treść: </td><td><textarea name="tresc" cols="50" rows="8"></textarea></td></tr>
  25. <tr><td align="center" colspan="2">
  26. <input type="hidden" name="ip" value="'.$ip.'" />
  27. <input type="hidden" name="host" value="'.$host.'" />
  28. <input type="submit" name="wpisz" value="Dodaj pozdrowienia" /></form></table></td></tr>
  29. </table></tr></tbody></table>';
  30.  
  31. ?>
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.