comportamento strano delle sessioni

shainer

Nuovo Utente
18 Mar 2007
1
0
0
Ciao,
vi spiego la situazione. Ho un form che invia i dati ad uno script di nome mail.php . Questo script deve salvare i dati in un file e poi chiamare un secondo form: una volta riempito, mail2.php prende i dati del file di prima + quelli appena inseriti e li manda per email. Solo che il nome del file deve cambiare in continuazione altrimenti se due utenti stanno riempiendo i moduli contemporaneamente il file viene sovrascritto e si incasinano i dati. Quindi ho fatto questo

--- mail.php ---
session_start();
$_SESSION['numero'] = 1 + rand() % 100;
session_write_close();
$filename = "temp" . $_SESSION['numero'] . ".txt";
// apro il file in scrittura e ci scrivo i dati...
-----

--- mail2.php ---
session_start();
$filename = "temp" . $_SESSION['numero'] . ".txt";
// leggo i dati dal file
--------------

Ecco cosa mi succede: l'utente 1 riempie il form e mail.php genera ad ex. il numero 34 creando temp34.txt . L'utente 2 intanto riempie il form e mail.php genera 25 creando temp25.txt. Quando l'utente 1 invoca mail2.php, in $_SESSION['numero'] c'è 25 e quindi vengono letti i dati relativi al secondo utente. Anche altre soluzioni (tipo session_register() o altri espedienti) presentano lo stesso problema. L'array di sessione non dovrebbe essere unico per ogni sessione?!
Dove sbaglio? Che suggerimenti potete darmi?
Grazie dell'attenzione,
shainer