Newsgroup: it.comp.www.php
Titolo: Sessioni... non ci capisco più nulla!

Ciao a tutti,
mi scuso inanzitutto della mia ignoranza... sono uno sviluppatore ASP e
tutti i casini di utilizzo del linguaggio come su PHP non ne ho mai
avuti.... (vi prego di non prenderla come una polemica).
Il mio problema è questo:
- voglio assegnare un valore pescato da un DB ad una variabile di sessione
del tipo "User_ID"...
- poi voglio che in un'altra pagina venga utilizzata quella variabile
(User_ID) per filtrare un recordset...
- poi volgio continuare a portarmi a spasso la mia varibile per diverse
pagine...
premetto che uso la versione 4.2.2 di php
vi prego di aiutarmi dandomi delle indicazioni precise su come scrivere il
codice e di dove metterlo nelle varie pagine. ho cercato su internet e ogni
faq/tutorial su PHP che parla delle sessioni mi indica un diversa sintassi
per risolvere il problema....
Adesso o sono io che sono maniaco di uno standard di codificazione oppure ho
sbagliato tutto.
Vi prego di darmi delle indicazioni, saluti a tutti luca
---
Questa mail  è Virus Free certified.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.377 / Virus Database: 211 - Release Date: 15/07/2002

 avuti.... (vi prego di non prenderla come una polemica).
Ehehe... purtoppo non so darti una risposta... anche perche ho lo stesso
problema che hai tu... 8-))
Saludos...

 avuti.... (vi prego di non prenderla come una polemica).
Allora non scriverlo...
-- 
Ignorance is bliss (Matrix)

ciao in tutta la mia buona sincerità veramente non voglio essere polemico ma
vorrei imparare.... ciao luca


: mi scuso inanzitutto della mia ignoranza... sono uno sviluppatore ASP e
: tutti i casini di utilizzo del linguaggio come su PHP non ne ho mai
: avuti.... (vi prego di non prenderla come una polemica).
ovvio.. ASP non è un linguaggio =P
: - voglio assegnare un valore pescato da un DB ad una variabile di sessione
: del tipo "User_ID"...
: - poi voglio che in un'altra pagina venga utilizzata quella variabile
: (User_ID) per filtrare un recordset...
: - poi volgio continuare a portarmi a spasso la mia varibile per diverse
: pagine...
:
: premetto che uso la versione 4.2.2 di php
:
: vi prego di aiutarmi dandomi delle indicazioni precise su come scrivere il
: codice e di dove metterlo nelle varie pagine. ho cercato su internet e
ogni
: faq/tutorial su PHP che parla delle sessioni mi indica un diversa sintassi
: per risolvere il problema....
prima pagina:
session_start();
$MyVar = "Variabile di Sessione!";
session_register("MyVar");
echo($MyVar);
echo("<br><br><a href='session2.php'>Link</a>");
pagina Session2.php
session_start();
echo($_SESSION["MyVar"]);
--
CIAO!
Gusher


prova, riprova e se il php non ti piace ritorna in ASP, tanto fa le stesse
cose in modo leggermente diverso.
ciao



La cosa è molto semplice.
All'inizio di ogni pagina, e sottolineo OGNI pagina, scrivi:
session_start();
poi per ogni variabile, di qualiasi tipo, che vuoi registrare scrivi:
session_register('User_ID', 'un_array');
$User_ID = 'Id_del_tuo_utente';
$un_array = array(1,2,3);
Nota che in session_register() va indicato il nome della variabile senza $.
A questo punto puoi accedere  alle variabili che hai salvato, in altre
pagine, tramite la matrice globale $_SESSION, quindi:
$User_ID = $_SESSION('User_ID');
$mio_array = $_SESSION('un_array');
ovvero $_SESSION('nome_variabile') conterrà il valore della relativa
variabile che hai salvato con session_register().
Infine per distruggere la sessione:
session_start();
session_destroy();
That's all.
Ciao,
Nico
PS: comprati un buon manuale di PHP e dimentica ASP :-)

 pagine...
Nel momento che la registri te la porti anche a spasso. ricordati il
session_start()
Ma una lettura del manuale costa così tanto??
http://it.php.net/manual/it/ref.session.php
Ti dice tutto in modo aggiornato.. (tranne quella cosa dell' unset $_SESSION
che personalmente non mi quadra.. vedere mio post qui sotto...).

 session_register('User_ID', 'un_array');
Non si dovrebbe più usare session_register...
Registrare la var di sessione:
session_start();
$_SESSION['chisono'] = "Io sono una variabile di sessione...";
Riprenderla...
session_start();
echo "Questa è la variabile che ho registrato: $_SESSION[chisono]";


Ok. Sono ancora in fase di transizione dalla 4.06 alla 4.2.2  ;-D

Ciao a tutti,
inazitutto mi vorrei scusare della piccola polemica che ho innescato tra ASP
vs PHP... non era mia intenzione, ma ieri sera dopo 8 ore di full immersion
in PHP e con quel cavolo di problema sulle sessioni che non ero in grado di
risolvere, forse sono stato un pò pesante.
Vorrei invece ringraziarvi a tutti per le dritte e i consigli, adesso ho
implementato il codice nelle pagine e tutto funziona.
grazie 1000 a tutti.


Ora sono io a non capirci piu nulla, anche io devo passarmi una variabile in
giro per il mio sito, contento di questa FAQ, mi sono messo all'opera, ma
non funziona nulla..........
questa è la pagina di codice che richiama la sessione.......
session_start();
mysql_connect('il mio','','') or die ("non riesco a collegarmi al db");
mysql_select_db("dbtutto") or die ("non riesco a selezionare il db");
$str=mysql_query("select * from regutenti where user='$user'");
$array=mysql_fetch_array($str);
if (($array[user]=='') or ($array[password]!=$password))
{
print"user o password sbagliati";
echo '<a href="/enter.php"> Torna indietro</a>';
}
else
{
session_register('idutente');
$idutente=$array[id_utente];
echo '<a href="/enter2.php?<?=SID?>">ENTRA</a>';
}
mysql_close();
...........mi viene restituito il seguente errore............
Warning: Cannot send session cookie - headers already sent by (output
started at c:\programmi\apache group\apache\test\enter.php:4) in
c:\programmi\apache group\apache\test\enter.php on line 5
Warning: Cannot send session cache limiter - headers already sent (output
started at c:\programmi\apache group\apache\test\enter.php:4) in
c:\programmi\apache group\apache\test\enter.php on line 5
Warning: open(/tmp\sess_1b5b771dccfc6f347db02dffcccccd1b, O_RDWR) failed: No
such file or directory (2) in c:\programmi\apache
group\apache\test\enter.php on line 5
Warning: open(/tmp\sess_1b5b771dccfc6f347db02dffcccccd1b, O_RDWR) failed: No
such file or directory (2) in Unknown on line 0
Warning: Failed to write session data (files). Please verify that the
current setting of session.save_path is correct (/tmp) in Unknown on line
0<br
.... praticamente si fera alla chiamata session_start();
AIUTATEMI vi prego, ora impazzisco...... ho fatto mille prove
.............blu............


 ha scritto nel messaggio
news:aqN19.21434$lu5.5...@twister1.libero.it...

E' importante che prima si session_start() non ci sia nessun output.
Verifica, per esempio che non ci sia nulla (neanche righe bianche o spazi)
prima del tag <? e che prima di session_start() non ci siano comandi echo o
print o die o similari.
Inoltre non hai dichiarato una cartella valida come cartella temporanea di
sessione: crea una cartella (per es. c:\temp), apri il file
c:\windows\php.ini (o c:\winnt\php.ini), cerca la variabile
session.save_path e scrivi "c:\temp" senza virgolette. Salva e riavvia
Apache.
Nota comunque che il codice seguente non funziona se nel tuo php.ini c'è
register_globals = off (di default dalla 4.2.x). In tal caso cambia in
register_globals = on e riavvia il Apache.
Ciao e fammi sapere,
Nico


Perfetto....il problema era semplicemente la cartella c:/temp che non era
dichiarata......
grazie
...blu...