Fejl i MySQL validering af brugere.
Hej Experter,Jeg har lidt problemer med at få nedenstående kode til at spille:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="" />
<meta name="keywords" content="" />
</head>
<body>
<?php
session_start();
$errorMessage = '';
if (isset($_POST['txtUsername']) && isset($_POST['txtPassword']))
{
include './include/opendb.php';
$username = $_POST['txtUsername'];
$password = $_POST['txtPassword'];
// check if the username and password combination exist in database
$sql = "SELECT username
FROM users
WHERE username = '$username'
AND password = PASSWORD('$password')";
$result = mysql_query($sql)
or die('Query failed. ' . mysql_error());
if (mysql_num_rows($result) == 1)
{
// the user id and password match,
// set the session
$_SESSION['db_is_logged_in'] = true;
// after login we move to the main page
header('Location: list.php');
exit;
} else
{
$errorMessage = 'Sorry, wrong username / password';
}
include './include/closedb.php';
}
?>
<form method="post" name="frmLogin" id="frmLogin">
<table width="400" border="1" align="center" cellpadding="2" cellspacing="2">
<tr>
<td width="150">Username</td>
<td><input name="txtUsername" type="text" id="txtUsername"></td>
</tr>
<tr>
<td width="150">Password</td>
<td><input name="txtPassword" type="password" id="txtPassword"></td>
</tr>
<tr>
<td width="150"> </td>
<td><input type="submit" name="btnLogin" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
Når jeg avikler koden virker det som der ikke valideres, og jeg bliver ikke stillet over til list.php. Jeg kan også se at der ikke bliver oprettet nogen sessionsfil på serveren.
Sådan her er DB'en bygget op:
| users | CREATE TABLE `users` (
`display_name` varchar(50) NOT NULL default '',
`password` varchar(50) NOT NULL default '',
`username` varchar(50) NOT NULL default '',
`group_id` int(11) NOT NULL default '0',
`user_id` int(11) NOT NULL auto_increment,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
/Greg
