hjælp til login

Tags:    php


Jeg er ved at lave et lille login-system med en lille cookie og sådan lidt.
Mit problem er at når man fra logind siden logger ind vises en blank side, den viser den rigtige adresse i adresselinien, uanset om man efterlader felterne tomme eller de er udfyldt med rigtige data.
Nogle der ud fra koden kan se hvad der er galt?


<php
// checker om felterne fra login formularen er tomme
if ((!$_POST[brugernavn]) || (!$_POST[password])) {
header("Location: login.htm");
exit;
}

// åbner database-forbindelsen
$conn = mysql_connect("localhost" , "root");
mysql_select_db("login_system" , $conn) or die (mysql_error());

// checker om brugeren findes i tabellen
$sql = "select f_name, l_name from auth_users where
brugernavn = ('$_POST[brugernavn]') and
password = ('$_POST[password]')";
$result = mysql_query($sql, $conn) or die (mysql_error());

// henter resultatet, som skal være 1 for at brugeren findes
if (mysql_num_rows($result) == 1) {

// Hvis brugeren findes i systemet
$f_name = mysql_result($result, 0, 'f_name');
$l_name = mysql_result($result, 0, 'l_name');

//Sætter en cookie
setcookie("auth", "1", 0, "/", "localhost/", 0);

//velkomst hilsen til bruger
$msg = "<p>velkommen til $f_name</p>";



} else {

// Hvis resultatet fra login ikke findes i databasen
header("location: login.htm");
exit;

}
?>

<html>
<head>
<title>Bruger login</title>
</head>
<body>
<? print "$msg"; ?>

</body>
</html>

Med venlig hilsen Mark

[Redigeret d. 08/05-05 19:52:17 af Mark]



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato

Jeg er ved at lave et lille login-system med en lille cookie og sådan lidt.
Mit problem er at når man fra logind siden logger ind vises en blank side, den viser den rigtige adresse i adresselinien, uanset om man efterlader felterne tomme eller de er udfyldt med rigtige data.
Nogle der ud fra koden kan se hvad der er galt?


<php
// checker om felterne fra login formularen er tomme
if ((!$_POST[brugernavn]) || (!$_POST[password])) {
header("Location: login.htm");
exit;
}

// åbner database-forbindelsen
$conn = mysql_connect("localhost" , "root");
mysql_select_db("login_system" , $conn) or die (mysql_error());

// checker om brugeren findes i tabellen
$sql = "select f_name, l_name from auth_users where
brugernavn = ('$_POST[brugernavn]') and
password = ('$_POST[password]')";
$result = mysql_query($sql, $conn) or die (mysql_error());

// henter resultatet, som skal være 1 for at brugeren findes
if (mysql_num_rows($result) == 1) {

// Hvis brugeren findes i systemet
$f_name = mysql_result($result, 0, 'f_name');
$l_name = mysql_result($result, 0, 'l_name');

//Sætter en cookie
setcookie("auth", "1", 0, "/", "localhost/", 0);

//velkomst hilsen til bruger
$msg = "<p>velkommen til $f_name</p>";



} else {

// Hvis resultatet fra login ikke findes i databasen
header("location: login.htm");
exit;

}
?>

<html>
<head>
<title>Bruger login</title>
</head>
<body>
<? print "$msg"; ?>

</body>
</html>

Med venlig hilsen Mark

[Redigeret d. 08/05-05 19:52:17 af Mark]

Jeg kan ikke rigtigt se nogle fejl, men jeg har prøvet at rette lidt i den, måske hjælper det, her er den rettede udgave:
Fold kodeboks ind/udKode 


Hilsen
Jan S.

[Redigeret d. 08/05-05 21:16:08 af Jan S.]



<php
// checker om felterne fra login formularen er tomme
if ((!$_POST[brugernavn]) || (!$_POST[password])) {
header("Location: login.htm");
exit;
}

// åbner database-forbindelsen
$conn = mysql_connect("localhost" , "root", "");
mysql_select_db("login_system" , $conn) or die (mysql_error());

// checker om brugeren findes i tabellen
$sql = "select f_name, l_name from auth_users where
brugernavn LIKE '$_POST[brugernavn]' and
password LIKE '$_POST[password]'";
$result = mysql_query($sql, $conn) or die (mysql_error());

// henter resultatet, som skal være 1 for at brugeren findes
if (mysql_num_rows($result)) {

// Hvis brugeren findes i systemet
$f_name = mysql_result($result, 0, 'f_name');
$l_name = mysql_result($result, 0, 'l_name');

//Sætter en cookie
setcookie("auth", "1", 0, "/", "localhost/", 0);

//velkomst hilsen til bruger
$msg = "<p>velkommen til $f_name</p>";



} else {

// Hvis resultatet fra login ikke findes i databasen
header("location: login.htm");
exit;

}
?>

<html>
<head>
<title>Bruger login</title>
</head>
<body>
<? print "$msg"; ?>

</body>
</html>


Tror det virker nu... Hvorfor har du cookies i dit scripts..??
Jeg synes det allerede er forvirrende...!
---------------------------------
www.teamsf.frac.dk
www.EJ-Computer.dk | Your PC entertainer




Jeg er ved at lave et lille login-system med en lille cookie og sådan lidt.
Mit problem er at når man fra logind siden logger ind vises en blank side, den viser den rigtige adresse i adresselinien, uanset om man efterlader felterne tomme eller de er udfyldt med rigtige data.
Nogle der ud fra koden kan se hvad der er galt?


<php
// checker om felterne fra login formularen er tomme
if ((!$_POST[brugernavn]) || (!$_POST[password])) {
header("Location: login.htm");
exit;
}

// åbner database-forbindelsen
$conn = mysql_connect("localhost" , "root");
mysql_select_db("login_system" , $conn) or die (mysql_error());

// checker om brugeren findes i tabellen
$sql = "select f_name, l_name from auth_users where
brugernavn = ('$_POST[brugernavn]') and
password = ('$_POST[password]')";
$result = mysql_query($sql, $conn) or die (mysql_error());

// henter resultatet, som skal være 1 for at brugeren findes
if (mysql_num_rows($result) == 1) {

// Hvis brugeren findes i systemet
$f_name = mysql_result($result, 0, 'f_name');
$l_name = mysql_result($result, 0, 'l_name');

//Sætter en cookie
setcookie("auth", "1", 0, "/", "localhost/", 0);

//velkomst hilsen til bruger
$msg = "<p>velkommen til $f_name</p>";



} else {

// Hvis resultatet fra login ikke findes i databasen
header("location: login.htm");
exit;

}
?>

<html>
<head>
<title>Bruger login</title>
</head>
<body>
<? print "$msg"; ?>

</body>
</html>

Med venlig hilsen Mark

[Redigeret d. 08/05-05 19:52:17 af Mark]


Hvorfor bruger du endelsen .htm i dine filer? Hvorfor ikke .php?
________________
http://www.msgplus.net/download_contest.php?id=25840
Mit lykketal er 2959



Hvorfor bruger du endelsen .htm i dine filer? Hvorfor ikke .php?


Fordi han ikke har studeret sikkerhed i PHP-scripts.


--
Ronni Egeriis



Hvorfor bruger du endelsen .htm i dine filer? Hvorfor ikke .php?


Fordi han ikke har studeret sikkerhed i PHP-scripts.


--
Ronni Egeriis

Hvad har PHP sikkerhed at gøre med .htm filer?
Det er da lige meget om man bruger .htm eller .php filer i starten af et login system(altså login formen), men alle siderene som man vil have beskyttet(af loginet) skal man bruge .php...

Hilsen
Jan S.



Min fejl. Jeg forstod det som at han smed brugeren over på den side hvis han var logget ind.


--
Ronni Egeriis



t