I am creating register and login page with mysql database/phpmyadmin. I am able to register and login but somehow i cant land on index.php. I tried to redirect both to register.php, login.php and index.php with no avail. Somehow when i logged in i am redirected to register.php over and over again, and if i change redirect to index.php it will say Error, too many redirect.
My codes:
connection.php
<?php
//session_start();
// Tast din host,user, pass og database
//dobbelsjekk om det stemmer
$host="localhost:3306";
$user="root";
$pass="";
$db="dummydb";
$connect = mysqli_connect($host ,$user ,$pass ,$db) or die("Koblingen feil");
?>
functions.php
<?php
function check_login($connect)
{
if(isset($_SESSION['kundeid']))
{
$id = $_SESSION['kundeid'];
$query = "select * from kunde where kundeid = '$kundeid' limit 1";
$result = mysqli_query($connect,$query);
if($result && mysqli_num_rows($result) > 0)
{
$kundedata = mysqli_fetch_assoc($result);
return $kundedata;
}
}
//redirekt til login
header("Location: register.php");
die;
}
function random_num($length)
{
$text = "";
if($length < 5)
{
$length = 5;
}
$len = rand(4,$length);
for ($i=0; $i < $len; $i++) {
$text .= rand(0,9);
}
return $text;
}
?>
register.php
<?php
session_start();
include("connection.php");
include("functions.php");
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//variabel
$brukernavn = $_POST['brukernavn'];
$passord = $_POST['passord'];
// REGULAR EXPRESSION/ REGEX
$storbokstav = preg_match('@[A-Z]@', $passord);
$litenbokstav = preg_match('@[a-z]@', $passord);
$nummer = preg_match('@[0-9]@', $passord);
// Hvis du ikke disse kriterier, kan ikke registerer
if(!$storbokstav || !$litenbokstav || !$nummer ||strlen($passord) <10)
{
echo "Passord er ikke sterk nok";
return;
}
// "2nd Part"
// SALT OG SHA
$salt = $brukernavn;
$passord = $_POST['passord'].$salt;
$passord = sha1($passord);
// FYLLE INN DATA I Database
if(!empty($brukernavn) && !empty($passord) && !is_numeric($brukernavn))
{
$user_id = random_num(20);
$sql = "INSERT INTO kunde (brukernavn, passord) VALUES ('$brukernavn', '$passord')";
mysqli_query($connect, $sql);
header("Location: login.php");
die;
}else{
echo "Info er ikke riktig";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Register</title>
</head>
<body>
<style type="text/css">
#text{
height: 25px;
border-radius: 5px;
padding: 4px;
border: solid thin #aaa;
width: 100%;
}
#button{
padding: 10px;
width: 100px;
color: white;
background-color: lightblue;
border: none;
}
#box{
background-color: grey;
margin: auto;
width: 300px;
padding: 20px;
}
</style>
<div id="box">
<form method="post">
<div style="font-size: 20px;margin: 10px;color: white;">Register</div>
<input id="text" placeholder="Brukernavn" type="text" name="brukernavn"><br><br>
<input id="text" placeholder="Passord" type="password" name="passord"><br><br>
<input id="button" type="submit" value="Register"><br><br>
<a href="login.php">Allerede registert? logg inn</a><br><br>
</form>
</div>
</body>
</html>
login.php
<?php
session_start();
include("connection.php");
include("functions.php");
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//data er postet
//$user_name = $_POST['user_name'];
//$password = $_POST['password'];
$brukernavn = $_POST['brukernavn'];
$salt = $brukernavn;
$passord = $_POST['passord'].$salt;
$passord = sha1($passord);
if(!empty($brukernavn) && !empty($passord) && !is_numeric($brukernavn))
{
//lese fra database
$sql = "select * from kunde where brukernavn = '$brukernavn' limit 1";
$resultat = mysqli_query($connect, $sql);
if($resultat)
{
if($resultat && mysqli_num_rows($resultat) > 0)
{
$kundedata = mysqli_fetch_assoc($resultat);
if($kundedata['passord'] === $passord)
{
$_SESSION['kundeid'] = $kundedata['kundeid'];
header("Location: index.php");
die;
}
}
}
echo "Feil brukernavn eller passord!";
}else
{
echo "Feil brukernavn eller passord!";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<style type="text/css">
#text{
height: 25px;
border-radius: 5px;
padding: 4px;
border: solid thin #aaa;
width: 100%;
}
#button{
padding: 10px;
width: 100px;
color: white;
background-color: lightblue;
border: none;
}
#box{
background-color: grey;
margin: auto;
width: 300px;
padding: 20px;
}
</style>
<div id="box">
<form method="post">
<div style="font-size: 20px;margin: 10px;color: white;">Login</div>
<input id="text" placeholder="Brukernavn" type="text" name="brukernavn"><br><br>
<input id="text" placeholder="Passord" type="password" name="passord"><br><br>
<input id="button" type="submit" value="Login"><br><br>
<a href="sikkerhet.php">Register her</a><br><br>
</form>
</div>
</body>
</html>
index.php
<?php
session_start();
include("connection.php");
include("functions.php");
$kundedata = check_login($connect);
?>
<!DOCTYPE html>
<html>
<head>
<title>Min website</title>
</head>
<body>
<a href="logout.php">Logg ut</a>
<h1>Dette er hovedside</h1>
<br>
Hei, <?php echo $kundedata['brukernavn']; ?>
</body>
</html>