Login script - adgangssider
Hej experter.Jeg er i gang med et login script.
I det her script, skal man have adgang til en side, som man selvfølgelig ikke skal kunne komme ind på, hvis man IKKE er logget ind. Det går også fint nok, man kan ikke komme ind på siden, hvis man linker direkte efter filen - så bliver man redirected til login siden.
Det der så er mit problem er:
Jeg har en log ud funktion, som selvfølgelig skal logge brugeren fuldstændig ud, så man IKKE kan komme ind på siden der er beskyttet, med mindre man logger ind igen.
Men når man så er logget ud, så bliver man redirected til login siden igen. Men derfra kan man så bare trykke tilbage, også er man inde på siden igen. Dette skal IKKE være muligt.
Min kode ser sådan her ud:
//Her bliver man tjekket, om man er bruger eller ej, om adgangskode er rigtig eller ej. Osv osv.
<?php
include('connect_login.php');
// make clean xss function. som gør at man ikke kan køre sin egen database på vores database.
function cleanxss($input)
{
/// Prevents XXS Attacks www.itshacked.com
$search = array(
'@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments
);
$inputx = preg_replace($search, '', $input);
$inputx = trim($inputx);
if(get_magic_quotes_gpc())
{
$inputx = stripslashes($inputx);
}
$inputx = mysql_real_escape_string($inputx);
return $inputx;
}
// username and password sent from form
$brugernavn= ($_POST['brugernavn']);
$password= ($_POST['password']);
$password = md5($password);
//CleanXSS fjern XSS
$brugernavn = cleanxss($brugernavn);
$password = cleanxss($password);
// To protect MySQL injection (more detail about MySQL injection)
$brugernavn = stripslashes($brugernavn);
$password = stripslashes($password);
$brugernavn = mysql_real_escape_string($brugernavn);
$password = mysql_real_escape_string($password);
$sql= "SELECT * FROM $tbl_name WHERE brugernavn='$brugernavn' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['loggedIn'] = $brugernavn && $password;
if(isset($_SESSION['loggedIn'])){
include("loggedin.php");
}
}
else
{
echo "Der er sket en fejl. <br>
<a href='#'>Har du glemt din adgangskode?</a> <br>
<a href='opret.php'>Eller er du endnu ikke oprettet som bruger?</a>";
include("main_login.php");
}
?>
--- loggedin.php ---
<?php
session_start();
$_SESSION['brugernavn'] = $brugernavn;
$_SESSION['password'] = $password;
if(isset($_SESSION['brugernavn'])){
?>
Du er logget ind :-)
<p>Du har nu følgende muligheder:<br>
<a href="/nyheder/skriv_ny.php">Skriv en nyhed</a> - <a href="logout.php">Log ud</a></p>
<?php
}
else
{
include("main_login.php");
}
?>
--- logout.php ----
<?
session_start();
session_destroy();
header("Location:main_login.php");
?>
--- Jeg håber nogen af jer gider kigge på det. Selvom der er lidt meget kode :-)
