Visualizzazione risultati 1 fino 6 di 6

Discussione: problema con i cookie

  1. #1
    Guest

    Predefinito problema con i cookie

    buongiorno..

    ho un problemino con i cookie che spero mi possiate aiutare a risolvere.

    voglio realizzare la funzione "resta connesso";
    quindi nel form di login ho inserito anche un checkbox che quando barrato fa si che venga creato un cookie in cui memorizzo username e password(criptata) dell'utente


    questo è il form:
    Codice HTML:
    <form action='mioSito' method='post' >
        		
    <input type='text' name='username' value='username' /> 
    <input type='password' name='password' value='password' /> 
    <input type='checkbox' name='rememberMe' value='ok' />
    <input type='submit' name='submit' value='Login!' />
    
    </form>
    questa è la funzione che genera il cookie:

    Codice PHP:

    $scadenza
    = time() + 604800;
    $dominio = ".stepone.altervista.org";

    setcookie("nick", $nome, $scadenza, "./", $dominio, 0);
    setcookie("sex", $sex, $scadenza, "./", $dominio, 0);
    setcookie("pass", $lapassword, $scadenza, "./", $dominio, 0);
    <!--
    è criptata quindi nn dovrebbe essere troppo grave metterla in un cookie -->
    e questo è il controllo che ho impostato nella pagina per riconoscere l'utente:

    Codice PHP:
    // prima per la sessione

    if (isset($_SESSION['you'])) {
    echo
    "benvenuto ".$_SESSION['you'];
    }
    else if (isset(
    $_COOKIE['pass'])) {

    // connetto al database e verifico corrispondenza tra cookie pass e cookie username, ed eventualmente assegno
    // contenuto del cookie aalla sessione, quindi ricarico

    $_session['you'] = $_cookie['nick'];
    header(location...) // aggiorno la pagina

    }
    else {
    // altrimenti faccio stampare i moduli di login
    ....
    }
    il problema è che quando non esiste la sessione, anche quando mi aspetto che entri nel secondo if, questo non accade.
    dove ho sbagliato?

    grazie in anticipo
    Ultima modifica di andreafallico : 08-03-2011 alle ore 11.37.39

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Hai provato a modificare, l'ultimo codice da te postato, cosi:

    Codice PHP:
    if (isset($_COOKIE["pass"]])) {
    // connetto al database e verifico corrispondenza tra cookie pass e cookie username, ed eventualmente assegno
    // contenuto del cookie aalla sessione, quindi ricarico

    $_SESSION["you"] = $_COOKIE["nick"];
    }

    if (isset(
    $_SESSION["you"])) {
    echo
    "Benvenuto " . $_SESSION["you"];

    }else {
    // altrimenti faccio stampare i moduli di login
    }
    Ho separato le il controllo del cookie dal controllo della sessione per evitare il ricaricamento della pagina, almeno se esiste il cookie e viene generata la sessione la seconda if risulterà vera, almeno credo.

    Il codice non l'ho provato, ma dovrebbe funzionare.
    Ultima modifica di sevenjeak : 08-03-2011 alle ore 12.36.32

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    la tua modifica è sicuramente intelligente, e mi consente di evitare l'header...
    ma il problema rimane...

    sembrerebbe che il cookie non è impostato...
    ma la funzione che lo imposta ho verificato e viene eseguita regolarmente...

    non capisco proprio perchè l'esecuzione non entri nell'if isset(cookie)

    qualcun altro sa dove potrebbe essere l'impiccio?

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    forse non vede il cookie per il path, prova a mettere solo "/" invece che "./" , ma non sono sicuro di questo.

    ho guardato qui: http://php.net/manual/en/function.setcookie.php
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    E controlla che la funzione setcookie venga richiamata prima di qualsiasi output...

  6. #6
    Guest

    Predefinito

    grazie tante eurosalute...

    era quel punto che rompeva!
    problema risolto

    grazie anche a te javascripter!

Regole di scrittura

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