Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Nowe wiadomości/cookie
Forum PHP.pl > Forum > PHP
Mappet
Witam
  1. <?
  2. include_once('zaloga/'.trim($_SESSION['log']).'.dat');
  3. $openFile = file('msg/'.trim($_SESSION['log']).'_msg.dat');
  4. $countMsg = count($openFile);
  5. $countNewMsg = $countMsg - $_COOKIE[$id];
  6. if(!$_COOKIE[$id]){setcookie($id, $countMsg, time()+3600);}
  7. ?><a href=\"index.php?admin=msg&cookie=del\">Wiadomosci [<?=$countMsg?>]</a><?
  8. if($countNewMsg !== 0){
  9. echo 'Masz '.$countNewMsg.' nowe wiadomosci w skrzynce'; 
  10. }else{
  11. echo 'Aktualnie nie masz nowych wiadomoœci';
  12. }?>


Cos mi w powyższym kodzie się sypie. problem jest z Pokazywaniem czy sa nowe wiadomości czy nie. Jak nie ma ciacha to pokazuje ilość nowych wiadomości taka jaka jest w pliku $_SESSOION.'_msg.dat'. Chciałem by przez jakiś czas się owa informacja pokazywała. Do momentu kiedy nie wejdzie w link Wiadomości. Gdy odwiedzi tą stronę, nowe wiaomości zostają przeczytane...

Może radzicie inne zmienne zapisać ? No sam już nie wiem, wszystko jako tako działa, poza właśnie tym jednym mankamentem.
Ślepiec
sposób trochę dziwny.........jeśli po 3 godzinach i jedej sekundzie po poprzednim zalogowaniu wpadniesz na strone to ciacho już umrze, czyli zginie zapis o poprzednej ilości postów......
ja bym ciacha wywalił

lepiej dodaj do postów inforamcje czy był czytany i czy nie jest nowy :

id_postu|od_kogo|treść|data|godzina|0|1|

pierwsza liczba(0) to czy był czytany
druga(1) czy jest nowy

0 (tak) , 1 (nie)

gdy odczytasz list to zmnieniasz pierwszą liczbę, a jak logujesz się to zmieniasz drugą

jak chcesz to ulepszyć do dodaj pogrubienia gdy list jest nowy, a kursywę gdy nie czytany......

pomyśl nad tym.....
Mappet
Cały czas zastanawiam się nad pomysłem dodawania do bazy danych, dwoch dodatkowych pól. Lecz w chwili wolnego czau, napisałem trochę inny skrypt, jak narazie działa. Musze jeszcze pomyśleć czy nie dodać czasu na kilka dni, lub dzień...nie wiem zobaczę jeszcze..to jest wersja beta.
  1. <?
  2. $openFile = file('msg/'.trim($_SESSION['log']).'_msg.dat');
  3. $countMsg = count($openFile);
  4. if($_COOKIE[$id]){
  5. if($countMsg > $_COOKIE[$id]){
  6. $countNewMsg = $countMsg - $_COOKIE[$id];
  7. $infoMsg = 'Masz '.$countNewMsg.' nowe wiadomosci w skrzynce'; 
  8. }else{
  9. $countNewMsg = 0;
  10. $infoMsg = 'Aktualnie nie masz nowych wiadomoœci';
  11. setcookie($id, &#092;"\", time()-3600*12);
  12. }
  13. }else{
  14. setcookie($id, $countMsg, time()+3600*12);
  15. $countNewMsg = 0;
  16. $infoMsg = 'Aktualnie nie masz nowych wiadomoœci';
  17. }?>
Ślepiec
czyli chcesz aby cookie zylo 12 godzin questionmark.gif

moze lepiej w pliku usera dodac ile mial poczty przed logowaniem questionmark.gif
rogeros
a nie lepiej zapisywac date ostatniego logowania
oraz date dodania wiadomosci

i jesli data logowania jest mniejsza od daty wiadomosci wtedy (wiadomosc nie przeczytana)
Ślepiec
też miła opcja.........

sposobów jest wiele.......ale wydaje mi się, że ta z ciachami jest najgorsza (to jest moje zdanie)
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.