Newsgroup: it.comp.www.php
Titolo: c'e' in php un oggetto application

Salve a tutti, da poco utilizzo il php per i miei lavori, e mi piace
parecchio :-)
Adesso devo sviluppare un progetto in cui mi farebbe molto comodo avere
qualcosa di simile all'oggetto application dell'asp. In pratica vorrei
costrire uno script che mi visualizza gli utenti collegati al sito in modo
che ognuno di loro sappia chi e' collegato ed eventualmente inviarli un
messaggio. Quello che mi serve e' un modo per memorizzare le caratteristiche
degli utenti collegati e fare in modo che sia disponibile a tutti. Qualcuno
ha un suggerimento?
Grazie
    Giorgio

ha un suggerimento?
Database.
Shared memory.
File su disco, con locking.
Leonardo

 File su disco, con locking.
Questa non ci avevo pensato.
Comunque mi sono scaricato lo script per fare una chat,  me lo studio cosi'
vedo come hanno fatto loro.
Grazie
    Giorgio

 ha scritto nel messaggio
news:a4eja1$srk$1...@news.flashnet.it...

global.asa e application mancano...
per quello che cerchi ci sono molti script e tutorial su diversi siti di
php.
dai un'occhiata alla funzione register_shutdown_function (
http://www.php.net/manual/en/function.register-shutdown-function.php
 ) e
alle funzioni di buffering

Questa non so cos'e' !?
Guarda il manuale per shm_attach() :-) ... in pratica puoi creare un'area
di memoria sincronizzandone l'accesso con sem_acquire(), poi scriverci, e
tutti i processi PHP possono leggere quello che c'e' dentro:
function memshare($direction = 'out' /* od 'out' */)
{
        GLOBAL $SHARED;
        // Meglio curarsi il palo...
        if ($direction == 'in')
                register_shutdown_function('memshare');
        $semid = sem_get(666, 1);
        // Inizio sezione critica
        sem_acquire($semid);
                $shmid = shm_attach(666, 10240); // 10 Kb max memory
                if ($direction == 'in')
                {
                        $dummy = @shm_get_var($shmid, 666);
                        if ($dummy) $SHARED = $dummy;
                }
                else
                        shm_put_var($shmid, 666, $SHARED);
                shm_detach($shmid);
        sem_release($semid);
}
        memshare('in');
        if (isset($SHARED['SystemName']))
                print "Questo sistema è $SHARED[SystemName].\n";
        else
                $SHARED['SystemName'] = "Linux";
	print "OK.\n";
?>
Risultato:
$ ./test.php
OK.
$ ./test.php
Questo sistema è Linux.
OK
$ 
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...

        sem_release($semid);
Modifichiamo in:
         sem_acquire($semid);
                switch($direction)
                {
                        case 'in':
                                $dummy = @shm_get_var($shmid, 666);
                                if ($dummy) $SHARED = $dummy;
                                break;
                        case 'out':
                                shm_put_var($shmid, 666, $SHARED);
                                break;
                        case 'destroy':
                                shm_remove (666);
                                break;
                }
        sem_release($semid);
...che il destroy pòle torna' utile.


 tutti i processi PHP possono leggere quello che c'e' dentro:
Apropos di semafori: ammettendo che il meccanismo di locking usato da
flock() non sia sufficiente, posso usare, al posto di flock, un
semaforo per regolare la scrittura su un file a cui possono accedere
varie sessioni simultaneamente?
Conviene (rispetto a flock[1])?
+++
[1] Non so se flock() al suo interno usi gia` di per se un semaforo, non
ho il codice di PHP sottomano...
Bye,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

Conviene (rispetto a flock[1])?
Si', non c'e' l'overhead dell'accesso all'IFS.
Leonardo

 Si', non c'e' l'overhead dell'accesso all'IFS.
Capito, grazie...
