E' possibile salvare array tramite sessione o cookie?

c02y

Utente Attivo
30 Nov 2012
30
0
0
Buona sera.

Devo salvare un array tramite sessione o cookie, in modo tale che ogni volta vado ad aggiungere un valore all'array.

Ho provato con la variabile globale $_SESSION ma l'array non me l'ha salvato.

Per farla breve: Tramite una select(in una form) seleziono un colore (rosso=1 blue=2) a seconda del colore selezionato vado ad aggiungere un elemento al corrispettivo array.

In seguito, quando selezionerò di nuovo lo stesso colore, l'array si dovrà incrementare di un'unità.

Nel caso siete curiosi, e vi stiate domandando "Perché tutto questo?", la risposta è semplice.

Sto cercando di fare questo esercizio: http://www.dia.unisa.it/professori/parente/TSW/include/esercizi/esPhpCss1.pdf

Tramite il numero di elementi presenti nell'array, ho pensato che sarei in grado di contare il numero di volte che ho aggiunto un determinato colore.


Ora vi posto il codice:

PHP:
$color=$_POST["select_color"];
					
					if ($color==1)
					{
						$array_red[]=$color;
						session_start();
						$_SESSION["array_red"]=$array_red;
					}
					
					else
					{
						if ($color==2)
						{
						$array_blue[]=$color;
						session_start();
						$_SESSION["array_blue"]=$array_blue;
						}
						
						
					}
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dovresti usare
PHP:
$_SESSIONE['pinco']=serialize($array);
per metterela nella sessione o nel cookie, poi per leggerla
PHP:
$array=unserialize($_SESSIONE['pinco']);


p.s.
non usare quote per il codice, guarda le successive tre iconcine
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
serializze() e unserializze() servono solo, nel caso tu voglia salvare i dati il un archivio esterno o database, visto che non vengono supportati gli oggetti ( in questo caso array ).

Se mai puoi utilizzarli per i cookie, visto che vengono salvati dal browser in dei file, ma per le sessioni ti basta semplicemente inizializzare la sessione in questo modo:

PHP:
$sessione = $_SESSION["nome_sessione"] = array("primo valore", "secondo_valore");

Per poi recuperare i dati in questo modo:

PHP:
echo $_SESSION["nome_sessione"][0]; // Stampa il il valore dell'indice 0 dell'array nella sessione
echo $_SESSION["nome_sessione"][1]; // Stampa il valore dell'indice 1 dell'array nella sessione

Anche io per il mio sistema di login alcune volte utilizzo questo metodo, e mi sono trovato sempre bene, in oltre, ho risposto a questa discussione visto che ci tenevo a dirti, consigliarti più che altro, di utilizzare le funzione dette qui sopra solamente per i cookie, visto che il browser li salva in dei file, mentre per le sessioni ti consiglio il metodo da me usato qui sopra.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova questi due script
PHP:
<?php
$pinco=array('a','b',3,5,'d');
setcookie("pinco", $pinco, time()+3600);
var_dump($_COOKIE['pinco']);
/*output
Warning: setcookie() expects parameter 2 to be string, array given in C:\AppServ\www\cartella\000001.php on line 3
NULL 
*/
?>
PHP:
<?php
$pinco=serialize(array('a','b',3,5,'d'));
setcookie("pinco", $pinco, time()+3600);
var_dump($_COOKIE['pinco']);
/*output
string(64) "a:5:{i:0;s:1:\"a\";i:1;s:1:\"b\";i:2;i:3;i:3;i:5;i:4;s:1:\"d\";}" 
*/
?>
 

c02y

Utente Attivo
30 Nov 2012
30
0
0
Grazie per le risposte ragà!

Alla fine ho risolto in parte.

Sono riuscito a salvare un array tramite sessione. Il problema ora è che, visto che devo lavorare su un'unica pagina, non riesco a capire come creare una sessione solo la prima volta, così che la seconda volta vada a leggere e aggiornare i valori della sessione precedente.

Vi posto il codice così vedete anche come ho risolto.

PHP:
$color=$_POST["select_color"];
					
															if ($color==1) // Se il colore selezionato è il ROSSO
																{
																	$array_red[]=$color;
																	session_start();
																	$_SESSION["array_red"]=$array_red;
																}
					
															else
																{
																		if ($color==2) // Se il colore selezionato è il BLU
																			{
																				$array_blue[]=$color;
																				session_start();
																				$_SESSION["array_blue"]=$array_blue;
																			}
						
						
																}



Come vedete, quando invio i dati li recupero tramite la variabile globale $_POST. Il problema è come riuscire ad implementare ciò che ho scritto sopra!

Questo è il codice che serve a leggere un array tramite sessione e successivamente ad aggiornarlo.


PHP:
session_start(); //riprendo la sessione
        $array1=$_SESSION['array_blue'];

Se sono stato poco chiaro, vi prego di farmelo notare;)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Rendilo più dinamico il codice

PHP:
session_start();

switch($_POST['select_color']){
    case 1:
        $color = 'array_red';
        break;
    case 2:
        $color = 'array_blue';
        break;
   //qui puoi aggiungerne altri
    
    default:
        //qui fai stampare un errore o setti un controllo a piacere per non far settare la sessione
        die('Errore, colore invalido');
}
   
if(!isset($_SESSION[$color])) 
    $_SESSION[$color] = array($_POST['select_color']);
else
   array_push($_SESSION[$color],$_POST['select_color']);
 
Discussioni simili
Autore Titolo Forum Risposte Data
G E' possibile dare la vividezza in un colpo solo a più foto Photoshop 1
R È possibile ricevere avvisi di accesso da Google su un solo telefono senza disconnettersi dall'account? Discussioni Varie 0
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
D [WordPress] Link eliminati ancora presenti nel database, è possibile? WordPress 0
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [HTML] E' possibile creare un tema per wordpress con dreamweaver?? HTML e CSS 1
C [Javascript] [HTML] È possibile "puntare" un iframe? Javascript 14
otto9due Chiamata ajax su due url è possibile? Ajax 0
Sermatth72 [HTML] creare link con colori Hover diversi, possibile? HTML e CSS 6
O E' possibile usare NVR solo IP camere remote? IP Cam e Videosorveglianza 2
utente è possibile creare una pagina php che copia interamente il contenuto di un'altra pagina ? PHP 10
ken_korn Lavorare nel settore informatico senza laurea, possibile secondo voi? Discussioni Varie 6
giannit [HTML] Mettere div al posto di iframe e possibile? HTML e CSS 9
otto9due Creare un link per inoltro mail, possibile? Email Marketing 4
dany81 [Photoshop] Eliminare più sfondo possibile... Photoshop 3
gandalf1959 mysql query, sum(qualcosa), order by sum(qualcosa). E' possibile? PHP 14
G Errori PHP è possibile fare un redirect ad una pagina d'errore? PHP 3
Z È possibile realizzare DEM con Adobe Muse? Webdesign e Grafica 0
romeocharly E' possibile creare un collegamento tra un id di db mysql ed un file per il download? PHP 0
ecosito CSS: è possibile cambiare font con uno non di uso comune? HTML e CSS 11
C E' possibile assegnare all' attributo name di un form html il nome di una variabile php? PHP 6
filippino Grassetto coi css? possibile? HTML e CSS 1
P Assegnare un codice php ad una variabile, possibile? PHP 6
L E' possibile registrare dati con javascript? Javascript 4
G Testo che si adatta in grandezza alle misure di un DIV: è possibile farlo? HTML e CSS 2
novello88 Skin ADV (sfondo pubblicitario): possibile causa di penalizzazione? SEO e Posizionamento 1
francesco7 Esportare file da sito a sito senza scaricarli prima é possibile? Web Server 0
Gabriele Visioli PC Portatile con Windows 8.1 e altri OS possibile? Windows e Software 2
M Effettuare i controlli di obbligatorietà lato server e, per quanto possibile, di tipo. PHP 0
T vBulletin 3.8.x E' possibile creare una nuova pagina in PHP nel forum? CMS (Content Management System) 0
otto9due Eeliminare tabella db a sessione scaduta.. Possibile? PHP 0
B Com'è possibile? PHP 8
M Lanciare una funzione asp.net con javascript. E' possibile? ASP.NET 0
felino HDD 2.5'' caduto a terra: possibile recupero dei dati al suo interno Hardware 8
radioButton ajax: è possibile la sincronia? Ajax 2
F E' possibile inviare un comando DOS con javascript o altro linguaggio?? Javascript 1
L Google Calendar sul proprio sito: è possibile inserire eventi? Javascript 1
P E' possibile cambiare la visualizzazione di un sito da mobile rispetto che da computer? Smartphone e tablet 3
V è possibile avere questo tipo di illuminazione? Photoshop 2
voldemort Commenti in HTML su più righe: è possibile? HTML e CSS 1
M Visualizzare record in una textarea è possibile? PHP 2
leopardinoz autorizzare l'invioo di un form mediate password è possibile? PHP 25
F E' possibile far comparire una scritta in un div al cambio di un valore di un form text??? Javascript 2
C Pagina HTM connessa al DB access (non è possibile modificare/inserire dati) MS Access 0
L Problema diagramma E/R.. Possibile correzzione MySQL 3
L Sito con contenuto erotico, possibile? Leggi, Normative e Fisco 3
K menu in rollover senza link...possibile? HTML e CSS 4
M Scaricare file Xml dal Web sul Proprio ftp possibile? PHP 0
G è possibile recuperare un file word sovrascritto su chiavetta usb? Windows e Software 1
A Word per Mac 2011: è possibile formattare automaticamente in corsivo tutte le date di un doc.? Mac e Software 2

Discussioni simili