Jag försöker göra ett loginsystem med hjälp av en MySQL databas och sessions.
Delar av koden är modifierad från sgtpeppers psphplogin, så han kanske är rätt person att svara på detta?
Här är min loginsida, login.php:
<?
$database = @mysql_connect("XXXXX","XXXXX","XXXXXX");
if (!$database) {
echo("An error occured. Please contact the administrator.");
exit();
}
if (!@mysql_select_db("XXXXX")) {
echo("An error occured. Please contact the administrator.");
exit();
}
if (isset($loginuser) && isset($loginpass)) {
$query = "SELECT id, name FROM user WHERE name='$loginuser' AND pass=PASSWORD('$loginpass')";
$res = mysql_query($query);
$row = mysql_fetch_array($res);
if (isset($row['id'])) {
session_start();
$uid = $row['id'];
$uname = $row['name'];
session_register("uid","uname");
Header("Location: xxxxx.php");
}
}
?>
<html>
<head>
<title>Users and Administrators Login</title>
</head>
<body>
<form action="login.php" method="post">
Username:<br>
<input type="text" size="20" name="loginuser"><p>
Password:<br>
<input type="password" size="20" name="loginpass"><p>
<input type="submit" value=" Login ">
</form>
</body>
</html>
Här är databasen XXXXX med tabellen users struktur och data:
#
# Table structure for table 'user'
#
CREATE TABLE user (
id int(11) NOT NULL auto_increment,
name varchar(50) NOT NULL,
pass varchar(50) NOT NULL,
PRIMARY KEY (id),
UNIQUE id_2 (id),
KEY id (id)
);
#
# Dumping data for table 'user'
#
INSERT INTO user VALUES ( '1', 'joel', 'xxxx');
INSERT INTO user VALUES ( '2', 'per', 'xxxxx');
Detta är XXXXX.php, som man kommer till när man loggats in:
<?
session_start();
if (!isset($uid) || !isset($uname)) {
Header("Location: login.php");
}
?>
<html>
<head>
<title>blaha</title>
</head>
<body>
blaha blaha
</body>
</html>
Felet:
När användarens namn är kollat i databasen är det alltså meningen att han skall skickas vidare till xxxxx.php (om rätt anv. & lösen skrivs in), men så blir inte fallet, för när jag testar så skickas jag alltid tillbaka till login.php, även om jag skriver in rätt?
Är det något fel i koden? Är det något jag har glömt? Är det totalt fel? :(
Någon som orkar avsätta några minuter för att analysera mitt problem?
------------------
Mina knäskålar klapprar fortfarande efter Kent-Mustafas trummsolo!