View Full Version : [php]sessioni..un pò di chiarezza..
non riesco a capire come funzionano le sessioni in php...ho trovato troppi esempi diversi...
per esempio ho trovato le sessioni tipo questa..
session_register("SESSION_DATA");
$SESSION_DATA["count"] = 0;
ma non riesco ad usarle...e ho trovato le sessioni tipo queste...
$_SESSION["ciao"]
ora quali sono le sessioni come quelle in asp...per intenderci session("nome")?
ho usato le sessioni come queste $_SESSION["ciao"] e sul mio pc funzionano ma se per esempio le uso su lycos è come se la sessione rimanesse salvata e non si cancella...help!grazie
ciao :)
Fenomeno85
11-04-2004, 10:17
devi mettere in tutte le pagine che utilizzano la sessione:
session_start();
buona Pasqua ;)
~§~ Sempre E Solo Lei ~§~
Fenomeno85
11-04-2004, 10:19
ah se leggi la guida su www.php.net e cerchi session troverai tutto :)
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
ah se leggi la guida su www.php.net e cerchi session troverai tutto :)
~§~ Sempre E Solo Lei ~§~
session_start();
lo metto...ma con il primo esempio nn mi funzionano lo stesso...su php.net ho trovato degli esempi ma non mi sono molto chiari...
e soprattutto non capisco perchè sul mio pc utilizzando $_SESSION["ciao"] va...mentre su lycos no...poi non ho ben chiaro a cosa serva session_name();...
non è che potresti farmi un esempio funzionante?? :)
buona pasqua anche a te!;)
Fenomeno85
11-04-2004, 13:29
dipende da come è settato il file php su lycos ... comunque:
----
//si inizializza una variabile
<?session_start();?>
<html>
<head>
<title>Pagina inizializzazione</title>
</head>
<body>
<?
$_SESSION['numero'] = 1;
?>
<a href="pagina2.php">Incrementa</a>
</body>
</html>
----
//si incrementa la variabile
<?session_start();?>
<html>
<head>
<title>Incremento e visualizzo</title>
</head>
<body>
<?
$_SESSION['numero'] ++;
echo $_SESSION['numero'];
?>
</body>
</html>
spero di averti chiarito un pò :) ... poi:
session_name non so che dirti, se non ho capito male serve a far ritornare il nome della sessione che hai registrato. Ormai non ti serve utilizzare session_register perchè basta che usi la variabile di sessione $_SESSION.
Comunque ho provato su lycos ma questo codice non funziona.
~§~ Sempre E Solo Lei ~§~
ok allora non è un problema solo mio di lycos e se le variabili di sessione si usano con $_SESSION['numero'] ho capito benissimo come funzionano...quindi a questo punto...uno spazio web che supporti php e che non sia ne lycos e ne altervista? :)
grazie!
Fenomeno85
11-04-2004, 19:06
secondo be basterebbe modificare il file ini ... basta capire il come ;)
Buona Pasqua
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da SteR9
ok allora non è un problema solo mio di lycos e se le variabili di sessione si usano con $_SESSION['numero'] ho capito benissimo come funzionano...quindi a questo punto...uno spazio web che supporti php e che non sia ne lycos e ne altervista? :)
grazie!
Attenzione...è importante dare session_register prima di qualunque codice PHP che provoca un output e prima di qualunque codice HTML (anche di una riga vuota)...
Originariamente inviato da cionci
Attenzione...è importante dare session_register prima di qualunque codice PHP che provoca un output e prima di qualunque codice HTML (anche di una riga vuota)...
ma devo dargli anche un nome?
e in tutte le pagine in cui richiamo le mie variabili di sessione richiamo session_name("nome") ?
No...nessun nome... Non importa...
Originariamente inviato da Fenomeno85
secondo be basterebbe modificare il file ini ... basta capire il come ;)
Buona Pasqua
~§~ Sempre E Solo Lei ~§~
Mi sembra che con le nuove versioni di PHP si usino le cosidette variabili SUPERGLOBALI (come la $_SESSION, $_POST, $_GET ) in quanto le vecchie variabili globali potrebbero portare a problemi di sicurezza e quindi il loro uso e' stato disabilitato di default nel file php.ini.
Per poterle utilizzare basta cambiare l'apposita voce in php.ini (mi sfugge il nome.. tipo "register_globals" o qualcosa del genere).
Fenomeno85
12-04-2004, 20:17
Originariamente inviato da nebuk
Per poterle utilizzare basta cambiare l'apposita voce in php.ini (mi sfugge il nome.. tipo "register_globals" o qualcosa del genere).
il problema è come cambiarle sul server di lycos :)
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da nebuk
Mi sembra che con le nuove versioni di PHP si usino le cosidette variabili SUPERGLOBALI (come la $_SESSION, $_POST, $_GET ) in quanto le vecchie variabili globali potrebbero portare a problemi di sicurezza e quindi il loro uso e' stato disabilitato di default nel file php.ini.
Per poterle utilizzare basta cambiare l'apposita voce in php.ini (mi sfugge il nome.. tipo "register_globals" o qualcosa del genere).
il problema è che non penso proprio che si possa modificare il file php.ini di lycos...ma non capisco perchè questo tipo di variabili di sessione non funzionino :confused:
Ma in locale ti funziona ?
Originariamente inviato da cionci
Ma in locale ti funziona ?
si,in locale funziona benissimo!!
Boh...forse è un php vecchio...
Allora prova con session_start (sempre prima di qualsiasi output ed in ogni pagina) e poi con session_register("nome_variabile")...
Ciao
Fenomeno85
13-04-2004, 10:20
si può modificare il file ini su lycos??
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
si può modificare il file ini su lycos??
Le opzioni del file ini si possono modificare temporaneamente da script...non è questo i problema... Il problema è che se php è una versione vecchia puoi anche modificare le opzioni, ma non servirà sicuramente a niente ;)
Fenomeno85
13-04-2004, 11:30
la versione non è per nulla vecchia :)
guardate qui:
http://utenti.lycos.it/Fenomeno85/PHPINFO.php
~§~ Sempre E Solo Lei ~§~
Faccio qualche prova e vi faccio sapere...
ho prvoato anche con session_register("nome_variabile") ma non va...il bello è che se riavvio il pc poi funziona è come se la sessione non si cancellasse chiudendo il browser... :confused:
<?php
session_start();
?>
<html>
<head>
<title>Prova</title>
</head>
<body>
<?= $_SESSION["i"] = $_SESSION["i"] + 1; ?>
</body>
</html>
http://utenti.lycos.it/ci0nci/prova.php
Premi aggiorna...
Originariamente inviato da cionci
<?php
session_start();
?>
<html>
<head>
<title>Prova</title>
</head>
<body>
<?= $_SESSION["i"] = $_SESSION["i"] + 1; ?>
</body>
</html>
http://utenti.lycos.it/ci0nci/prova.php
Premi aggiorna...
si,si incrementa...come mai a me non funziona?? :confused:
Fenomeno85
13-04-2004, 15:55
il problema è che non funziona se punta ad un'altra pagina come avevo fatto ;)
~§~ Sempre E Solo Lei ~§~
Non è che avete lasciato i commenti ?
//si incrementa la variabile
E' al di fuori della parentesi...quindi è considerato un output !!!
Comunque:
http://utenti.lycos.it/ci0nci/prova.php
http://utenti.lycos.it/ci0nci/prova2.php
Incrementano la stessa variabile...
Fenomeno85
13-04-2004, 17:36
no nessun commento ... e se faccio un link a un'altra pagina non funziona ... bo :wtf:
~§~ Sempre E Solo Lei ~§~
io faccio così
session_start();
session_register("controllo");
if (!isset($_SESSION["controllo"]) ){
aggiornaDb();
Dbgiornaliero();
}
in locale funziona ma su lycos no... :muro: :muro:
E così ?
session_start(); //ricordati di farlo prima di qualsiasi altro nella pagina
if (!isset($_SESSION["controllo"]) ){
aggiornaDb();
Dbgiornaliero();
}
Originariamente inviato da cionci
E così ?
session_start(); //ricordati di farlo prima di qualsiasi altro nella pagina
if (!isset($_SESSION["controllo"]) ){
aggiornaDb();
Dbgiornaliero();
}
anche senza session_register...non va :muro:
Ho messo in prova2 questo codice:
<?session_start();?>
<html>
<head>
<title>Incremento e visualizzo</title>
</head>
<body>
<?
if (!isset($_SESSION["i"]) ){
echo "Non è settato";
}
else
echo "E' settato";
?>
</body>
</html>
E' praticamente identico al tuo...
Clicka prima qui (chiudi il browser ogni volta): http://utenti.lycos.it/ci0nci/prova2.php
Poi qui: http://utenti.lycos.it/ci0nci/prova.php
E poi di nuovo qui: http://utenti.lycos.it/ci0nci/prova2.php
Fenomeno85
14-04-2004, 09:18
dubbio ... perchè la prima volta quando clicco non viene incrementata la variabile??
il codice è quello che ho postato prima:
la pagina: http://utenti.lycos.it/Fenomeno85/Nuova%20cartella/pagina1.php
~§~ Sempre E Solo Lei ~§~
Originariamente inviato da Fenomeno85
dubbio ... perchè la prima volta quando clicco non viene incrementata la variabile??
A me la incrementa... La prima volta visualizza 2...
Fenomeno85
14-04-2004, 13:21
Originariamente inviato da cionci
A me la incrementa... La prima volta visualizza 2...
scusa adesso lo fa anche a me :wtf:
~§~ Sempre E Solo Lei ~§~
Quindi funziona tutto ;)
SteR9: il rpoblema deve essere altrove xchè qui sembra andare tutto bene...
Fenomeno85
14-04-2004, 15:55
Originariamente inviato da cionci
Quindi funziona tutto ;)
SteR9: il rpoblema deve essere altrove xchè qui sembra andare tutto bene...
ste posta il codice così vediamo ;)
~§~ Sempre E Solo Lei ~§~
il codice è un pò lungo perchè è un contatore,in pratica dall'immagine dove stampo gli accessi al sito e gli utenti online vado anche a incrementare gli accessi...lo posto a blocchi
session_start();
if (!isset($_SESSION["controllo"]) ){
aggiornaDb();
Dbgiornaliero();
}
stampaImmagine();
function aggiornaDb(){
//...
//faccio tutte le operazioni per aggiornare gli accessi e poi setto
//la variabile di sessione
//...
$_SESSION["controllo"] = "ok";
}
e poi ho le altre due funzioni che sono DbGiornaliero nella quale vado
a inserire gli accessi giornalieri
e stampaImmagine() nella quale creo l'immagine con le Gd
ciao ;)
Posta tutto il codice... HTML compreso...altrimenti non isoliamo il problema... Escludi magari solo quelle due funzioni con il Db...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.