Back to top

Autore Topic: variabile in sessione  (Letto 8493 volte)

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
variabile in sessione
« il: 14 Nov 2013, 11:23:55 »
salve,
mi servirebbe inserire in sessione una variabile mediante link o button
La variabile dovrebbe essere presente in tutte le pagine del sito quando è settata.
in pratica al click mi dovrebbe settare la variabile
al nuovo click eliminare (unset)
una sorta di switch.

C'è qualcuno che può aiutarmi?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #1 il: 14 Nov 2013, 12:44:44 »
meglio usare i cookie no?

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #2 il: 14 Nov 2013, 13:41:02 »
Come posso fare? Hai qualche esempio di codice da darmi?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #3 il: 14 Nov 2013, 13:49:34 »
dipende dal modo in cui vuoi implementarlo e dai linguaggi che conosci. potrei darti una dritta su come farlo in php ma se lo devi mettere nel template o devi creare un modulo andrebbe bene ma se lo devi incollare dentro un articolo non avrebbe più senso...

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #4 il: 14 Nov 2013, 14:01:49 »
Ti spiego. Vorrei inserire il codice in default.php in mod_login come link o button. Poi il valore della variabile che metto in sessione o cookie deve essere leggibile dal PHP di virtuemart (la test, featured, browse_page e flypage)

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #5 il: 14 Nov 2013, 14:04:55 »
Tada:

Codice: [Seleziona]
// Get input cookie object
$inputCookie  = JFactory::getApplication()->input->cookie;

// Get cookie data
$value        = $inputCookie->get($name = 'myCookie', $defaultValue = null);

// Check that cookie exists
$cookieExists = ($value === null);

// Set cookie data
$inputCookie->set($name = 'myCookie', $value = '123', $expire = 0);

// Remove cookie
$inputCookie->set('myCookie', null, time() - 1);

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #6 il: 14 Nov 2013, 14:19:34 »
Grande!
Ancora un po' di pazienza......come faccio a collegarlo al link ogni funzione?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #7 il: 14 Nov 2013, 14:24:58 »
in quali casi viene creato il cookie all'accesso?

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #8 il: 14 Nov 2013, 14:42:39 »
Allora, in mod_login volevo fare una cosa del genere:
Codice: [Seleziona]
If isset($var_cookie) {  Echo '<a href="rimuovi la variabile dai cookies" >nascondi</a> ';   }
Else {   Echo '<a href="inserisci la variabile nei cookies">mostra</a>'; }

O il contrario, ma comunque qualcosa del genere
Dopo l'evento credo che debba ricaricare la pagina

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #9 il: 14 Nov 2013, 15:11:14 »
se i cookie vengono creati dinamicamente e solo in un click allora ti conviene (forse) crearli in javascript :
http://www.w3schools.com/js/js_cookies.asp
e quando devi verificarli invece lo fai con php

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:variabile in sessione
« Risposta #10 il: 14 Nov 2013, 16:14:44 »
attenzione solo che ciò che è salvato in un cookie resta leggibile sul computer che ha creato/usato il cookie ed io non confiderei sull'expire date posto a zero perché il cookie sia cancellato.

visto che parli di e-commerce fermati un attimo a riflettere sulla sicurezza.

ciao,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #11 il: 14 Nov 2013, 16:34:57 »
1. Ci sono riuscito ma ho usato un codice preso da un altro sito e non sono sicuro che il forum mi permetta di segnalare il sito. Tra l'altro lo script è scaricabile gratuitamente. Posso?

2. Grazie marco, ho capito.
diciamo che per quello che serve a me è uno stato 0 e 1 che farà vedere o no una porzione di codice.
Quindi è un cookie che non deve contenere nessuna informazione sensibile riguardante i dati dell'ecommerce.
Magari stavo pendando se si poteva distruggere il cookie al logout insieme alle info del logout.
Come si potrebbe distruggere al logout?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:variabile in sessione
« Risposta #12 il: 14 Nov 2013, 16:42:51 »
1. potresti ma anche no.  ;D
non certo perché parli della concorrenza, ma perché io non amo gli accrocchi con soluzioni fuori del framework con cui si sta lavorando. quando in futuro ci sarà da metterci le mani nessuno capirà più come e perché è stato fatto.
questo è il mio parere di sviluppatore senior, come moderatore non pongo alcun veto.

2. cancellazione cookie
da php? mi sembra dato che parli di logout. imposti una stringa vuota come valore e l'expire date nel passato.

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #13 il: 14 Nov 2013, 17:27:28 »
1. preferisco non metterlo allora. Ma vi dico che ho risolto attraverso funzioni javascript per la creazione e cancellazione del cookie(ne troverete diversi cercando con google). mentre per la lettura del valore del coockie ho usato il codice php così:
Codice: [Seleziona]
$valore = $_COOKIE['nome_cookie'];
if ($valore) { echo 'il cookie esiste';} else {echo 'il cookie non esiste';}

2. il cookie viene creato così:
Codice: [Seleziona]
<a href="#" onClick="funzioneCreaCookie('nome_cookie','valore','durata');">mostra prezzi</a>
la durata io la lascio vuota. Però al logout il cookie non viene cancellato.
come posso fare?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:variabile in sessione
« Risposta #14 il: 14 Nov 2013, 17:34:16 »
Ma perché questo:
Codice: [Seleziona]
$valore = $_COOKIE['nome_cookie']; Joomla offre quella bellissima funzione per filtrare i cookie, perché non usarla?

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #15 il: 14 Nov 2013, 17:42:54 »
e come?
ho provato così
Codice: [Seleziona]
// Get input cookie object
$inputCookie  = JFactory::getApplication()->input->cookie;
// Get cookie data
$value = $inputCookie->get($name = 'prezzi', $defaultValue = null);
ma non mi funziona

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:variabile in sessione
« Risposta #16 il: 14 Nov 2013, 17:45:40 »
lasciare vuota la durata equivale ad impostarla a zero, pertanto il cookie viene cancellato alla chiusura del browser, come detto prima devi impostare la data ad un valore nel passato prova:

<a href="#" onClick="funzioneCreaCookie('nome_cookie','',new Date(new Date().getTime() - 10000));">mostra prezzi[/url]

ciao,
marco

ps: penso che comunque tu debba fare una request al server perché il browser cancelli il cookie.

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:variabile in sessione
« Risposta #17 il: 14 Nov 2013, 17:48:26 »
Codice: [Seleziona]
$value = $inputCookie->get($name = 'prezzi', $defaultValue = null);

ad intuito è più facile che sia così:
Codice: [Seleziona]
$value = $inputCookie->get('prezzi', '0');
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline guardiano

  • Esploratore
  • **
  • Post: 133
    • Mostra profilo
Re:variabile in sessione
« Risposta #18 il: 14 Nov 2013, 17:52:18 »
giusto  :)
e come posso distruggerlo al logout?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:variabile in sessione
« Risposta #19 il: 14 Nov 2013, 17:54:25 »
sempre ad intuito:

Codice: [Seleziona]
$value = $inputCookie->set('prezzi', '', time()-3600);

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif