Visualizzazione risultati 1 fino 8 di 8

Discussione: $_SESSION vuoto tra pagine

  1. #1
    gtinfocom non è connesso Utente AlterBlog
    Data registrazione
    07-06-2016
    Messaggi
    4

    Question $_SESSION vuoto tra pagine

    Salve,
    da qualche settimana ho il sito dove le variabili $_SESSION sembrano scomparire tra pagine. Dalla index.html parte un ajax che lancia login.php per la verifica del login. Nel login.php, dopo aver indicato session_start(), memorizzo l'id come $_SESSION["userid"]=xxx dell'utente che ha effettuato l'accesso. Tornando a index.html se guardo l'id (tramite "data" di ajax) lo vedo correttamente. Quando faccio il redirect verso la pagina archive.php, dopo il session_start(), facendo print_r($_SESSION) ottengo l'array vuoto.
    Qualcuno ha idea di cosa possa essere successo? Nessuno ha toccato nulla e, all'improvviso, non funziona piu'.
    Ho letto che potrebbe anche dipendere da qualche impostazione di .htaccess. E' cambiato in questi ultimi tempi?
    Ultima modifica di gtinfocom : 21-10-2020 alle ore 16.19.05

  2. #2
    darbula non è connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,083

    Predefinito

    page1.php
    Codice PHP:
    <?php
    // page1.php

    session_start();

    echo 
    'Welcome to page #1';

    $_SESSION['favcolor'] = 'green';
    echo 
    '<br /><a href="page2.php">page 2</a>';
    page2.php
    Codice PHP:
    <?php
    // page2.php

    session_start();

    echo 
    'Welcome to page #2<br />';

    echo 
    $_SESSION['favcolor'];
    echo 
    '<br /><a href="page3.php">page 3</a>';
    page3.php
    Codice PHP:
    <?php
    // page3.php

    session_start();

    echo 
    'Welcome to page #3<br />';

    echo 
    $_SESSION['favcolor'];
    Il cookie verrà inviato dalla seconda richiesta in poi.
    Comunque dopo aver utilizzato session_start() e $_SESSION nel login devi effettuare il redirect in modo tale da inviare il cookie.
    Ultima modifica di darbula : 21-10-2020 alle ore 18.45.26

  3. #3
    gtinfocom non è connesso Utente AlterBlog
    Data registrazione
    07-06-2016
    Messaggi
    4

    Predefinito

    Grazie per l'attenzione innanzi tutto...
    Il tuo codice funziona in locale ma nel sito la variabile "favcolor" gia' in page2.php risulta vuota.
    Ovviamente per risolvere ho cercato dritte in ogni dove e molti parlano di errori nel file .htaccess.
    Potrebbe davvero essere lui la causa?

  4. #4
    darbula non è connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,083

    Predefinito

    Puoi riprovare ho suddiviso lo script su tre pagine, a me funziona stampa green la variabile $_SESSION. (vai dal pannello altervista su gestione file e incolla il codice così come si trova altrimenti il tuo editor potrebbe inserire il BOM) prima crearlo con estensione txt e poi lo rinomini in php
    Ultima modifica di darbula : 21-10-2020 alle ore 18.36.13

  5. #5
    gtinfocom non è connesso Utente AlterBlog
    Data registrazione
    07-06-2016
    Messaggi
    4

    Predefinito

    Non c'e verso. Non ne vuol sapere...
    Questi sono gli script:

    In index.html (sezione javascript/jquery)

    $('#login_submit').click(function() {
    var username = $('#login_username').val();
    var password = $('#login_password').val();
    $.ajax({
    url: "login.php",
    method: "POST",
    data: {
    username: username,
    password: password
    },
    success: function(data) {
    alert(data); ----> mostra lo userid corretto (2 in questo esempio)
    if (data>0) {
    $(location).attr('href','archive.html');
    } else {
    $('#login_error').show();
    }
    }
    });
    });

    In login.php

    <?php
    session_start();
    ...
    MySql verifica utente e password e restituisce l'id dell'utente o 0 se fallisce.
    $userid=2;
    ...
    $_SESSION["userid"]=$userid;
    echo $userid;
    ?>

    In archive.html

    <?php
    session_start();
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    ...
    </head>
    <body>
    <?php
    print_r($_SESSION) ----> restituisce: Array()
    ?>
    </body>
    </html>

  6. #6
    darbula non è connesso AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,083

    Predefinito

    Ciao hai provato i miei tre script da Gestione Fille
    In login.php devi effettuare un redirect ad una pagina con estensione .php per attivare anche il cookie.
    Di default il motore php è abilitato all'estensione .php e non html.
    Racchiudi il codice php tra [php]// Commento[/php]
    Ultima modifica di darbula : 22-10-2020 alle ore 23.46.09

  7. #7
    gtinfocom non è connesso Utente AlterBlog
    Data registrazione
    07-06-2016
    Messaggi
    4

    Predefinito

    I tuoi file funzionano bene.
    Probabilmente legata allo stesso problema il fatto che se in login.php setto un cookie, questo non lo vedo in archive.html come pure una variabile $GLOBAL impostata in login.php viene segnalata vuota in archive.html.
    Adesso provo a cambiare il file archive.html per portarlo come archive.php.
    Rimane sempre il mistero del perche' fino a un paio di settimane fa tutto funzionava ed ora no.
    P.S. Ora il sito, pur avendo attivato il https (nel pannello di controllo del sito appare attivo ed anche cloudflare in cui ho provveduto a cancellare la cache), visualizzato da client, risulta insicuro.
    Ultima modifica di gtinfocom : 23-10-2020 alle ore 11.40.50

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,967

    Predefinito

    Citazione Originalmente inviato da gtinfocom Visualizza messaggio
    P.S. Ora il sito, pur avendo attivato il https (nel pannello di controllo del sito appare attivo ed anche cloudflare in cui ho provveduto a cancellare la cache), visualizzato da client, risulta insicuro.
    Io visualizzo correttamente:


    Il problema si verifica solo in determinate pagine? Quali? Solitamente si verifica perché includi contenuti (immagini/script) nella pagina in HTTP se visiti la pagina in HTTPS.

    Ciao!

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •