Den skriver ikke nogen fejl, men åbner bare login.php igen
har du slået error_reporting til ?? (skal du altid have under udvikling)
jeg prøvede din code og rettede den lidt til (ikke noget der burde betyde noget)
er du sikker på dit pw er krypterede i databasen ??
brugernavn = admin pw = 1234
brugernavn = lotte pw = Hyp Lille
test database
DROP TABLE IF EXISTS rytter;
CREATE TABLE rytter (
`id` int(11) NOT NULL,
`brugernavn` varchar(25) COLLATE utf8_danish_ci NOT NULL,
`password` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;
INSERT INTO rytter VALUES
(1, 'admin', '81dc9bdb52d04dc20036dbd8313ed055'),
(2, 'lotte', '6578f4c5e8dc0d1e89b604e6411dcb32');
ALTER TABLE rytter
ADD PRIMARY KEY (`id`);
ALTER TABLE rytter
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
<?php
// hvis session ikke er started, så start session
if(! isset($_SESSION) ) session_start();
//echo md5("1234"); // 81dc9bdb52d04dc20036dbd8313ed055 brugernavn = admin
//echo "<br>";
//echo md5("Hyp Lille"); // 6578f4c5e8dc0d1e89b604e6411dcb32 brugernavn = lotte
// $db = er erkløret her (mysqli connection)
require_once("Connect2.php"); //Establishing connection with our database
$error = ""; //Variable for storing our errors.
if (isset($_POST["submit"])) {
if (empty($_POST["brugernavn"]) || empty($_POST["password"])) {
$error = "Both fields are required.";
} else {
// Define $username and $password
$brugernavn = $_POST['brugernavn'];
$password = $_POST['password'];
// To protect from MySQL injection
$brugernavn = stripslashes($brugernavn);
//$password = stripslashes($password);
$brugernavn = mysqli_real_escape_string($db, $brugernavn);
//$password = mysqli_real_escape_string($db, $password);
// ved ikke at begrænse på pw kan det laves mere komplex (special tegn)
$password = md5($password); // når der krypteres behøves ikke stripslashes og mysqli_real_escape_string
//Check username and password from database
$sql = "SELECT id FROM rytter WHERE brugernavn='$brugernavn' and password='$password' LIMIT 1";
$result = mysqli_query($db, $sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
//If username and password exist in our database then create a session.
//Otherwise echo error.
if (mysqli_num_rows($result) == 1) {
$_SESSION['brugernavn'] = $brugernavn; // Initializing Session
header("location: home.php"); // Redirecting To Other Page
} else {
$error = "Incorrect username or password.";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<?php
if($error != ""){
echo $error;
}
?>
<form name="login" action="" method="post">
<div id="box">
Username: <br />
<input name="brugernavn" size="14" /><br />
Password: <br />
<input name="password" type="password" size="14" /><br />
<input type="submit" name="submit" value="send" /><br />
</div>
</form>
</body>
</html>
Den skriver ikke noget i session
rediagere den nu ??