SESSIONI:queste sconosciute

epigrottero

Nuovo Utente
3 Dic 2008
10
0
0
Ciao a tutti, innanzitutto mi congratulo
per questo spazio libero in cui ci si può scambiare esperienze e soprattutto si
possono risolvere problemi perchè ... qualcuno ci è già passato!

Naturalmente anch'io ho un piccolo problemino da sottoporre:

nel mio piccolo sitarello
sulla pagina di login identifico l'idutente
lo trasmetto alla pagina benvento con una sessione
e lì lo ritrovo regolarmente, ma appena richiamo un form da benvenuto...
il valore si annulla!!! Xkè?

Di seguito invio le sequenze di codice interessate:

login.php:
session_start();

$_SESSION['idutente'] = $idutente;
$_SESSION['utente']=$utente;
$_SESSION['password']=$password;
$_SESSION['ftp']=$_POST['ftpurl'];

header('location:benvenuto.php');
-----------------------------------------
benvenuto.php:
$vbapc = chr(34);
echo "<a href= $vbapc # $vbapc onclick= $vbapc window.open('iscrizione.php') $vbapc class=$vbapc changeColor5 $vbapc style= $vbapc text-decoration: none; $vbapc >Aggiorna profilo</a>";


iscrizione.php:
<?php

session_start();


// qui il valore arriva NULL
if (isset($_SESSION['idutente']))
{

grazie x la collaborazione, ciao epi.

P.S. Il server è Linux
 
ciao
premetto che non sono un espertissimo
ma prova a mettere al posto di session_start

PHP:
if(!isset($_SESSION)){
session_start ();
}
 
Ho provato il codice che hai postato e in locale sembra funzionare correttamente. Sul PC di prova ho win XP, ma non credo la cosa dipenda dal SO.
 
in locale funziona?

Ho provato il codice che hai postato e in locale sembra funzionare correttamente. Sul PC di prova ho win XP, ma non credo la cosa dipenda dal SO.
b

Ho aggiunto il particolare sul server xkè magari su linux di default in php.ini potrebbero esserci delle restrizioni...

comunque ora monto un servizio apache sul nb e vedo se in locale funge anche a me...
 
Avevo pensato anche io a qualche particolare configurazione del file php.ini, per questo ti ho specificato che la prova da me effettuata è stata fatta in locale. Fammi sapere.
 
ciao
una domanda a satifal

se nella pagina 1 creo la sessione, se nella pagina 2 ricreo le sessioni sono diverse?
se il discorso è influente perhè mi hanno insegnato a mettere if sessione non esiste crea? e quindi se esiste di gia non la crea?

quindi serve o no if(!issest($_session)...?
 
la funzione session_start() crea una sessione oppure riprende la sessione corrente per cui se in una pagina utilizzo tale funzione per creare una sessione nelle pagine successive l'utilizzo di tale funzione recupera la sessione già in uso senza crearne una nuova.
 
ciao
una domanda a satifal

se nella pagina 1 creo la sessione, se nella pagina 2 ricreo le sessioni sono diverse?
se il discorso è influente perhè mi hanno insegnato a mettere if sessione non esiste crea? e quindi se esiste di gia non la crea?

quindi serve o no if(!issest($_session)...?

Scusa se rispondo io, ma secondo me la tua istruzione è senz'altro corretta e comunque rappresenta un controllo, infatti se la sessione esiste già 'session_start();' la riapre e se vuoi aggiorna valori o li aggiunge, comunque non la ricrea (questo almeno ho capito io!); è infatti indispesabile in una nuova pagina per rileggere i dati precedentemente inseriti.
 
Avevo pensato anche io a qualche particolare configurazione del file php.ini, per questo ti ho specificato che la prova da me effettuata è stata fatta in locale. Fammi sapere.

Ho provato in locale, ma a me non funziona!
il valore arriva alla seconda pagina e li muore!
Comincio a pensare che il problema può essere la chiamata alla terza pagina:

$vbapc = chr(34);
echo "<a href= $vbapc # $vbapc onclick= $vbapc window.open('iscrizione.php') $vbapc class=$vbapc changeColor5 $vbapc style= $vbapc text-decoration: none; $vbapc >Aggiorna profilo</a>";

cioè window.open

forse è questo che nn va, che dici?
 
Prova a controllare l'impostazione dell'attributo:

session.use_cookies

nel file php.ini

Io l'ho configurato ad 1 e ciò abilita l'utilizzo dei cookies per conservare l'ID della sessione per cui la funzione session_start() recupera automaticamente tale ID dal cookie che lo contiene.
Se session.use_cookies è impostato ad 1 il browser deve accettare i cookies altrimenti l'ID della sessione viene accodato agli URL relativi generati dallo script.
 
Ho provato in locale, ma a me non funziona!
il valore arriva alla seconda pagina e li muore!
Comincio a pensare che il problema può essere la chiamata alla terza pagina:

$vbapc = chr(34);
echo "<a href= $vbapc # $vbapc onclick= $vbapc window.open('iscrizione.php') $vbapc class=$vbapc changeColor5 $vbapc style= $vbapc text-decoration: none; $vbapc >Aggiorna profilo</a>";

cioè window.open

forse è questo che nn va, che dici?

nn è neanche quello... ho sostituito on click window.open
con un classico 'a href' ma ancke l, nisba!!!
Tra l'altro cercando soluzioni ho trovato un es che ho voluto provare:

ss1.php:

<?php
# ss1.php

session_start();
$num_impiegato =session_id();
session_register("nome","dipartimento"); ?>

<HTML>
<BODY>
<?php
$form="<CENTER><H2>Consegne Spa - Nuovo Impiegato</H2></CENTER>
<FORM ACTION=\"http://localhost/ss2.php\" METHOD=\"POST\">
<B>Nome impiegato:</B><BR>
<INPUT TYPE=\"text\" NAME=\"nome\" SIZE=20>
<BR><B>Dipartimento</B><BR>
<SELECT NAME=\"dipartimento\" >
<OPTION SELECTED>Autista consegne
<OPTION>Magazzino
<OPTION>Vendite
<OPTION>Amministrazione
</SELECT>
<BR>
<INPUT TYPE=\"submit\" VALUE=\"Pagina seguente\">
<INPUT TYPE=\"reset\" VALUE=\"Cancella!\">
</FORM>";
?>
</BODY></HTML>
<?php
echo $form;
?>

-----------
ss2.php:

<?php
session_start();
session_register("indirizzo","telefono");
?>
<HTML>
<BODY>
<?php
$form="<CENTER><H2>Consegne Spa - Nuovo Impiegato</H2></CENTER>
<FORM ACTION=\"http://localhost/ss3.php\" METHOD=\"POST\">
<B>Indirizzo impiegato:</B><BR>
<INPUT TYPE=\"text\" NAME=\"indirizzo\" SIZE=30>
<BR><BR><B>Numero telefono impiegato:</B><BR>
<INPUT TYPE=\"text\" NAME=\"telefono\" SIZE=30>
<BR>
<HR>
<INPUT TYPE=\"submit\" VALUE=\"Pagina seguente\">
<INPUT TYPE=\"reset\" VALUE=\"Cancella!\">
</FORM>";
?>
</BODY></HTML>

<?php
echo "$form";
?>

-----

ss3.php:

<HTML>
<BODY>
<CENTER><B><H3> Ecco le informazioni sul nuovo impiegato</H3></B></CENTER>
<?php
$visualizza="<PRE>
Nome impiegato: $nome<BR>
Dipartimento: $dipartimento<BR>
Livello retributivo: $stipendio<BR>
Sede: $sede<BR>
Indirizzo casa: $indirizzo<BR>
Telefono: $telefono<BR>
ID impiegato: $num_impiegato<BR></PRE>";
?>
</body>
</html>
<?
echo "$visualizza";
$destinatario="[email protected]";
$header="Inserimento nuovo impiegato";
$info="Ecco le informazioni...
NOME: $nome
DIPARTIMENTO: $dipartimento
LIVELLO RETRIBUTIVO: $stipendio
INDIRIZZO CASA: $indirizzo
NUM TELEFONO: $telefono
ID IMPIEGATO: $num_impiegato";
//mail($destinatario,$header,$info);

session_destroy();
?>

-------
e incredibilmente nn funziona neanche quello!!!
sulla terza pagina nn arriva niente, bello no? Boh non so che fare!
 
ciao
come dice statifal controlla tutto phpini
io l'utilizzo e mi si tramette per quante pagine voglio (sia blank, parente o aperte con window.open)
 
scusa sono qui di nuovo, ma io uso il forum per imparare

non vorrei dire una ..., ma in benvenuto.php non c'è session_start?,

inoltre hai provato a mettere degli echo per vedere dove sparisce la sessione?

quando ho degli errori cospargo a pioggia lo script di echo seguendo passo passo la vita delle variabili
 
scusa sono qui di nuovo, ma io uso il forum per imparare

non vorrei dire una ..., ma in benvenuto.php non c'è session_start?,

inoltre hai provato a mettere degli echo per vedere dove sparisce la sessione?

quando ho degli errori cospargo a pioggia lo script di echo seguendo passo passo la vita delle variabili

nn scusarti, anzi grazie x l'interessamento.
Dunque, io uso
var_dump($variabile);
che mi piace, e ho valutato che in benvenuto.php i valori arrivano, invece in iscrizione.php nn arriva niente!
X questo pensavo che il problema fosse window.open, ma nn è così!
 
ciao una domanda indiscreta, perchè

PHP:
echo "<a href= $vbapc # $vbapc onclick= $vbapc window.open('iscrizione.php') $vbapc class=$vbapc changeColor5 $vbapc style= $vbapc text-decoration: none; $vbapc >Aggiorna profilo</a>";

enon

echo "<a href= \" # \"... eccetera

oppure

echo "<a href= '#'... eccetera

ford (quello delle macchine non indiana) diceva "quello che non c'è non si guasta"
 
ciao una domanda indiscreta, perchè

PHP:
echo "<a href= $vbapc # $vbapc onclick= $vbapc window.open('iscrizione.php') $vbapc class=$vbapc changeColor5 $vbapc style= $vbapc text-decoration: none; $vbapc >Aggiorna profilo</a>";

enon

echo "<a href= \" # \"... eccetera

oppure

echo "<a href= '#'... eccetera

ford (quello delle macchine non indiana) diceva "quello che non c'è non si guasta"

Ho verificato la presenza in \php\php.ini dei parametri relativi alle sessioni:

session.name = PHPSESSID
session.use_cookies = 1
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4

x quanto riguarda l'uso di $vbapc e non \" è una vecchia deformazione..
sono un vecchio programmatore vb e non ho perso alcune abitudini di quel linguaggio, eh eh eh.
 
ciao
confronta

session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:/DOCUME~1/Gianni/IMPOST~1/Temp C:/DOCUME~1/Gianni/IMPOST~1/Temp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0


questo è quanto ho io e funzia tutto

dimenticavo php 5


p.s.
vecchio vb? hai mai provato con le schede perforete?
 
vecchio vb? hai mai provato con le schede perforete?

Eh eh eh, io le schede 'perforete' le ho usate davvero con un incredibile honeywell serie 60 level 6 con tanto di lettore di schede, perforatrice per scrivere i programmi ed enormi winchester con maniglia, grandi come i cerchi di un crossover.
Programmazione strutturata in fortrain e cobol.... bah, altri tempi.
Comunque, HO RISOLTO !!!:elvis::elvis::elvis:

Problemi riscontrati:

in php.ini importantissimo verificare la presenza della cartella indicata
nella direttiva

session.save_path = "/cartella"

se il percorso nn esiste è la fine! E in più lì si può andare a verificare come stanno le cose aprendo il file che viende creato quando si crea una sessione.

Poi, ahime, in benvenuto.php c'era scritta una cavolata che comunque inficiava qualsiasi tentativo di riuscita:
<html>
<head>
<script>

function Logout()
{

<?php
if (isset($_SESSION['utente']))
{
session_destroy();
}
('location:software.htm');
?>

link("software.htm")
}

</script>

e questo xkè sono scarsetto e nn ho considerato che comunque php viene eseguito!!!

Sono comunque contento x avere risolto e per avere conosciuto due anime pie che mi hanno dato 1 mano.
GRAZIE GRAZIE, e per ora CIAO, epi.
 
Bene, sono contento che tu abbia risolto il problema. Comunque il file benvenuto.php andava bene così com'era, almeno a me non dava problemi. La prova che ho fatto inizialmente era basata esclusivamente sul codice postato da te per vedere se funzionava correttamente e non ho avuto problemi.
 

Discussioni simili