Visualizzazione risultati 1 fino 15 di 15

Discussione: sessione aperta

  1. #1
    Guest

    Predefinito sessione aperta

    Buon pomeriggio a tutti, sono di nuovo qui per chiedere il vostro aiuto.
    Ho creato una form di registrazione e login, e fin qui tutto ok, adesso volevo sapere come posso fare a lasciare la sessione aperta per il perdurare della visita sul sito?

    Mi spiego meglio o notato che se fa il login si accede alla pagina privata ma se continuo con la visita del sito e poi voglio tornare alla paguina privata mi chiede di rifare il login, come posso fare per evitare ciò.
    Grazie a tutti in anticipo

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

    Predefinito

    È strano... Hai i cookie attivati? Puoi scrivere il sorgente del login?

    Ciao!

  3. #3
    Guest

    Predefinito

    Codice PHP:
    <?php

    $DB_host
    = "localhost";
    $DB_user = "";
    $DB_password = "";
    $DB_name = "";

    $link = mysql_connect($DB_host, $DB_user, $DB_password);
    if (!
    $link)
    {
    die (
    "Non riesco a connettermi: " . mysql_error());
    }

    $db_selected = mysql_select_db($DB_name, $link);
    if (!
    $db_selected)
    {
    die (
    "Errore nella selezione del database: " . mysql_error());
    }

    if (
    $_POST)
    {
    effettua_login();
    }

    function
    effettua_login()
    {
    // recupero il nome e la password inseriti dall'utente
    $nome = trim($_POST["username"]);
    $password = trim($_POST["password"]);

    // verifico se devo eliminare gli slash inseriti automaticamente da PHP
    if(get_magic_quotes_gpc())
    {
    $nome = stripslashes($nome);
    $password = stripslashes($password);
    }

    // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
    $nome = mysql_real_escape_string($nome);
    $password = mysql_real_escape_string($password);
    //print "Il tuo nome è: " .$nome." e la tua password e’: ".$password;

    // preparo ed invio la query
    $query = "SELECT * FROM users WHERE username = '$nome' AND password = '$password'";
    $result = mysql_query($query);

    if (!
    $result)
    {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    $record = mysql_num_rows($result);
    $rows = mysql_fetch_row($result);

    if(
    $record > 0)
    {
    $_SESSION["username"]=$nome;
    $_SESSION["password"]=$password;
    $_SESSION["autorized"]=1;
    Header("Location:membersarea.php");
    exit;
    }else {
    $_SESSION["autorized"]=0; //errore e quindi autorizzazione negata
    echo '<script type="text/javascript">// <![CDATA[ mce:0// ]]></script>';
    }




    }



    ?>
    Ultima modifica di alemoppo : 24-01-2012 alle ore 16.55.55 Motivo: [code]->[php]

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

    Predefinito

    In alto a tutto, metti una session_start() (puoi anche metterla dentro la funzione login, però assicurati prima di non aver scritto alcun output html).

    Ogni volta che in una pagina usi $_SESSION, dei aprire la sessione con quella funzione.

    Note:

    To use cookie-based sessions, session_start() must be called before outputing anything to the browser.
    Ciao!
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.00.30

  5. #5
    Guest

    Predefinito

    prima della definizione dei parametri di connessione al database o dopo il ciclo if finale?

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

    Predefinito

    Dovrebbe essere indifferente.

    Ciao!

    EDIT:

    Con la headers_sent(), dovresti avere anche la sicurezza di non aver effettuato alcun output html:
    Codice PHP:
    if (!headers_sent())
    session_start();
    else echo
    'Errore: non posso settare la sessione';
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.07.27

  7. #7
    Guest

    Predefinito

    però se noti dopo if su i record richiamo un altra pagina membersarea e lì sta session_start

    EDIT:

    Codice PHP:
    <?php

    session_start
    ();

    if (
    $SESSION['username'])
    {

    echo
    "Sei riconosciuto come. ".$SESSION['username'];
    echo
    "<p>";
    echo
    "<a href='logout.php'>Clicca qui per uscire</a>";

    }
    else
    header("location: Pronostici.html");

    ?>
    questo è il codice di membersarea
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.13.28 Motivo: Usa il tasto "Edita"

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

    Predefinito

    Membersarea deve avere la session_start() per poter leggere la sessione. Però,

    Codice PHP:
    $_SESSION["username"]=$nome;
    $_SESSION["password"]=$password;
    $_SESSION["autorized"]=1;
    Header("Location:membersarea.php");
    Per poter fare gli assegnamenti, la sessione deve già essere aperta per quella pagina! Non so se hai capito... Comunque prova: tentar non nuoce

    Ciao!

    EDIT: ho visto il sorgente. È corretto, ma per poter fare gli assegnamenti, come ho detto sopra, è necessario aprire la sessione anche nella pagina di login.
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.12.58

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Dovrebbe essere indifferente.

    Ciao!

    EDIT:

    Con la headers_sent(), dovresti avere anche la sicurezza di non aver effettuato alcun output html:
    Codice PHP:
    if (!headers_sent())
    session_start();
    else echo
    'Errore: non posso settare la sessione';
    questo codice dove dovrei inserirlo?all'inizio?

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

    Predefinito

    Sì... va bene anche all'inizio.

    Ciao!

  11. #11
    Guest

    Predefinito

    Codice PHP:
    <?php

    if (!headers_sent())
    session_start();
    else echo
    'Errore: non posso settare la sessione';

    $DB_host = "localhost";
    $DB_user = "bettingtoday";
    $DB_password = "iopippo";
    $DB_name = "my_bettingtoday";

    $link = mysql_connect($DB_host, $DB_user, $DB_password);
    if (!
    $link)
    {
    die (
    "Non riesco a connettermi: " . mysql_error());
    }

    $db_selected = mysql_select_db($DB_name, $link);
    if (!
    $db_selected)
    {
    die (
    "Errore nella selezione del database: " . mysql_error());
    }

    if (
    $_POST)
    {
    effettua_login();
    }

    function
    effettua_login()
    {
    // recupero il nome e la password inseriti dall'utente
    $nome = trim($_POST["username"]);
    $password = trim($_POST["password"]);

    // verifico se devo eliminare gli slash inseriti automaticamente da PHP
    if(get_magic_quotes_gpc())
    {
    $nome = stripslashes($nome);
    $password = stripslashes($password);
    }

    // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
    $nome = mysql_real_escape_string($nome);
    $password = mysql_real_escape_string($password);
    //print "Il tuo nome è: " .$nome." e la tua password e’: ".$password;

    // preparo ed invio la query
    $query = "SELECT * FROM users WHERE username = '$nome' AND password = '$password'";
    $result = mysql_query($query);

    if (!
    $result)
    {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    $record = mysql_num_rows($result);
    $rows = mysql_fetch_row($result);

    if(
    $record > 0)
    {
    session_start();
    $_SESSION["username"]=$nome;
    $_SESSION["password"]=$password;
    $_SESSION["autorized"]=1;
    Header("Location:membersarea.php");
    exit;
    }else {
    $_SESSION["autorized"]=0; //errore e quindi autorizzazione negata
    echo '<script type="text/javascript">// <![CDATA[ mce:0// ]]></script>';
    }




    }



    ?>
    questo è quello che diventerebbe è giusto?
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.17.20

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

    Predefinito

    Sì, provalo... Al massimo non funziona .

    Ciao!

  13. #13
    Guest

    Predefinito

    lo provo subito, grazie per la pazienza

    EDIT:

    non funziona il login lo fa e mi fa entrare nella pagina poi se vedo un altra pagina e ritorno su quella privata mi chiede il login
    Ultima modifica di alemoppo : 24-01-2012 alle ore 17.22.29 Motivo: Non fare post consecutivi: usa il tasto "Edita" per editare i messaggi

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

    Predefinito

    Citazione Originalmente inviato da bettingtoday Visualizza messaggio
    non funziona il login lo fa e mi fa entrare nella pagina poi se vedo un altra pagina e ritorno su quella privata mi chiede il login
    Strano... A questo punto non saprei, mi dispiace. Ma hai i cookie attivati?

    Ciao!

  15. #15
    Guest

    Predefinito

    non vorrei che il motivo sia il fatto che io nel menu ho associato alla voce pronostici la pagina della richiesta login e quindi ogni volta che clisso su pronostici lui mi fa vedere quella pagina, non stante la sessione è aperta.

Regole di scrittura

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