- Home
- Categorie
- Coding e Sistemistica
- PHP
- Php, mantenere sessione di login
-
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
-
Ciao Super_Ale46,
se fai:
[php]
setcookie ("nome","valore", time() +700)
[/php]Il cookie è valido solo per 700 secondi.
-
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.
-
Sarebbe meglio se posti le pagine interessate del login e quella che da il problema del logout automatico per poter capire qualcosa.
-
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]
<?phpecho "<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">    <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");
}
-
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!