Avatar billede crolesen Nybegynder
03. marts 2006 - 11:55 Der er 8 kommentarer og
1 løsning

automatisk logud i php

Jeg har nu lavet et login system med sessions. Men jeg kunne godt tænke mig at man automatisk bliver logget ud hvis man er inaktiv i et vist tidsrum. Er der nogle der kan hjælpe mig med det???
Avatar billede webudvikleren Nybegynder
03. marts 2006 - 12:02 #1
der er faktisk 2-3 artikler med det på eksperten.
Avatar billede webudvikleren Nybegynder
03. marts 2006 - 12:02 #2
Avatar billede crolesen Nybegynder
03. marts 2006 - 12:12 #3
Ja, men jeg kan ikke rigtig finde nogle artikler, så derfor spurgte jeg
Avatar billede coderdk Praktikant
03. marts 2006 - 12:21 #4
Hvis ikke du kan få PHP til selv at gøre det, så sæt en session var med den sidste aktivitet?

session_start();
$MINUTES = 10 * 60;
if ( !empty( !$_SESSION['lastactivity'] ) )
{
  if ( ( time() - $_SESSION['lastactivity'] ) > $minutes )
  {
      session_destroy();
  }
}
// Resten af dit loginsystem
Avatar billede crolesen Nybegynder
03. marts 2006 - 13:06 #5
Den forstod jeg ikke lige helt, har prøvet at sætte det ind, men det lykkedes ikke. Her kommer min logind side

<?
session_start();


include "database.php";
include "bruger.php";
?>

<html>
<body>

<?


$bruger = new bruger();

if(isset($_POST["brugernavn"]) &&
  isset($_POST["kodeord"])){
    if(get_magic_quotes_gpc()){
        $brugernavn = stripslashes($_POST["brugernavn"]);
        $kodeord = stripslashes($_POST["kodeord"]);
    } else {
        $brugernavn = $_POST["brugernavn"];
        $kodeord = $_POST["kodeord"];
    }

  if($bruger->log_ind($brugernavn, $kodeord) == false)
    echo "<font color=red>fejl i login</font><br>\n";
}

if( $bruger->logget_ind() ){
  echo "Du er logget ind som " ;
  echo $bruger->hent_brugernavn();
  echo "<br>\n";
  echo "Klik <a href=logud.php>her</a> for at logge ud\n";
} else {
  echo "<form method = post action = $PHP_SELF>\n";
  echo "brugernavn: <input name=brugernavn><br>\n";
  echo "kodeord: <input type=password name=kodeord><br>\n";
  echo "<input type=submit value=\"log ind\">\n";
  echo "</form><br>\n";

  echo "<a href=opret.php>opret bruger</a>\n";
}
?>
</body>
</html>
Avatar billede coderdk Praktikant
03. marts 2006 - 13:09 #6
Ikke på loginsiden selvfølgelig... Men det script der checker om brugeren er logget ind  - Der manglede også lige en linje. Det burde have været:

session_start();
$MINUTES = 10 * 60;
if ( !empty( !$_SESSION['lastactivity'] ) )
{
  if ( ( time() - $_SESSION['lastactivity'] ) > $minutes )
  {
      session_destroy();
  }
  else
  {
      $_SESSION['lastactivity'] = time();
  }
}
Avatar billede coderdk Praktikant
03. marts 2006 - 13:16 #7
Ja, og du skal også sætte $_SESSION['lastactivity'] = time(); når folk logger ind ;)
Avatar billede crolesen Nybegynder
03. marts 2006 - 23:09 #8
Min side bliver bare blank når jeg putter det ind i mit script. Jeg kan lige sende min side:

<?


include "database.php";
include "bruger.php";

?>
<html>
<body>

<?
session_start();



$bruger = new bruger();

if(isset($_POST["brugernavn"]) &&
  isset($_POST["kodeord"])){
    if(get_magic_quotes_gpc()){
        $brugernavn = stripslashes($_POST["brugernavn"]);
        $kodeord = stripslashes($_POST["kodeord"]);
    } else {
        $brugernavn = $_POST["brugernavn"];
        $kodeord = $_POST["kodeord"];
    }

  if($bruger->log_ind($brugernavn, $kodeord) == false)
    echo "<font color=red>fejl i login</font><br>\n";
}

if( $bruger->logget_ind() ){
 
  echo "Klik <a href=logud.php>her</a> for at logge ud<br>\n";
  echo "side1";
  echo "<a href=logind.php>logindside</a>";
} else {
  echo "Du er ikke velkommen her";
}
?>
</body>
</html>
Avatar billede crolesen Nybegynder
23. april 2007 - 20:22 #9
Godt så
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester