Newsgroup: it.comp.www.php
Titolo: SESSIONI - BUIO TOTALE!

Ho letto e riletto il capitolo delle sessioni sul manuale, ho controllato,
modificato php.ini in vario modo, ho copiato e provato vari esempi presi da
altri post su questo NG, ma sembra che ci sia sempre quaclosa che non
funziona.
Oggi ho settato le direttive:
log_errors = On
error_log = c:\php\errors.txt
e quando accedo a pagine con session_start() viene generato questo errore:
[08-Nov-2001 09:23:58] PHP Warning:
open(/tmp\sess_fbf87c547100b1efe6b00352182eea3d, O_RDWR) failed: m (2) in
Unknown on line 0.
Altre direttive coinvolte:
register_globals = On  // ma anche con off non funzia!
register_argc_argv = On  // ma anche con off non funzia!
track_vars is ALWAYS enabled as of PHP 4.0.3 // non c'è direttiva su
php.ini, è già
compilato così.
Configurazione di sistema: WindowsME (sigh!), Apache 1.3.22, PHP 4.0.6,
mySQL 3.23.43.
Tra gli script che ho provato ci sono questi:
<?php
// file pag1.php
session_start();
$alfa= 'prova';
session_register('alfa');
echo '<a href="pag2.php">pagina2</a>';// provato anche a passare il SID come
parametro
?>
<?php
//file pag2.php
session_start();
echo $alfa;
?>
A video non ottengo nessun errore, ma neanche il contenuto di $alfa; sul log
errori, l'errore riportato prima.
A questo punto non mi resta che confidare sul vostro aiuto su i seguenti
punti:
- Quali direttive settare e come in php.ini?
- Nell'esempio citato, è corretto il modo di aprire la sessione in entrambi
le pagine?
- La seconda (o successive) pagine devono essere chiamate da link sulla
prima o non importa?
Quello che vorrei ottenere, e credo che lo scopo delle sessioni sia proprio
questo, è connettermi ad un database sulla prima pagina, registrare dei dati
fissi, utilizzarli sulle pagine successive, registrare altri dati da
utilizzare su altre pagine.
Visto che il messaggio è lungo e le domande multiple, vi concedo qualche
giorno per pensarci sù !:-))
Grazie in anticipo.
--
Ciao, Piero.
http://www.qsl.net/ik2vtj
http://www.ardf.it
Togli  /  Remove
NONVOGLIOSPAM
dall'indirizzo  /  from address

Unknown on line 0.
Bene. Secondo te, cosa sta (cercando di) fare "open(...)"?
Una volta che l'hai capito, scopri:
	a) Dov'e' l'errore
		-> e chi lo causa in PHP.INI
	b) Come fare funzionare le sessioni
	c) Come indagare in futuro problemi analoghi
Leonardo alla cinese
-- 
Nior thainig ar major i dtus an lae chugainn,
is ni rabhamar fein ann i gcoir na gceart
ach mar sheolfai aoireacht bo gan aoire,
ar thaobh na greine de Sliabh na mBan.

open(/tmp\sess_fbf87c547100b1efe6b00352182eea3d, O_RDWR) failed: m (2) in
Io intanto ti rispondo a questa:
specifica nel php.ini la directory tmp.
Es in windows 98  sara di norma
C.\windows\temp
Ciao,
Cristian.

prima o non importa?
di norma lo script(il primo) che hai fatto deve avere questo ordine:
session_start();
session_register("alfa"); // metti le virgolette
$alfa= "prova"; // anche qui non necessario ma meglio
echo '<a href="pag2.php">pagina2</a>';
Fammi sapere.
Ciao,
Cristian.

Ti ringrazio molto, ma la tua risposta è chiara quanto il motto nella tua
firma! :-)))



In php.ini il path impostato è " /tmp" (senza virgolette).
No sapendo se si riferisse alla radice del 'localhost' o alla radice del
disco c:
ho provato prima creando la cartella tmp sotto localhost e poi a cambiare il
path in c:\temp; in entrambi i casi non funziona.
Forse non ho provato co c:\windows\temp.
--
Grazie, Piero.


 Cristian.
Ma con quest'ordine,  $alfa non viene registrata 'indefinita' ?
Proverò.


firma! :-)))
Significava in soldoni che l'errore e' che non riesce a scrivere il
file che dovrebbe storare le variabili perche' il path non
esiste...crealo e settalo in php.ini ..di default e' settato a /tmp ma
tu non sei sotto Linux, quindi crea una cartella c:\temp e imposta in
php.ini ; non escludo che possa esser necessario impostare c:\temp\ ma
non so esattamente come si comporta sotto win.
Significava anche che devi leggere attentamente i messaggi di errore
il che ti risparmiera' in seguito diverse perdite di tempo, tipo
aspettare che ti rispondano nei newsgroups.
Ciao
--------
Paolo Dell'Unto
gab...@tiscalinet.it
ICQ # 770759

Forse non ho provato co c:\windows\temp.
Vedrai che specificando il percorso che hai scritto funziona(almento
dovrebbe!  ;-) )

 Cristian.
Risolto!
Il '/tmp' nel file php.ini stà ad indicare la dir radice del disco c:.
Io avevo creato la dir 'tmp ' ma avevo settato 'c:\tmp' e non funzionava :-(
Comunque ora registra tutte le variabili (anche se session_register() viene
eseguita prima di dichiarare una variabile), tranne la var che definisce la
connessione, cioè devo sempre effettuare la mysql_connect
per ogni pagina... poco male!
--
Grazie, Piero.
