• User Newbie

    SESSIONI E COOKIE JAVASCRIPT COZZANO?

    Spero possiate aiutarmi:

    Ho creato un sito php di commercio elettronico con tanto di sessioni e carrello della spesa, uso Easyphp 1.8 come server locale.

    Il carrello della spesa è creato in javascript, e funziona a meraviglia se non uso le sessioni php.

    In pratica il carrello funziona creando un cookie javascript, fatto sta che attivando le sessioni con session_start() la stringa (il cookie) creato dal javascript mi viene sporcata dalle indicazioni tipo

    PHPSESSID=blablablablabla

    Quando aggiungo un articolo nel carrello, la stringa del cookie javascript si modifica e allunga, quindi non resta che fare un bel document.cookie=newstring per riscrivere il cookie nella sua nuova versione + lunga.
    Invece proprio questa ultima istruzione, senza dare nessun messaggio di errore, non mi aggiorna il cookie, in pratica è come se venisse ignorata e il cookie non viene aggiornato.

    Se tolgo le sessioni (e quindi non viene scritto PHPSESSID=blabla) tutto funziona a meraviglia.

    I miei pensieri al riguardo sono:
    - i cookie javascript non vanno daccordo con le sessioni PHP
    - un bug di easyphp
    - E' possibile fare in modo che il cookie dove venga scritto
    PHPSESSID non sia lo stesso del cookie javascript?


  • User Newbie

    ciao, i cookie di una sessione php vengono memorizzati sul server
    mentre i cookie javascript vengono memorizzati non come sessione ma proprio come cookie sul client e quindi le due cose non possono essere collegate.
    spero di essere stato chiaro anche perche anchio sono da poco nel mondo php.
    ciao


  • Moderatore

    ciao, i cookie di una sessione php vengono memorizzati sul server

    E da quando? 🙂


  • User

    guarda ho ripassato proprio ieri
    allora le sessioni consistono nell'attribuire un id di sessione all'utente in modo da conservarne l'identità e la sua sessione di visita (va bhe questo dipende da quando si vuole far spirare la sessione).

    Questo numero univoco viene salvato in 2 modi

    1)cookies (nel pc dell'utente)

    e nel caso questi siano disabilitati

    2)propagati come querystring nell'url

    l'id di sessione è un numero univoco (32 caratteri alfanumerici)
    i cookies si piazzano nella cartella dei file temporanei dell'utente

    ora nn so se venga salvato qualcosa anche dalla parte del server..credo di si, visto che ho letto che a sicurezza qui c'è una pecca, ossia che file delle sessioni appartengono tutti allo stesso utente (l'utente di Apache, nobody di default) e vengono tutti salvati nella stessa directory, accessibile a tutti, in lettura e scrittura.

    c'è chi può spiegarmi sto passaggio?


  • User

    ecco qua il tassello mancante.

    PHP prima di tutto memorizza i dati in un file, che avrà un nome alfanumerico (l'id_di sessione), nel server e invia al cliente tale valore come cookies o in mancanza di questo accodandolo all'url,
    questo per far si che poi il browser possa re-inviare il nome della sessione al server e php lo sappia abbinare al suo file