![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam takie pytanko.
Jak ustawić sesje, żeby była widoczna dla wszystkich subdomen i domeny głównej? W tej chwili sesja otwarta na www.domena.pl nie jest juz dostepna na pomoc.domena.pl itp. Oczywiscie cala domena jest moja. 2. Jak w skuteczny sposob mozna sprawdzac czy posty na forum byly przez nas juz czytane. Cos tekiego jak na phpBB. Tak sobie wymyslilem, ze jesli data ostatniego zalogowania byla wczesniej niz napisany post to temat bedzie nie przeczytany. Tylko jak potem oznaczyc go jako przeczytany. Przeciez nie bede robil tabeli z wszystkimi postami i userami a jesli sie juz ktos zaloguje nastepnym arzem to odznaczy wszystkie jako przeczytane ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 1 Dołączył: 19.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Co do subdomen, to trzeba zmienic wlasciwosci cookie, jakie odpowidzialne jest za przezawywanie id sesji, czyli session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]]), jako domain podajesz "domena.pl"
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Kraków / Będzin Ostrzeżenie: (0%) ![]() ![]() |
2. Mozna by zapisywac id tematow, ktore date maja nowsza od ostatniej akcji uzytkownika na forum (oczywiscie nie aktualnego, tylko poprzedniego logowania) przeczytanych przez uzytkownika zapisywac w sesji.
To rozwiazanie teraz mi wpadlo do glowy, aczkolwiek moga byc jakies inne lepsze ![]() -------------------- chaos to tylko inny rodzaj porządku ... bardziej skomplikowany...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
1. Zapisz w sesji tablicę wszystkich postów o dacie powstania większej niż ostatnia aktywność usera
2. Wyswietl odpowiedni wątek 3. Dla kazdego postu w wątku sprawdzaj czy jego id istnieje w tablicy 3a. jesli istnieje, usun z tablicy Przy kazdym odswierzeniu strony dochodza nowe ID do juz istniejacych w sesji. (a niewyswietlocyh) Wady:[list]To chyba jest najjprostrze. daje mozliwosci:[list]Nie wiem, czy tak tojest zrobione na phpBB, ale na logike i obserwacje biorąc tak. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ok wielkei dzieki to jeszcze 2 takie pomocnicze pytania. Jak najefektywniej podac czas ostatniej aktywnosci usera?
I drugie. Zgodnie z zaleceniem scannera. Powiedzmy ze zapisuje nieczytane watki w bazie danych. Jesli ktos jest zalogowany to w odpowiedniej dla niego tabeli sprawdza dane. Zalozmy ze zapisze je w takiej formie: #id_postu# i potem jesli user wejdzie gdzies gdzie jest cos takeigo wyswietlane to potraktowac to str_replace("#$id_postu#","",$nieczytane) czy jest jakis lepszy sposob? Albo jak te nie odwiedzone posty trzymac w bazie zeby miec mozliwosc usuwania wszystkich z kategorii tak jak pisal scanner? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Moge jeszcze prosic o dokladny przyklad na to session_set_cookie_params?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
Cytat Powiedzmy ze zapisuje nieczytane watki w bazie danych. Jesli ktos jest zalogowany to w odpowiedniej dla niego tabeli sprawdza dane. Zalozmy ze zapisze je w takiej formie: #id_postu# i potem jesli user wejdzie gdzies gdzie jest cos takeigo wyswietlane to potraktowac to
str_replace("#$id_postu#","",$nieczytane) czy jest jakis lepszy sposob? Albo jak te nie odwiedzone posty trzymac w bazie zeby miec mozliwosc usuwania wszystkich z kategorii tak jak pisal scanner? ja bym może zrobił troszke inaczej.. trorzyłbym TABLICE z wartością $id_postu dla postów które są nieprzeczytane (od daty), tą tablice wkłądam do bazy za pomocą funkcji [manual:7a4f528041]serialize[/manual:7a4f528041]. potem jak bym chciał wyciągnąć z bazy danych użyłbym funkcji [manual:7a4f528041]unserialize[/manual:7a4f528041] i jak bym chciał skasować to bym poprostu skasował dany klucz i wartość z tabeli (oczywiście po uprzednim sprawdzeniu czy takowy istnieje). |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat Zgodnie z zaleceniem scannera.
Wstęp do implementacji:[php:1:5beb4e5a8e]<?php
Powiedzmy ze zapisuje nieczytane watki w bazie danych. Jesli ktos jest zalogowany to w odpowiedniej dla niego tabeli sprawdza dane. Zalozmy ze zapisze je w takiej formie: #id_postu# i potem jesli user wejdzie gdzies gdzie jest cos takeigo wyswietlane to potraktowac to str_replace("#$id_postu#","",$nieczytane) czy jest jakis lepszy sposob? Albo jak te nie odwiedzone posty trzymac w bazie zeby miec mozliwosc usuwania wszystkich z kategorii tak jak pisal scanner? // wyciagamy nieczytane posty z bazy: $resSQLResults = mysql_query( 'SELECT post_id FROM posts WHERE post_date > users.last_activity' ); while( $arrRow = mysql_fetch_row( $resSQLResults ) ) { $_SESSION['Unreaded'][] = $arrRow['id']; } // wyswietlajac posta, robimy taki myk: $resSQLResults = mysql_query( 'SELECT * FROM posts WHERE .....' ); while( $arrRow = mysql_fetch_row( $resSQLResults ) ) { // usuwany z tablicy nieprzeczytanych if( ( $intKey = array_search( $arrRow['post_is'], $_SESSION['Unreaded']) ) !== false ) { unset( $_SESSION['Unreaded'][$intKey] ); // tutaj mozemy tez wstawic wyswitlenie ikonki przy danym poscie oznaczajacej "nieczytane" } } //Na samym koncu skryptu, zapisujemy nopwy czas aktywnoci jako NOW() ![]() ?>[/php:1:5beb4e5a8e] -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 18:09 |