• User Attivo

    [Guida] Sessioni in PHP

    @giorgiotave Eh infatti è un caso che mi pare veramente strano. Quello dei numeri lo sapevo per le paginate.
    L'unica roba che mi sta venendo in mente (e non vi dico gli "incoraggiamenti" se così fosse) potrebbe essere un parametro dentro al datalayer di GTM che, de facto, non esiste come URL ma dovrebbe essere interpretato dal solo sistema di analytics.
    Non vorrei che, nella sua voracità, gbot avesse fatto il rendering del tutto e si fosse trovato la URL relativa, che ha pensato potesse essere da scansionare.


    giorgiotave 1 Risposta
  • User Attivo

    non hanno una durata limitata, cioè se non vengono utilizzate dopo un tot di minuti scadono?


  • Community Manager

    Le sessioni scadono alla chiusura del browser, o giustamente della connessione

    inoltre si può impostare una scadenza della sessione

    $sesscookietime = 3600;

    Tempo, trascorso il quale scade una sessione


  • Super User

    @giorgiotave said:

    Le sezioni sono un pò come i cookie soltanto che tutto il lavoro lo fa php. Per dare inizio ad una sessione si usa session_start(). Quando diamo inizio ad una sessione php crea un cookie al posto nostro contenente delle informazioni. Php crea automaticamente anche delle variabili. session_start() va chamata prima di aver rilasciato codice php. Essa scade alla chiusura del browser. Se invece vogliamo chiudere noi la sezione usiamo session_destroy(). Quando apriamo una sessione all'utente viene assegnato un ID . Questo ID può essere richiamato tramite la seguente variabile $PHPSESSID. Con le sessioni possiamo registrare variabili all'interno si esse tramite session_register()

    Preso dalla guida alle [url=http://www.giorgiotave.it/guida_php/sessioni.php]sessioni in php

    mmm...

    L'ID della sessione viene definito anche nella costante SID.
    per il session_register non sarei tanto propenso al suo utilizzo, col PHP5 si possono usare gli array globali quali:
    $_POST
    $_GET
    ...
    quello che a noi interessa è il $_SESSION, tutto le variabili accodate a quell'array saranno variabili di sessione...

    byezz...
    :ciauz:


  • Community Manager

    Pater grazie per la delucidazione 🙂


  • Super User

    Aggiunto al thread in rilievo... ma la prossima volta, giò, lo puoi fare tu! 😄


  • User Attivo

    Ho realizzato l'autenticazione utente con PHP utilizzando session_start()

    Funziona tutto perfettamente solo se il browser dell'utente accetta i cookie.

    A questo punto sono un pò disorientato perchè ero convinto che questo tipo di autenticazione funzionasse anche se il browser fosse impostato in modo tale da rifiutare i cookie.

    :mmm:

    Vado a dare un'occhiata
    http://www.giorgiotave.it/guida_php/sessioni.php


  • Super User

    @linus said:

    Ho realizzato l'autenticazione utente con PHP utilizzando session_start()

    Funziona tutto perfettamente solo se il browser dell'utente accetta i cookie.

    A questo punto sono un pò disorientato perchè ero convinto che questo tipo di autenticazione funzionasse anche se il browser fosse impostato in modo tale da rifiutare i cookie.

    :mmm:

    Vado a dare un'occhiata
    http://www.giorgiotave.it/guida_php/sessioni.php
    Ora non ricordo come, ma si poteva fare in modo che l'ID di session potesse essere passato anche tramite GET con la variabile SID... controlla!


  • User Attivo

    Scrivo alcuni aggiornamenti sulla gestione della SESSION che sono arrivati con la versione di PHP4 e PHP5.

    session_id() permette di ottenere l'id della sessione attuale.

    Nel caso:
    if (!session_id()) {
    <sessione non ancora creata>
    }

    Il session ID creato da PHP4 è lungo 32 caratteri, mentre quello creato da PHP5 è di 27.

    Per mantenere la sessione tra le pagine anche senza usare cookie basta agganciare ai link il parametro SID. Per evitare una possibile vulnerabilità a XSS, il manuale ufficiale, consiglia di usare strip_tags con SID.

    Per esempio:
    echo "link.php?".strip_tags(SID);


  • User Newbie

    Ok ragazzi, problemino.
    Posso postare un SID ad un dominio di terzo livello nello stesso server (ma con differente ip) in modo da mantenere i dati salvati nella sezione?
    Esempio (perchè anche io non mi sono capito)

    form in form.php www.dominio.com
    <form action=https://secure.dominio.com/risposta.php?.strip_tags(SID) method=get>

    risposta in risposta.php secure.dominio.com
    inserisco $_GET['SID'] ????
    $_SESSION['qualcosa'] ????
    PHPSESSID=SID ????

    Giuro che ho in testa un mucchio di confusione, ma anche il sito di php non è proprio la chiarezza fatta website sull'argomento.

    Inoltre:
    echo "link.php?".strip_tags(SID); del precedente messaggio di inuyaksa
    Qualcuno me lo può spiegare?

    Scusate ma da nessuna parte ho visto di sessioni che si possono muovere da un sito all'altro, ma so che i cookies (in qualche modo anche le sessions finiscono a livello di cookies, no?) con la segnalazione del domain ".domain.com" rimangono validi anche nei subdomain tipo secure.domain.com oppure www.domain.com tantisaluti.domain.com e via dicendo. E le sessions????????


  • User Newbie

    salve le session possono essere utilizzate per spostare i risultati di query invece che classiche variabili?


  • User Attivo

    Ciao a tutti, e benvenuti sul forum 😉

    a regrunge: io credo si possano inviare a sottodomini...
    inoltre se i cookie sono abilitati, i sottodomini possono ricevere il cookie (come in questo thread http://www.giorgiotave.it/forum/php-mysql/82039-cookie-su-piu-siti.html)

    x me... dovresti fare $_GET['SID'] per prima cosa, poi non so non ho mai provato con il metodo GET...

    echo "link.php?".strip_tags(SID);
    significa: scrivi qualcosa (sottointeso!) con link alla pagina "link.php?{e qui il risultato della funzione strip_tags su SID"

    a crocrocro83: boh non ho capito bene