Visualizzazione risultati 1 fino 5 di 5

Discussione: [Sessioni] Alcune domande da newbie

  1. #1
    Guest

    Predefinito [Sessioni] Alcune domande da newbie

    Mentre aspettavo di trovare soluzione per PHPMailer ho cominciato a studiare le sessioni (ohi ohi) ma sto avendo qualche piccolo problemino. Ecco il codice che dovrei cercare di capire:

    Codice PHP:
    <html>
    <head>
    </head>
    <body>
    <?php
    session_start
    ();
    session_register("SESSION_DATA");
    if (! isset(
    $SESSION_DATA)) {
    $SESSION_DATA["count"] = 0;
    echo
    "<li>Counter has been initialized. Reload page to see results.";
    } else {
    echo
    "<li>Session name: $PHPSESSID";
    $SESSION_DATA["count"]++;
    }
    echo
    "<li>The counter is now at: $SESSION_DATA[count]";
    ?><br />
    <a href="index.php">incrementa</a>
    </body>
    </html>
    è molto banale ma provate ad andare in questa pagina e capirete qual'è il mio problema: http://provaphpprova.altervista.org/.../forumhelp.php.
    Dovrebbe mettere a zero il contatore quando si accede, incrementarlo se si ha già una sessione, e dovrebbe mostrare sempre il valore. Ecco... il valore rimane sempre a 0.
    Che voi sappiate altervista ha messo particolari limitazioni alle sessioni?

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

    Predefinito

    Le sessioni utilizzano i cookie, che quindi utilizzano l'header della pagina.

    Quindi, come per i cookie, le devi inizializzare PRIMA DI OGNI OUTPUT HTML... ovvero quando ancora "invia" i dati dell'header.

    Per farla breve, devi spostare il session_start(); prima di <html>

    Ciao!

  3. #3
    Guest

    Predefinito

    Ora la prima cosa che mi viene da dire è che sono un idiota .
    La guida diceva:
    "...Questo perché session_start() verrà trasmesso con le nostre intestazioni HTTP, altrimenti verrà generato un errore.
    Il passo successivo è quello di assegnare alcuni dati significativi alla sessione per l' accesso successivo."


    (Chiaro riferimento secondo cui il tutto doveva essere messo prima di <html>)

    E io in che tranello casco? Esattamente questo -.-'

    Grazie mille =)

    >>EDIT:
    Still not working. Non funziona ancora. Cosa può essere sta volta? la pagina l'ho spostata in index.php
    Eccola:

    Codice PHP:
    <?php
    session_start
    ();
    session_register("SESSION_DATA");
    if (! isset(
    $SESSION_DATA)) {
    $SESSION_DATA['count'] = 0;
    } else {
    $SESSION_DATA['count']++;
    }
    ?>
    <html>
    <?php echo "The counter is now at: $SESSION_DATA[count]; Session name: $PHPSESSID;"; ?>
    </html>
    >>RE-EDIT:
    io uso PHP cinque e php.net mi fa gentilmente sapere che la funzione che ho trovato nella guida, ovvero session_register(), è deprecata:

    This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

    Deprecato di solito indica anche la rimozione della funzione o solo che a partire da una certa versione si è preferito sconsigliarla? in previsione di una futura rimozione? E un'altra cosa... Ho bypassato il problema usando $_SESSION ma non riesco a capire una cosa. Se arriva un utente, mettiamo si chiami A, e inizia una sessione. Io non do il nome alla sessione quindi dovrebbe prendere PHPSESSID. Nel frattempo che questo si fa un giretto nel mio sito arriva un'altro utente di nome B e inizia una sessione. Prende anche lui PHPSESSID giusto?
    In questo caso (in cui le due sessioni hanno nome identico) quello che io ottengo è solo che le due o più persone cominceranno ad avere problemi o no?
    Ultima modifica di provaphpprova : 19-08-2010 alle ore 15.35.21

  4. #4
    Guest

    Wink

    Citazione Originalmente inviato da provaphpprova Visualizza messaggio
    This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
    deprecato che è stata rimossa perchè obsoleta
    Ultima modifica di connettiti : 19-08-2010 alle ore 16.01.46

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

    Predefinito

    ecco io come uso ed ho sempre usato le sessioni:

    Codice PHP:
    <?php
    session_start
    ();
    ?>
    <html>
    <head>
    <title>pagina</title>
    </head>
    <body>
    <?php
    $_SESSION
    ['nome'] = 'bianco';
    echo
    'Il cavallo bianco di Napoleone è:'.$_SESSIO['nome'];
    ?>
    </body>
    </html>
    Ciao!
    Ultima modifica di alemoppo : 19-08-2010 alle ore 16.09.44

Regole di scrittura

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