Avatar billede chrisson Nybegynder
01. august 2006 - 17:46 Der er 4 kommentarer og
1 løsning

Login system- Cookies og ingen forskeld på store og små bokstaver

Hej,

Jeg har et login system, jeg har prøvet at lavet noget med cookie, men kan ikke rigtigt få det til at virke. Kunne også tænke mig at få gjordt sådan, at der ingen forskeld er på store og små bokstaver i brugernavn!

Her er koden:

<?php

session_start();

if (isset($_COOKIE['brugernavn'], $_COOKIE['kodeord'])) {
$_SESSION['Brugernavn'] = $_SESSION['1643692'];
$_SESSION['kodeord'] = $_SESSION['3532665'];
    }

if (session_is_registered("Brugernavn")) {

include("connect.php");

$samlign = time() - $time;

$now = date("d/m-Y H:i");

mysql_query("update brugeroplysninger set sidstset = '$now', timer = '$time' where brugernavn = '$_SESSION[Brugernavn]'");

?>

<html>

<head>

</head>

<body>

<p>Du er logget ind!</p>

<a href="/profil/profil.php?b=<?php print $_SESSION['Brugernavn'] ?>">

Profil</a><br>

<a href="/profil/indbakke.php">Indbakke</a><br>

<a href="/profil/medlemmer.php">Medlemmer</a><br>

<a href="#" onclick="window.open('/Chatten/2dchat.php','','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=730, height=460, left=20, top=20'); return false;">Chat</a><br>

<a href="logud.php">Logud</a><br>

<?php

}

else

{

?><?php

if($_POST['submit']){

include("connect.php");

$db_hent = mysql_query("select * from brugeroplysninger where brugernavn = '$_POST[brugernavn]'");
$hent = mysql_fetch_array($db_hent);


if($_POST['brugernavn'] == $hent['brugernavn'] && md5($_POST['password']) == $hent['password']){

$_SESSION['loggetind'] = "yes";

$_SESSION['Brugernavn'] = $hent['brugernavn'];

$_SESSION['kodeord'] = $hent['kodeord'];

$_SESSION['1643692'] = $hent['brugernavn'];

$_SESSION['3532665'] = $hent['kodeord'];

$_SESSION['Rang'] = $hent['Rang'];

$tid = time();

mysql_query("UPDATE brugeroplysninger SET timer = '$tid', level = '2', rumid = '1' WHERE brugernavn = '$_SESSION[Brugernavn]'");

if ($_POST["auto"] == "yes")
{
    setcookie("brugernavn", $_SESSION['1643692'], time() + 60*60*24*180);
    setcookie("kodeord", $_SESSION['3532665'], time() + 60*60*24*180);
}
       
header("Location: index.php");

}else{

print "Forkert brugernavn/adgangskode!";

}

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>



<body>

<form name="form1" method="post" action="usermenu.php">

<table width="122">

  <tr>

    <td width="65"><font face="Bodoni MT Condensed">Brugernavn:</font></td>

    <td><input type="text" name="brugernavn" size="8"></td>

  </tr>

  <tr>

    <td width="65"><font face="Bodoni MT Condensed">Adgangskode:</font></td>

    <td><input type="password" name="password" size="8"></td>


  </tr>
  <tr>
        <td><p><font face="Bodoni MT Condensed">Auto login</font><input type="checkbox" name="auto" value="yes"></p></td>
  </tr>
  <tr>

    <td width="65">&nbsp;</td>

    <td><input type="submit" name="submit" value="Login"></td>

  </tr>

</table>

</form>

<p><a href="opret.php">Opret bruger</a></p>

<?

}
?>


Takker på forhånd!
Avatar billede nielle Nybegynder
01. august 2006 - 20:11 #1
Prøv dette:

<?
session_start();

function HandleLogin($brugernavn, $kodeord)
{
    include("connect.php");

    $db_hent = mysql_query("SELECT * FROM brugeroplysninger WHERE lower(brugernavn) = lower('$brugernavn')");
    $hent = mysql_fetch_assoc($db_hent);

    if (strtolower($hent['brugernavn']) == strtolower($brugernavn) && $hent['password'] == md5($kodeord))
    {
        $_SESSION['loggetind'] = "yes";
        $_SESSION['brugernavn'] = $hent['brugernavn'];
        $_SESSION['kodeord'] = $hent['kodeord'];
        $_SESSION['rang'] = $hent['rang'];

        return true;
    }

    return false;
}

if (isset($_COOKIE['brugernavn'], $_COOKIE['kodeord']))
{
    if (HandleLogin($_COOKIE['brugernavn'], $_COOKIE['kodeord']))
    {
        $now = date("d/m-Y H:i");
        mysql_query("UPDATE brugeroplysninger SET sidstset = '$now', timer = '$time' WHERE brugernavn = '$_SESSION[brugernavn]'");
    }
}
else
if (isset($_POST['brugernavn']) && trim($_POST['brugernavn']) != "")
{
    if (HandleLogin($_POST['brugernavn'], $_POST['password']))
    {
        tid = time();
        mysql_query("UPDATE brugeroplysninger SET timer = '$tid', level = '2', rumid = '1' WHERE brugernavn = '$_SESSION[Brugernavn]'");

        if ($_POST["auto"] == "yes")
        {
            setcookie("brugernavn", $_POST['brugernavn'], time() + 60*60*24*180);
            setcookie("kodeord", $_POST['password'], time() + 60*60*24*180);
        }
       
        header("Location: index.php");
    }
    else
    {
        print "Forkert brugernavn/adgangskode!";
    }
}

if ($_SESSION['loggetind'] == "yes";)
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<p>Du er logget ind!</p>
<a href="/profil/profil.php?b=<?php print $_SESSION['brugernavn'] ?>">
Profil</a><br>
<a href="/profil/indbakke.php">Indbakke</a><br>
<a href="/profil/medlemmer.php">Medlemmer</a><br>
<a href="#" onclick="window.open('/Chatten/2dchat.php','','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=730, height=460, left=20, top=20'); return false;">Chat</a><br>
<a href="logud.php">Logud</a><br>
<?php
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="usermenu.php">
<table width="122">
  <tr>
    <td width="65"><font face="Bodoni MT Condensed">Brugernavn:</font></td>
    <td><input type="text" name="brugernavn" size="8"></td>
  </tr>
  <tr>
    <td width="65"><font face="Bodoni MT Condensed">Adgangskode:</font></td>
    <td><input type="password" name="password" size="8"></td>
  </tr>
  <tr>
    <td><p><font face="Bodoni MT Condensed">Auto login</font><input type="checkbox" name="auto" value="yes"></p></td>
  </tr>
  <tr>
    <td width="65">&nbsp;</td>
    <td><input type="submit" name="submit" value="Login"></td>
  </tr>
</table>
</form>
<p><a href="opret.php">Opret bruger</a></p>
<?
}
?>
Avatar billede chrisson Nybegynder
01. august 2006 - 21:07 #2
Skulle lige rette et par steder, men det virker, Hvordan sletter jeg så cookie, når man klikker på logud?
Avatar billede nielle Nybegynder
01. august 2006 - 21:19 #3
Du kan slette en cookie ved at sætte den til at expire sammen med sessionen:

setcookie("brugernavn");
setcookie("kodeord");
Avatar billede chrisson Nybegynder
01. august 2006 - 21:24 #4
Fandt jeg lige ud af, ved at søge:

setcookie("brugernavn", '', time() - 3600);

Tak, Mange tak for hjælpen, læg svar!
Avatar billede nielle Nybegynder
01. august 2006 - 21:25 #5
Svar :^)
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

IT-JOB

Capgemini Danmark A/S

AI Data Architect

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Politiets Efterretningstjeneste

AI/ML udvikler i PET