Newsgroup: it.comp.www.php
Titolo: Sessioni da PHP 4.2.3 a 4.3.1 non funzionano più

Nella pagina registra_sessioni.php ho questo codice che mi registra tutte le
variabili non nulle inviate da un modulo metodo post
<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
session_start();
foreach ($HTTP_POST_VARS as $key => $value) {
if ($value!="") {
    session_register($key);
}
}
?>
Nella pagina visualizza_sessioni.php ho questo codice che dovrebbe
visualizzarmi le variabili sessione registrate:
<?php
session_start();
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo "Queste sono le variabili di session registrate:";
echo "<HR>";
foreach ($HTTP_SESSION_VARS as $nome_sessione => $valore) {
echo $nome_sessione . ": " . $valore . "<br>\n";
}
?>
</body>
</html>
Il problema è che fino a PHP 4.2.3 ha sempre funzionato tutto, ora con PHP
4.3.1 non mi visualizza niente.
Cosa è cambiato nella gestione delle sessioni?
Nel file php.ini sotto Windows, non ho mai modificato le impostazioni di
default, solo in PHP 4.3.1 ho reso attiva l'opzione
session.use_trans_sid.
Qualcuno mi può aiutare?
--------------------------------
Inviato via 
http://usenet.libero.it

 foreach ($HTTP_SESSION_VARS as $nome_sessione => $valore) { echo
Hai provato con
$_SESSION al posto di  $HTTP_SESSION_VARS (che e' deprecato)?
-- 
Non siamo nella merda, siamo nel merdone (G. F. Funari)

 $_SESSION al posto di $HTTP_SESSION_VARS (che e' deprecato)?
Si ma non funziona lo stesso, il problema è che su queste sessioni proteggo
anche una pagina, cioè se l'utente è autenticato la può vedere, altrimenti
no, e la procedura funziona, solo che non riesco a stampare nel browser le
sessioni registrate.
Ho l'impressione che mi conviene passare ad Asp.NET, non esiste che ogni
settimana venga rilasciata una nuova versione di PHP, che ti manda affanculo
il lavoro che con molta fatica hai costruito; è vero che è facile da
apprendere, ma nel complesso non è semplice, anzi inutilmente complicato.
Perchè cacchio per poter fare una cosa devo avere mille modi diversi, senza
capire quale sia meglio e quale peggio? O mi sbaglio su queste
considerazioni?
Un Saluto


 Ho l'impressione che mi conviene passare ad Asp.NET, non esiste che ogni
[CUT]
SACRILEGIOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!

 SACRILEGIOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!
Al di là di tutto, sai dirmi perchè mi succede che non visualizzo le
variabili sessione?


 su queste considerazioni?
Se per te la liberta` di agire e` un difetto hai qualche problema.
Capire quale sia meglio o peggio lo puoi capire da solo, con test di uso
dell'applicazione, misurazioni e simili.

Comunque, considerando che mi sembri esperto, potresti aiutarmi nel mio
quesito iniziale? tu che versione di PHP usi attualmente e soprattutto se
esce una versione nuova conviene sempre aggiornare?
Ciao,
Fabrizio


 Il problema è che fino a PHP 4.2.3 ha sempre funzionato tutto
naaaaa....

 apprendere, ma nel complesso non č semplice, anzi inutilmente complicato.
cos'č? Tomba e Vieri che spiegano l'euro?? :)


Mille grazie. Mi sono reso conto perchè nella versione 4.2.3 funzionava e
nell'ultima no. Nella prima versione avevo il parametro register_globals =
On e nell'ultima Off, che ho messo a On.
Senti, ma come dovrebbe essere il codice se mettessi register_globals a Off?
Ciao


 come dovrebbe essere il codice se mettessi register_globals a Off? Ciao
Devi usare le nuove variabili superglobal: $_POST, $_GET, $_SESSION,
$_COOKIES, $_FILES, ecc.

 Senti, ma come dovrebbe essere il codice se mettessi register_globals a
Off?
Quello che ti ho scritto va bene per register_globals=off
L'unica cosa è che sarebbe meglio l'uso dei nuovi super global arrays.
Come già detto, inutile il foreach per questo caso.
Se nel 4.2.3 funzionava vuol dire che c'è dell'altro.. il codice da te
postato non va perchè registri variabili dal valore nullo.. settate ma
vuote.
Per fare in modo che ti funzioni con register globals a off devi fare
riferimento alle variabili di sessione tenendo conto che sono contenute
nell'array $_SESSION.. quindi.. non echo $tuavariabile.. ma echo
$_SESSION['tuavariabile']
Studiati sul manuale - a parte tutto il resto :) - TUTTA la parte relativa
alle variabili e TUTTA la parte relativa alle sessioni. Leggere le FAQ:
vedere il post alle ore 11 su questo ng.
Sinceramente comunque non capisco le tue affermazioni su php/
asp.net
 quando
poi di fatto se non ti va è solo perchè è il tuo codice ad essere sbagliato.