Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio
Motorola edge 70 Fusion FIFA World Cup 26 Edition porta la maglia iridata su uno smartphone accessibile: display Extreme AMOLED da 6,78 pollici a 144Hz, fotocamera Sony LYTIA 710 con moto ai, Snapdragon 7s Gen 3 abbinato a 8GB di RAM, batteria da 5200 mAh con ricarica TurboPower a 68W e certificazione IP68/IP69, il tutto in una veste PANTONE Silhouette con logo dorato a 24 carati, moto buds bass incluse in confezione e contenuti software dedicati ai Mondiali 2026
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-04-2005, 20:04   #1
cicoandcico
Senior Member
 
L'Avatar di cicoandcico
 
Iscritto dal: Sep 2001
Città: Poppi (AR)
Messaggi: 764
[PHP] sessioni che cambiano gli array???

ho un problema stranissimo con l'uso delle sessioni in php. il codice è riportato sotto.
vi descrivo il funzionamento e il problema: getusers è una funzione che ritorna gli utenti iscritti a una mailing list (crittati) sotto forma di un array con la forma UTENTE => TIMESTAMP. il codice è ottimizzato per caricare tale array una volta sola, a meno di eventuali modifiche al numero di utenti stesso: per fare questo tiene una variabile di sessione con la data di ultima modifica. fin qui tutto funziona bene, l'array viene caricato correttamente e stampato.
il problema è quando si fa il refresh: l'array, senza che nessuno glielo chieda, si modifica!
Codice:
*OUTPUT PRIMA DEL REFRESH*:
filemtime: 1113663839
last_users_modified: 0
refreshing users...
Array ( [me2V1XMjpw7ea] => 1113663839 [me2V1ONfVeDdZvARyNRO] => 1113663809 [me2V1dMbiY@1Q2-] => 1113663596 )
Codice:
*DOPO IL REFRESH*:
Array ( [0] => me2V1dMbiY@1Q2-_~_1113663596 [1] => me2V1ONfVeDdZvARyNRO_~_1113663809 [2] => me2V1XMjpw7ea_~_1113663839 )
è come se venisse chiamata, la seconda volta, la funzione getusers(true, true), però nessuno la chiama! ne è la prova che non vengono stampate le linee:
filemtime: 1113663839
last_users_modified: 0
refreshing users...

il bello è che sul mio pc tutto funziona bene, su altri invece no. inoltre se non uso il blocco per l'ottimizzazione, e uso direttamente la
$users = getusers(true);
tutto funziona bene. il problema è proprio, a quanto sembra, che nel refresh la variabile $_SESSION['users'] viene reinizializzata come getusers(true,true). io non so veramente che pesci pigliare.

Codice PHP:
session_start();

function 
getusers($valid$report_filenames false)
{
    global 
$addresses_dir;
    
$users = array();
    if (
$handle opendir($addresses_dir))
    {
    while (
false !== ($file readdir($handle))) 
    {
        if (
$valid && $file != "." && $file != ".." && !strstr($file"~--OLD--~")) array_push ($users$file);
        if (!
$valid && $file != "." && $file != ".." && strstr($file"~--OLD--~")) array_push ($users$file);
    }}
    if (
$report_filenames == true) return $users;
    
$user_array = array();
    foreach(
$users as $item){
        
$user_data explode("_~_"$item);
        if (
$valid$user_array[$user_data[0]] = trim($user_data[1]); //filenames->timestamps
        
else $user_array[$user_data[0]] = str_replace("~--OLD--~"""trim($user_data[1]));
    }
    
arsort($user_array);
    return 
$user_array;
}

//Retrieving users and groups with performance optimization
//(users are retrieved once and saved in a session var, that is refreshed ONLY when they are modified)
if (!isset($_SESSION['users'])) $_SESSION['users'] = array();
if (!isset(
$_SESSION['last_users_modified'])) $_SESSION['last_users_modified'] = 0;
if(
filemtime($addresses_dir) > $_SESSION['last_users_modified']) {
    print 
"filemtime: ".filemtime($addresses_dir)."<br>last_users_modified: ".$_SESSION['last_users_modified']."<br>refreshing users...<br>";
    
$_SESSION['last_users_modified'] = filemtime($addresses_dir);
    
$_SESSION['users'] = array();
    
$_SESSION['users'] = getusers(true);
}
$users = &$_SESSION['users']; 
print_r($users); 
__________________
PaintedHomepage.com - Cicoandcico company
la vera forza non sta nel non cadere mai, ma nel risollevarsi dopo una caduta.
cicoandcico è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola edge 70 Fusion FIFA World Cup 26 Edition: un ottimo smartphone per i fan del calcio Motorola edge 70 Fusion FIFA World Cup 26 Editio...
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
GPU AI NVIDIA come il vino: il loro valo...
5 ricche novità nelle offerte TOP...
Ritorna Windows XP su Mac grazie a un fo...
ho. Mobile lancia la promo di agosto: 1 ...
XPeng L03 scuote il mercato europeo: pre...
70mai A810 Lite a 99,99€: dashcam 4K con...
Pronto l'accordo per 500 ettari di terre...
Mark Zuckerberg ha chiuso la sua scuola ...
SIHOO B100 scende ancora su Amazon a 161...
Scozia, indagine su un TikToker: riprend...
Le schede video con 16 GB di VRAM supera...
Dave Bautista interpreterà Kratos...
Friggitrice ad aria Princess XXL da 8 li...
Nuovi rincari in arrivo per le schede ma...
Offerte componenti PC oggi: sconti su sc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v