Newsgroup: it.comp.www.php
Titolo: problema con le sessioni

ho appena uploadate un sito, ma sul server le sessioni sembrano proprio 
non funzionare. ho pravato questo semplice script che in locale funziona 
benissimo, ma sul server remoto non va:
session.php
**********
<?php
session_start();
$id_utente=1;
session_register("id_utente");
$level_utente=1;
session_register("level_utente");
header("Location: session2.php");
?>
session2.php
************
<?php
session_start();
echo "id-> ".$_SESSION["id_utente"];
echo "level-> ".$_SESSION["level_utente"];
?>
e se eseguo eseguo session.php in remoto, in session2.php non mi vengono 
riportate le variabili di sessione.
secondo voi ci potrebbe essere qualche errore nel mio script oppure 
problemi di configurazione della macchina dell'hosting???
grazie in anticipo per le risposte
---------
Gino Scol

ginoscola wrote:

leggi la prima Caution del manuale alla pagina..
http://php.net/session_register
prova con..
<?php
session_start();
$_SESSION['id_utente'] = 1;
$_SESSION['level_utente'] = 1;
header("Location: session2.php");
?>
<?php
session_start();
echo "id-> ".$_SESSION["id_utente"];
echo "level-> ".$_SESSION["level_utente"];
?>
-- 
www.iuz-lab.info

 ?>
provato... non funziona neppure cosi'...
sulla prima pagina le variabili di sessione le crea (in ambedue i modi, 
il mio e il tuo), ma nella seconda pagina non ci sono....
ho controllato la configurazioni del php sulle sessioni sul server 
locale e remoto con phpinfo()... ma sono uguali... quindi non riesco a 
capire da cos dipende...
-----------
Gino Scola

 
hai provato a passare l'id di sessione tramite get?
potrebbe essere un problema di browser, se in locale (IntraNet ) hai 
delle restrizioni diverse che magari sul server (InterNet).
Imho, se non funziona prova a controllare il o i browser e le loro 
impostazioni...
Ciao spero di esserti stato utile..
K.

 proprio non funzionare. 
Leggi il mio commento 
http://www.php.net/session
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 Leggi il mio commento 
http://www.php.net/session
Intendevo 
http://www.php.net/session#40366


 
grazie 1000 per il consiglio... comunque ho provato la tua funzione... e 
in  locale funziona... mentre in remoto no... :(
ho provato anche a mettere questi due files online su altre macchine e 
funziona su tutte... non so piu' che pesci pigliare....
---------
GinoScola

 
provato pure questo... ma in remoto continua a non funzionare. grazie 
1000 del consiglio in ogni caso :D
----------
GinoScola


Prova questo tanto pe fare una provar:
<?php
session_start();
if(isset($_GET['action']) and $_GET['action']=='logout')
session_unset();
//questo supplisce al codice di autenticazione
if(isset($_GET['action']) and $_GET['action']=='login')
$_SESSION['loggato']=1;
if(isset($_SESSION['loggato'])){
//sei loggato
echo "sei dentro";
echo "<a href=\"".$_SERVER['PHP_SELF']."?action=logout\">Esci</a>";
}
else {
//non sei loggato
echo "sei fuori";
echo "<a href=\"".$_SERVER['PHP_SELF']."?action=login\">Entra</a>";
}
?>
CIAO

 Prova questo tanto pe fare una provar:
il tuo esempio funziona... ma il problema e' mantenere le variabili di 
sessione anche nelle pagine successive.
nel mio esempio di sopra, le variabili di sessione (in session.php) 
vengono creata... ma quando faccio il redirect a session2.php non ci 
sono piu'...
----------
GinoScola


wrote:

Altra prova, prova a sostituire i doppi apici con apici singoli.

 
provato pure questa... ma non cambia niente... in locale e su altri 
server va. su quello  che mi serve no.. :(
ho scritto una mail a quelli che fanno l'hosting... voglio sperare che 
dipenda da qualche casino sulla loro macchina... perche' non so piu' che 
pesci pigliare...
-----------
GinoScola

ginoscola wrote:

escludi temporaneamente il redirect fai una prova stupida..
(codice non testato)
[session1.php]
session_start();
$_SESSION['test'] = 1;
echo "<a href='session2.php?" . session_name() . '=' . session_id() .
"'>Link</a><br />";
[/session1.php]
[session2.php]
session_start();
$session_name = session_name();
$session_id = session_id();
if($_GET[$session_name] == $session_id)
  echo "SID passato correttamente<br />";
else
  echo "SID non coerente (_GET[SID] = '{$_GET[$session_name]}', SID =
'$session_d')<br />";
echo '<br />';
print_r($_GET);
echo '<br />';
print_r($_SESSION);
[/session2.php]
fammi sapere..
-- 
www.iuz-lab.info

 
provato... e mi restituisce questo:
SID passato correttamente
Array ( [PHPSESSID] => 1a949e9469bd38c70de54bfba6f66c2f )
Array ( )
-------------
GinoScola



stesso script su un altro server:
SID passato correttamente
Array ( [PHPSESSID] => d7df06237796f3ebec3a7a57902060fb )
Array ( [test] => 1 )
:( :( :(

ginoscola wrote:

register_globals e' su ON?
se si potrebbe essere quello a dare problemi..
-- 
www.iuz-lab.info

 
register_globals e' ON...
se dipendesse da quello come si puo' ovviare il problema?
in ogni caso non ne sare cosi sicuro.. lo script lo ho provato anche su 
un server con register_globals ON... e' funziona bene...
-----------
GinoScola

ginoscola wrote:

ho fatto lo stesso test anche io ma dipende anche dalla versione PHP..
comunque sul manuale leggi bene la pagina 
http://php.net/session
 nella parte
relativa al register_global attivo od inattivo e comportati di
conseguenza..
altrimenti prova a creare un file phpinfo(); e posta il link, almeno se c'e'
qualche valore non proprio adeguato lo vedi subito..
-- 
www.iuz-lab.info

  [CUT]
Prova a vedere track_vars
http://it.php.net/manual/it/ini.core.php#ini.track-vars
Dagli un'occhiatina
--
[CapoBecchino]

 qualche valore non proprio adeguato lo vedi subito..
ecco..
questa e' la macchina che non funziona:
http://www.residencemarittimo.it/phpinfo.php
http://www.residencemarittimo.it/session.php
questa e' invece un'altra macchina sempre impostata su register_globals ON
http://www.ginoscola.it/phpinfo.php
http://www.ginoscola.it/session.php
il manuale di 
php.net
 me lo sono studiato e strastudiato su fra ieri e 
oggi, ma purtroppo non riesco a venirne a capo... :(
in ogni caso, grazie tantissime per il tuo sbattimento.
-----------
GinoScola

 GinoScola
ultimo tentativo..
honotato che hai l'error_reporting settato per non visualizzare E_WARNING e
E_NOTICE..
ed una delle prove che ho fatto mi restituiva la pagina con l'array
$_SESSION vuoto, ma con una lista di Warning..
quindi prova ancora con il primo test ma per prima cosa setta adeguatamente
l'error reporting
error_reporting(E_ALL);
e vedi se restiuisce errori..
-- 
www.iuz-lab.info

 
fatto
http://www.residencemarittimo.it/session.php
ecco il mex di errore che restituisce:
Warning: Unknown(): open(/tmp/sess_1a949e9469bd38c70de54bfba6f66c2f, 
O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown(): Failed to write session data (files). Please verify 
that the current setting of session.save_path is correct (/tmp) in 
Unknown on line 0
se non sbaglio ci dovrebbero essere problemi di path o permessi sulla 
macchina.. no?
----------------
GinoScola

 GinoScola
php non ha i permessi richiesti per salvare le sessioni in quel path..
per risolvere temporaneamente inserisci
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] . '/tmp');
prima di session_start(); e crea una cartella di nome tmp settando i
permessi a 777 nella tua DOCUMENT_ROOT..
ma..
non usare la cartella di nome /tmp (usa un'altro nome) poiche' dovendo
settare i permessi in lettura e scrittura saresti esposto ad attacchi (chi
ha letto potrebbe ora conoscere il nome del sito in questione)(magari al
posto di $_SERVER['DOCUMENT_ROOT'] . '/tmp' inserisci l'indirizzo di una
directory non accessibile dal web, cosi' sei piu' sicuro)
e soprattutto contatta gli amministratori e notifica il problema per una
eventuale risoluzione..
-- 
www.iuz-lab.info

 
grazie 1000! sei stato non gentile... ma gentilissimo!! :D :D
------
GinoScola

 GinoScola
figurati.. grazie a te..
-- 
www.iuz-lab.info