• User

    Php, mantenere sessione di login

    Sera a tutti.
    Avrei un problema con php, mi spiego.

    Io ho una pagina riservata allo staff.

    Il form e' banale richiede solo utente e password.

    Ora, una volta inseriti i dati e cliccato sul bottone invia, lo script controlla se i dati son corretti, e fin qui tutto ok.
    Il problema sorge perche' quando l' utente si logga, ha un menu' personale fra i quali un indirizzamento alla webmail. come tutti i fedeli browser il popup viene bloccato,
    consento al popup di aprirsi, e qui nasce il problema.
    Dando il consenso al popup la pagina si aggiorna... e la sessione scade.
    Ovvero bisogna rieffettuare il login.

    ho gia provato con:
    [php]setcookie ("nome","valore", time() +700)[/php]ma al refresh della pagina e' come se il cookie non esistesse.

    ho testato anche con:
    [php]session_start();[/php]ma nulla. Ora il problema e': "O sbaglio il codice (non avendo mai utilizzato ne session start ne setcookie)"
    o c'e' qualcos' altro da fare...
    Vi riporto la porzione di codice:
    [php]
    if ($_COOKIE == "ok"){
    echo "sei gia loggato";
    }else{

    if (($user == $team[1]) && ($passw == $pass[1])){
    setcookie ("piacere","ok",time() +700);
    echo "Benvenuto Franco";
    }
    #poi ne vengono altri ma il test lo sto facendo su uno
    }
    [/php][php]

    $ute = $_SESSION['use'];
    if (strlen($ute) > 0){
    echo "loggato";
    }else{
    if (($user == $team[1]) && ($passw == $pass[1])){
    session_start();
    $_SESSION['use'] = $user;
    echo "Benvenuto Franco";
    }
    ne vengono altri ma il test lo sto facendo su uno
    }

    [/php]Questo e' quanto a me servirebbe che al refresh della pagina l'utente rimanga loggato finche' non si clicca su logout o finche' non pasisno 20 minuti d' in'attivita'...

    Qualcuno saprebbe aiutarmi?
    Grazie anticipatamente delle risposte


  • ModSenior

    Ciao Super_Ale46,

    se fai:
    [php]
    setcookie ("nome","valore", time() +700)
    [/php]

    Il cookie è valido solo per 700 secondi.


  • User

    Ciao ted. Anzitutto grazie per la tempestiva risposta.
    lo so che il cookie e' valido solo pr 700 secondi... ma a dire il vero il cookie non credo che resti valido nemmeno per 3 secondi...
    Il problema e' proprio questo... per giocare sui tempi ho sempre tempo, il problema e' proprio attivare questo cookie.
    non so se mi son spiegato bene.


  • ModSenior

    Sarebbe meglio se posti le pagine interessate del login e quella che da il problema del logout automatico per poter capire qualcosa.


  • User

    Allora e' tutto in una pagina, inclusa in un iframe su un' altra pagina

    index.html:
    [PHP]

    html ecc ecc

    <iframe align="center" allowtransparency="true" border="0" src="/page/form.php" width="100%" height="400"></iframe>

    [/PHP]

    [PHP]
    <?php

    echo "<html>\n<head>\n<link rel="stylesheet" type="text/css" href="/test.ale/style.css"/>\n<SCRIPT type="text/javascript" src="/test.ale/content.js">\n</script>\n\n\n<body style="background:transparent">";

    define ("errore_utente","Verifica il tuo utente");
    define ("errore_password","Verifica la password");

    function generaForm($eut="",$eps=""){
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" id="reserved">
    <table>
    <tr>
    <td><fieldset><legend style="color: #FFFFFF; font-size: 14px">Utente</legend><input type="text" class="inputype" name="usr" id="usr"><br>
    <?php if (!$eut=="") { echo"<span style="color:#ff0000"><strong>$eut</strong></span>";} else { echo"";}?></fieldset><br/><br/></td></tr>
    <tr><td><fieldset><legend style="color:; font-size: 14px">Password</legend><input class="inputype" type="password" name="pwd" id="pwd"></fieldset><br/>
    <?php if (!$eps=="") { echo"<span style="color:#ff0000"><strong>$eps</strong></span>";} else { echo"";}?></td>
    <td valign="center">&nbsp&nbsp&nbsp&nbsp<input type="submit" name="invia" value="Accedi"></td>
    </tr>
    </table>
    </form>
    <?php
    }

    function controlla($stringa,$lunghezza){
    if (strlen($stringa)<$lunghezza){
    return true;
    }
    else {
    return false;
    }
    }

    $ute = $_SESSION['user'];
    if (strlen($ute) > 0){
    echo "loggato";
    }

    else if (!isset($_POST['invia'])){
    generaForm();

    }else{

    $user = isset ($_POST['usr']) ? stripslashes ($_POST['usr']) : "";
    $passw = isset ($_POST['pwd']) ? stripslashes ($_POST['pwd']) : "";

    $errore = false;
    $eut = "";
    $eps = "";
    $team = array ("nome","nome","nome","nome","nome","nome","nome");

    $pass = array ("pass","pass","fpass","pass",);

    if ((controlla($user,1)) or ($user=="")) {
    $errore = true;
    $eut = errore_utente;

      }
    

    if ((controlla($passw,1)) or ($passw=="")) {
    $errore = true;
    $eps = errore_password;

      }
    

    if ($errore){
    generaForm($eut,$eps);
    }else{

    if (($user == $team[0]) && ($passw == $pass[0])){

    session_start();
    $_SESSION['use'] = $user;
    echo "benvenuta nome";
    <input type="submit" value="webmail" onclick="webmail();">

    }
    else if (($user == $team[1]) && ($passw == $pass[1])){

    ?>
    <p class="app">Benvenuta Nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php
    }
    else if (($user == $team[2]) && ($passw == $pass[2])){

    ?>
    <p class="app">Benvenuta Nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php

    }
    else if (($user == $team[3]) && ($passw == $pass[3])){

    ?>
    <p class="app">Benvenuta nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php
    }
    else if (($user == $team[4]) && ($passw == $pass[3])){

    ?>
    <p class="app">Benvenuta Nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php
    }
    else if (($user == $team[5]) && ($passw == $pass[3])){

    ?>
    <p class="app">Benvenuta Nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php
    }
    else if (($user == $team[6]) && ($passw == $pass[3])){

    ?>
    <p class="app">Benvenuta Nome</p>
    <input type="submit" value="webmail" onclick="webmail();">

    <?php
    }else{
    $eut = errore_utente;
    $eps = errore_password;
    generaForm($eut,$eps);
    }
    }

    }

    echo "</body></html>";
    ?>
    [/PHP]

    Dove la funzione webmail() e inclusa in content.js

    ed e':

    webmail (){
    window.open("mail.miosito.it","webmail");
    }


  • User

    ALLLLLLLLLLLLTTTTT!!!

    Allora... ho modificato il codice... ora non so cosa funzioni dei due... anche se penso che siano i cookie...

    [PHP]

    $ute = $_SESSION['ue'];
    if ((strlen($ute) > 0) or ($_COOKIE["loggato"] == "test")){
    echo "loggato";
    }
    codice... codice... codcie....

    if (($user == $team[0]) && ($passw == $pass[0])){
    session_start();
    $_SESSION['ue'] = $user;
    setcookie ("loggato","test", time() +100000);
    echo "benvenuto Franco";

    [/PHP]

    Adesso funziona se aggiorno la pagina mi esce nell' iframe loggato!