Visualizzazione risultati 1 fino 8 di 8

Discussione: Bisogna scrivere nella funzione session?

  1. #1
    Data registrazione
    20-04-2014
    Messaggi
    149

    Predefinito Bisogna scrivere nella funzione session?

    Bisogna scriverci qualcosa nella session?

    Codice PHP:
    session_start(scritta);
    o lasciare vuoto?

    Codice PHP:
    session_start();

    Help!
    Grazie

  2. #2
    Guest

    Predefinito

    Codice PHP:
    session_start();
    è corretto, non bisogna aggiungere nulla come paramentro.
    poi per assegnare un valore a una varibile di sessione basta che fai
    Codice PHP:
    $_SESSION['mio_valore'] = $valore;
    per richiamare il valore su qualsiasi altra pagina (sempre con una sessione attiva) basta che fai

    Codice PHP:
    $valore = $_SESSION['mio_valore'];

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

    Predefinito

    Quando hai questi dubbi, devi assolutamente guardare la documentazione ufficiale: session_start(). Visto che l'argomento è void, significa che non accetta alcun parametro. Poi molto spesso ci sono anche degli esempi degli utenti che aiutano a capire meglio...

    Ciao!
    Ultima modifica di alemoppo : 14-08-2014 alle ore 15.31.58

  4. #4
    Data registrazione
    20-04-2014
    Messaggi
    149

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Quando hai questi dubbi, devi assolutamente guardare la documentazione ufficiale: session_start(). Visto che l'argomento è void, significa che non accetta alcun parametro. Poi molto spesso ci sono anche degli esempi degli utenti che aiutano a capire meglio...

    Ciao!
    Avevo guardato, ma è spesso complesso comprendere la documentazione ufficiale.

    Inoltre ho notato alcuni problemi con le sessioni in Chrome a differenza di Firefox, dove funziona tutto bene.
    Sai se è un errore del browser? In particolare è il login che non funziona.

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

    Predefinito

    A me funziona sempre correttamente. Probabilmente c'é qualcosa che non va nel codice.

    Ciao!

  6. #6
    Data registrazione
    20-04-2014
    Messaggi
    149

    Predefinito

    Posto il codice.
    Questo è login:
    Codice PHP:
    session_start(login);


    [...]


    if(
    $user == $userdati && $md5 == $passdati){
    $_SESSION['login'] = $user;
    header("Location:../../");
    }
    E richiamo il tutto così:
    Codice PHP:
    if(isset($_SESSION['login']))
    {
    $user = $_SESSION['login'];
    [...]




    A parte session_start(login); ed il fatto che io non l'abbia posizionato in alto al documento, secondo me non dovrebbe cambiare molto. Invece da Chrome bugga.
    Ma PHP non era a lato server? (un tempo?)
    Non dovrebbe cambiare nulla tra browser :/


    Ho però notato che se aggiungo all'indirizzo della pagina ?time=12345, il login viene effettuato.

    Che stranezza è questa?
    Ultima modifica di pkspritesearch : 16-08-2014 alle ore 11.18.34

  7. #7
    Guest

    Predefinito

    Ho però notato che se aggiungo all'indirizzo della pagina ?time=12345, il login viene effettuato.
    Si PHP è lato server, il browser non dovrebbe influire sulla sua esecuzione.
    Chrome e firefox hanno gestione della cache differente, molto probabilemente hai cache vecchia in chrome quindi vedi che non ti logga mentre se metti "?time=12345" lo vede come una pagina diversa e refresha, facendoti vedere il login.
    Prova a cancellare la cache e facci sapere ;)
    Ultima modifica di pxy : 18-08-2014 alle ore 09.22.56

  8. #8
    Data registrazione
    20-04-2014
    Messaggi
    149

    Predefinito

    Citazione Originalmente inviato da pxy Visualizza messaggio
    Si PHP è lato server, il browser non dovrebbe influire sulla sua esecuzione.
    Chrome e firefox hanno gestione della cache differente, molto probabilemente hai cache vecchia in chrome quindi vedi che non ti logga mentre se metti "?time=12345" lo vede come una pagina diversa e refresha, facendoti vedere il login.
    Prova a cancellare la cache e facci sapere ;)
    Ci avevo provato ma niente.

    In soluzione volevo provare ciò:

    Codice PHP:
    <?
    if ($_GET["s"] == "")
    {
    header('Location: '.$_SERVER['REQUEST_URI'].'&s='.date(dmYhisa));
    //se non esiste $_GET["s"] allora aggiunge "& giorno mese anno ora minuti secondi pm/am" alla fine del link
    }
    ?>
    Questo funziona alla perfezione coi link che posseggono già un GET["..."], ma con quelli senza, il link diventa
    http://secondo.primo/pagina.php&s=ecc.., e questo non va bene perchè manca ?prima di &.

    C'è quindi una maniera di controllare se esiste almeno un GET["..."]? Così scriverei:


    Codice PHP:
    if (esiste almeno un GET["..."])
    {
    if (
    $_GET["s"] == "")
    {
    header('Location: '.$_SERVER['REQUEST_URI'].'&s='.date(dmYhisa));
    }
    else
    {
    header('Location: '.$_SERVER['REQUEST_URI'].'?&s='.date(dmYhisa));
    }
    }
    Ultima modifica di pkspritesearch : 18-08-2014 alle ore 18.14.29

Regole di scrittura

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