Avatar billede human Nybegynder
23. april 2004 - 01:59 Der er 7 kommentarer og
1 løsning

Auto login vha. session

heysa!

Jeg har lavet et login og lidt andet gejl.
På de sider hvor man skal være logget ind, ser jeg om session username er registeret, er det ikke det sendes man til login siden.

Men nu vil jeg gerne have så man kan sætte et flyeben i et check felt, gør man det, er man altid logget ind når man kommer ind på siden. Hvordan gøres det smartest muligt?
Avatar billede detox Nybegynder
23. april 2004 - 02:07 #1
Det kan du gøre med cookies.
Avatar billede human Nybegynder
23. april 2004 - 02:10 #2
Okay.. Kan du komme med et eksempel?
Avatar billede detox Nybegynder
23. april 2004 - 02:29 #3
if (isset($_COOKIE['user'])) {
    $user = $_COOKIE['user'];
    setcookie ("user", $user, time()+60*60*24*365);
    require 'db.php';
    $res = mysql_query("SELECT status FROM brugere WHERE bruger = '$user'") or die(mysql_error());
    if (mysql_num_rows($res) == 1) {
        $_SESSION['status'] = mysql_result($res,0);
        $_SESSION['bruger'] = $user;
        header('Location: ./');
    }
}

Tjekker om $_COOKIE['user'] er sat, fornyer cookien med et års varighed, tjekker om brugeren er i databasen og sender brugeren til index siden.
Avatar billede detox Nybegynder
23. april 2004 - 02:32 #4
Hele loginsiden:

<? session_start();
if (isset($_COOKIE['user'])) {
    $user = $_COOKIE['user'];
    setcookie ("user", $user, time()+60*60*24*365);
    require 'db.php';
    $res = mysql_query("SELECT status FROM brugere WHERE bruger = '$user'") or die(mysql_error());
    if (mysql_num_rows($res) == 1) {
        $_SESSION['status'] = mysql_result($res,0);
        $_SESSION['bruger'] = $user;
        header('Location: ./');
    }
}elseif (isset($_POST['send'])) {
    $bruger = $_POST['bruger'];
    $pass = md5($_POST['pass']);
    require 'db.php';
    $res = mysql_query("SELECT status FROM brugere WHERE bruger = '$bruger' AND pass = '$pass'") or die(mysql_error());
    if (mysql_num_rows($res) == 1) {
        setcookie ("user", $bruger, time()+60*60*24*365);
        $_SESSION['status'] = mysql_result($res,0);
        $_SESSION['bruger'] = $bruger;
        header('Location: ./');
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="buks.css" rel="stylesheet" type="text/css" />
</head>
<body class="bag">
<table class="tab">
  <tr>
    <td>
<?
include ('top_menu.php');
include ('left_menu.php');
include ('right_menu.php');
?>
      <div class="center" align="center">
          <p class="over"><br />Login<br /></p>
        <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
          <table class="tableft">
              <tr class="tableft">
                <td class="tabright">Bruger:</td>
                <td><input name="bruger" type="text" size="25" /></td>
              </tr>
              <tr class="tableft">
                <td class="tabright">Password:</td>
                <td><input name="pass" type="password" size="25" /></td>
              </tr>
              <tr>
                <td></td><td><input name="send" type="submit" value="Fyr den af!" /></td>
              </tr>
            </table>
        </form>
      </div>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede human Nybegynder
23. april 2004 - 06:49 #5
Jo jo! Nu var det jo ikke et helt login script jeg bad om. Blot hvordan man sætter en cookie så den husker ens login. Og det skal være så man kan vælge i en checkbox om man vil have det.

Forklarer jeg mig for dårligt?
Avatar billede Syska Mester
23. april 2004 - 08:55 #6
Hvis du spørger om hvordan man sætter en cookie, så er svaret her: http://dk.php.net/manual/en/function.setcookie.php
Avatar billede human Nybegynder
23. april 2004 - 23:30 #7
Detox smid svar.
Avatar billede detox Nybegynder
24. april 2004 - 02:25 #8
værsgo'
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