![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Mam taki oto problem:
jestem w trakcie pisania ksiegi gości i chcę zrobić blokadę przed nabijaniem wiadomości. Napisałem taki oto kod, ale coś nie działa, bo cały czas się pokazuje "Musisz poczekać 30 sekund aby dodać kolejny wpis." oto kod: [php:1:a34fbe0691]<?php if(empty($HTTP_SESSION_VARS["ostatni"])) { $last=time(); } else { $last=$HTTP_SESSION_VARS["ostatni"]; } if(floor(time()-$last)>30) { $ostatni=time(); session_register("ostatni"); // instrukcje } else { echo "<br><b>Musisz poczekać ".abs(floor((time()-$last)-30))." sekund aby dodać kolejny wpis.</b>"; } ?>[/php:1:a34fbe0691] Co tu może być nie tak? |
|
|
|
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
zrób to na cookie, bo coś ci mi się wydaje, że przy nowych sesjach twój kod się wywala
albo przy nowych sesjach nie sprawdzaj tego warunku //edit nie, coocie nic nie pomoże. Po prostu nie sprawdzaj tego warunku przy nowych sesjach |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie potrzebna ci funkcja floor()...
Ona zaokrągla ułamki, a time() zwraca int... |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat nie, coocie nic nie pomoże. Po prostu nie sprawdzaj tego warunku przy nowych sesjach
A nawet działa :-) Odlicza czas, teraz tylko musze napisać warunek który nie daje użytkownikowi cookie, jeśli był pierwszy raz. Cytat Nie potrzebna ci funkcja floor()...
No fakt, po prostu floor daje z przyzwyczajenia :-) BTW: ona nie zaokrągla ułamków, jedynie obcina częsci ułąmka po kropce. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%)
|
Cytat BTW: ona nie zaokrągla ułamków, jedynie obcina częsci ułąmka po kropce.
Inaczej mówiąc zaokrągla w dół... :wink: |
|
|
|
Post
#6
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%)
|
Cytat BTW: ona nie zaokrągla ułamków, jedynie obcina częsci ułąmka po kropce. i kropke też (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat Inaczej mówiąc zaokrągla w dół...
No, można na to też spojrzeć w ten sposób :-) A oto rozwiązanie, jakby ktoś był zainteresowany: [php:1:8890bf8e4e]<?php if(!empty($HTTP_POST_VARS["pole"]["tresc"]) && empty($HTTP_COOKIE_VARS["ostatni"])) { setcookie("ostatni",time()); } if(!empty($HTTP_POST_VARS["pole"]["tresc"]) && ((time()-$HTTP_COOKIE_VARS["ostatni"])>35)) { setcookie("ostatni"); setcookie("ostatni",time()); } ?> treść strony html itd. <? if(empty($HTTP_COOKIE_VARS["ostatni"])) { $last=time(); } else { $last=$HTTP_COOKIE_VARS["ostatni"]; } if(floor(time()-$last)>30) { // instrukcje } else { echo "<br><b>Musisz poczekać ".abs((time()-$last)-30)." sekund aby dodać kolejny wpis.</b>"; } ?>[/php:1:8890bf8e4e] |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat musze napisać warunek który nie daje użytkownikowi cookie, jeśli był pierwszy raz.
No właśnie i nadal mam problem z tym. Wszystko działa jak należy, ale gdy użytkownik po raz pierwszy chce napisać jakąś wiadomość to i tak wyświetla mu się "Musisz poczekać...." - przy następnych jest już ok. Jak to zrobic? |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%)
|
Cytat Cytat musze napisać warunek który nie daje użytkownikowi cookie, jeśli był pierwszy raz.
No właśnie i nadal mam problem z tym. Wszystko działa jak należy, ale gdy użytkownik po raz pierwszy chce napisać jakąś wiadomość to i tak wyświetla mu się "Musisz poczekać...." - przy następnych jest już ok. Jak to zrobic? Tu jest błąd: [php:1:2063f228ba]<?php if(empty($HTTP_COOKIE_VARS["ostatni"])) { $last=time(); } ?>[/php:1:2063f228ba] Jeśli wchodzi i zapisuje się po raz pierwszy to cookie jeszcze nie działa (dopiero po przeładowaniu strony zacznie) - więc gość automatycznie nie może się dopisać, bo nadajesz mu jako ostatni czas dopisywania aktualny czas :-). |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Kurde, jaki ze mnie osioł :-) Myślałem, kombinowałem i cudowałem z ciastkami jak zrobić, żeby za pierwszym razem nie pojawiał się komunikat, że trzeba czekać xx sekund na dodanie.
A na najprostsze rozwiązanie nie wpadłem [php:1:887edbaccc]<?php if(empty($HTTP_COOKIE_VARS["ostatni"])) { $last=0; } else { $last=$HTTP_COOKIE_VARS["ostatni"]; } ?>[/php:1:887edbaccc] |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%)
|
Cytat [php:1:e39c7ca936]<?php
if(empty($HTTP_COOKIE_VARS["ostatni"])) { $last=0; } else { $last=$HTTP_COOKIE_VARS["ostatni"]; } ?>[/php:1:e39c7ca936] No i teraz jest git ;-) |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 22.06.2003 Skąd: Ostrołęka Ostrzeżenie: (0%)
|
(IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Moze mi ktos popwiedzieć co mam wziąć i gdzie wstawić?
|
|
|
|
Post
#13
|
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%)
|
Cytat (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Moze mi ktos popwiedzieć co mam wziąć i gdzie wstawić?
Weź się w garść i wstaw się za spenem. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 1 Dołączył: 26.02.2004 Skąd: kielce. //Świętokrzyskie Ostrzeżenie: (0%)
|
a jak nie ma cookies wlaczonych skrypt padnie z cookies (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 00:26 |