Perdonami, ma provando con le versioni 4.2.x, 4.3.x e 4.3.x si comporta sepre allo stesso modo! Sbagliato, a mio e tuo avviso, ma sempre lo stesso.
Con che versione non avevi questo comportamento?
Perdonami, ma provando con le versioni 4.2.x, 4.3.x e 4.3.x si comporta sepre allo stesso modo! Sbagliato, a mio e tuo avviso, ma sempre lo stesso.
Con che versione non avevi questo comportamento?
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Originariamente inviato da piero.mac
Buona la proposta di BUBU...
e' meglio usare questo sistema perche' $_SESSION ha delle proprieta' particolari... usando le funzioni di array intersect si rischia di trasferire queste proprieta' all'array di destinazione, oppure peggio di privare $_SESSION delle sue peculiarita' trasferendo a questo valenza di array "vulgaris"....
una alternativa, ma sostanzialmente identica, a quanto proposto da bubu potrebbe essere:
codice:foreach($_SESSION as $key) { if($key == 'salva1' OR $key == 'salva2' ) { continue; } else { unset($_SESSION[$key]); }![]()
Si.. le soluzioni di Bubu e PieroMac sono perfette direi..! Ora le testo..
Per quanto riguarda il discorso del tipo di gestione delle variabili..
al momento uso settarle singolarmente quindi non dovrebbero esserci problemi... ma non è detto che in futurò proverò la gestione complessiva... quali sarebbero i vantaggi?Se tu gestisci i dati singolarmente per indice tutto OK, gestiti invece a livello complessivo di array sembrerebbe che questo indice cosi' trasferito in $_SESSION perda la registrazione in sessione o meglio, acquisisca oltre ai dati anche le caratteristiche dell'array stesso che viene trasferito (che non e' registrato).
grazie ciao Ste
fino alla versione 5.0.3 (quindi tutte da quando fu introdotto l'array superglobale in 4.1.0) si comportava allo stesso modo. Dalla versione >= 5.0.4 invece si ha l'effetto che ho descritto.Originariamente inviato da Shores
Perdonami, ma provando con le versioni 4.2.x, 4.3.x e 4.3.x si comporta sepre allo stesso modo! Sbagliato, a mio e tuo avviso, ma sempre lo stesso.
Con che versione non avevi questo comportamento?
mi pareva di averla detta chiaramente la versione.....![]()
preciso ancora meglio.... fino alla versione 5.0.3 l'array $_SESSION manteneva "sempre" la sua caratteristica (array sempre registrato in sessione), dalla versione 5.0.4 in poi se passi un intero array a $_SESSION le chiavi / valori passate NON risultano registrate in sessione, e quindi NON vengono serializzate nel file relativo......
La prossima la scrivo in austro-ungarico....![]()
@stafanoi ... nessun vantaggio.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
C'è qualcosa che non torna: io ho appena provato con la 4.2.x la 4.3.x e la 4.4.x e in tutti e tre i casi si è comportato come nella 5.1.4, ovvero $_SESSION non è più registrato dopo la $_SESSION=array(...) ...Originariamente inviato da piero.mac
fino alla versione 5.0.3 (quindi tutte da quando fu introdotto l'array superglobale in 4.1.0) si comportava allo stesso modo. Dalla versione >= 5.0.4 invece si ha l'effetto che ho descritto.
mi pareva di averla detta chiaramente la versione.....![]()
preciso ancora meglio.... fino alla versione 5.0.3 l'array $_SESSION manteneva "sempre" la sua caratteristica (array sempre registrato in sessione), dalla versione 5.0.4 in poi se passi un intero array a $_SESSION le chiavi / valori passate NON risultano registrate in sessione, e quindi NON vengono serializzate nel file relativo......
La prossima la scrivo in austro-ungarico....![]()
@stafanoi ... nessun vantaggio.
:master:
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Sei su windows o su LINUX?Originariamente inviato da Shores
C'è qualcosa che non torna: io ho appena provato con la 4.2.x la 4.3.x e la 4.4.x e in tutti e tre i casi si è comportato come nella 5.1.4, ovvero $_SESSION non è più registrato dopo la $_SESSION=array(...) ...
:master:
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Su Windows XP SP2.Originariamente inviato da piero.mac
Sei su windows o su LINUX?
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
aspetta .... che qui stiamo prendendo la mucca per le palle.....Originariamente inviato da Shores
C'è qualcosa che non torna: io ho appena provato con la 4.2.x la 4.3.x e la 4.4.x e in tutti e tre i casi si è comportato come nella 5.1.4, ovvero $_SESSION non è più registrato dopo la $_SESSION=array(...) ...
:master:
$_SESSION = array();
ti resetta $_SESSION da sempre. Non e' mica questo che ti sto dicendo ....
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Pensavo fosse chiaro che quei puntini di sospensione volevan dire che c'eran delle cose, lì dentro...Originariamente inviato da piero.mac
aspetta .... che qui stiamo prendendo la mucca per le palle.....
$_SESSION = array();
ti resetta $_SESSION da sempre. Non e' mica questo che ti sto dicendo ....
$_SESSION = array("uno","due","tre");
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
mi sa che gli indici numerici abbiano poca fortuna con $_SESSION.......
Guarda .. tanto per provare cosa intendo dire .... tre file a-b-c ho messo giu' alcune righe... ora provando riscontro un comportamento ancora diverso dal rilascio 5.0.5 ... provo con 5.1.2 .... ma sono proprio fuori di testa questi del php... comunque ecchie qua:
2° paginaCodice PHP:bug_a.php
<?php
session_start();
$_SESSION = array(); // partiamo puliti
echo "Pagina bug_a con form
<form method = 'POST' action = 'bug_b.php'>
<input type='text' name='ciccio' value='pippo'>
<input type = 'checkbox' name= 'check' value ='box'>
<input type = 'submit' name='submit'>
";
echo "<pre> contenuto di _SESSION
";
print_r($_SESSION);
?>
pagina 3Codice PHP:bug_b.php
<?php
session_start();
if(!empty($_POST)) {
echo "<pre>Sono pagina b e _POST e' valorizzato
";
// cosa contiene $_POST
echo "
Pag_b.php - contenuto di _POST
";
print_r($_POST);
// valorizziamo $_SESSION con il contenuto di $_POST di botto array to array
$_SESSION = $_POST;
}
// vediamo cosa contiene $_SESSION
echo "<pre>Pag_b.php - contenuto di _SESSION
";
print_r($_SESSION);
echo "<a href=\"bug_c.php\">to page 3</a>";
?>
La sessione in pagina 3 e' vuota. Ma solo a partire dalla versione 5.0.4 e forse dalle ultime 4.4.x visto che le modifiche avvenivano a braccetto...Codice PHP:bug_c.php
<?php
session_start();
if(!empty($_SESSION)) {
echo "<pre>sono pagina bug_c con _SESSION valorizzato
";
print_r($_SESSION);
} else {
echo "<pre>Pag_c.php _SESSION e' vuoto
";
print_r($_SESSION); }
echo "<a href=\"bug_a.php\">to page 1</a>";
?>
Questo era il problema.... La stessa cosa succede se invece di passare _POST passi per esempio $_ciccio...
sto vedendo alcune cose che trovo allucinanti... ora provo e poi ti dico per bene (se ci riesco)codice:$_ciccio = array('uno' => '1', 'due' => '2'); $_SESSION = $_ciccio;
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Anzi... mentre ci sono le prove le faro' su php 5.1.4 ...
Appena posso...
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.