Buon giorno a tutti, ho il problema di dover aggiornare un cookie.
Questi sono i passaggi che faccio.
1) estrapolo 18 ID presenti nella TB
2) gli ID vengono inseriti in gruppi da 6 in 3 array, da 1->6 in array1, da 7->12 in array2 e da 13->18 in array3
3) creo il cookie con gli array popolati, con i valori della TB.
Nell'eventualità di ulteriori id, vorrei poter mantenere l'impostazione del cookie ed aggiungerne di nuovi.
In pratica, ho un menu "drag & drop" generato dinamicamente tramite select.
I link sono suddivisi inizialmente in gruppi di 6 per 3 colonne.
L'utente può salvare la posizione dei link, attraverso un cookie.
Il problema sorge quando inserisco nuovi link nella tabella.In pratica, anche se ne ho di nuovi il menu carica le impostazioni dal cookie, e quindi i nuovi link non li vedrà mai, a meno che decida di cancellare il cookie cosi da reimpostare il menu da capo.
Quello che faccio è questo:
Codice PHP:
while($row=mysql_fetch_array($select)){
$elemento[$i]['id_link'] = trim($row['id_link']);
$posNews .= trim($row['id_link']).",";
$i++;
}
$numRows = mysql_num_rows($select) or die ("Non è possibile eseguire il conteggio delle righe -> 30" . mysql_error());
//togli l'ultima virgola
$posNews = substr($posNews, 0, -1);
//suddivido l'array $posNews in 3 partendo dalla posizione 0 per il primo array
$posLink1 = substr($posNews, 0, 11);
$array1 = split(',' , $posLink1);
$posLink2 = substr($posNews, 12, 14);
$array2 = split(',' , $posLink2);
$posLink3 = substr($posNews, 27);
$array3 = split(',' , $posLink3);
//controllo e creazione cookie. Inserisco i valori estrapolati dal DB per generare il COOKIE
if(!isset($_COOKIE['cookie_colonna1']) && !isset($_COOKIE['cookie_colonna2']) && !isset($_COOKIE['cookie_colonna3'])){
echo "Entrato in IF";
//setcookie ("cookie_colonna1","1,2,3,4,5,6",time()+2592000);
setcookie ("cookie_colonna1",$posLink1,time()+2592000);
setcookie ("cookie_colonna2",$posLink2,time()+2592000);
setcookie ("cookie_colonna3",$posLink3,time()+2592000);
//questi valori vengono attribuiti ai cookie se ancora non sono stati creati
$array_colonna1=$array1;
//print_r($array1);
$array_colonna2=$array2;
//print_r($array2);
$array_colonna3=$array3;
//print_r($array3);
}else{//se il Cookie è già stato generato
echo "Entrato in ELSE";
if(isset($_COOKIE['cookie_colonna1'])){
//popolo l'array con i valori estrapolati dal cookie
$array_colonna1=explode(",",$_COOKIE['cookie_colonna1']);
echo "Entrato in ELSE->IF";
}else{
//popolo l'array con gli ultimi valori estrapolati dal DB
$array_colonna1=Array();
echo "Entrato in ELSE->ELSE";
}
if(isset($_COOKIE['cookie_colonna2'])){
$array_colonna2=explode(",",$_COOKIE['cookie_colonna2']);
}else{
$array_colonna2=Array();
}
if(isset($_COOKIE['cookie_colonna3'])){
$array_colonna3=explode(",",$_COOKIE['cookie_colonna3']);
}else{
$array_colonna3=Array();
}
}
Scusandomi della lunghezza del post, vi chiedo gentilmente come fare per mantenere il contenuto del cookie e nell'eventualità aggiungere l'id mancante.
Grazie mille e buona giornata.