vil du ikke være sød at ændre disse to kodersamlinger, så det er som du mener det skal være, jeg er total blank omkring hvad du siger, har prøvet lidt af hvert nu:
settings.php:
<?php
// Først defineres navn og sti til bruger.php.
// Navnet bruger.php kan du ændre til hvad du nu vil
// Her ligger bruger.php i roden af sitet
$base_file = "/login.php";
// Derefter tjekker vi om det er $base_file som includer settings.php. Hvis ikke, så sendes brugeren til forsiden
// $_SERVER["PHP_SELF"] returnerer stien fra roden af domainet til og med filnavn, uden evt. $_GET variabler
// exit; sørger for at scriptet stopper her
if($_SERVER["PHP_SELF"] != $base_file) {
header("Location:
http://". $_SERVER["HTTP_HOST"]);
exit;
}
// Herunder defineres sti og navn til dir med includefiler
// Her er det et underdir til bruger.php
// Filerne kunne godt ligge udenfor "webscope", da de jo includes af bruger.php
$base_dir = "files/";
//$users er et array med brugernavne og tilhørende adgangskode
// Her er password i læsbar tekst for eksemplets skyld.
// En md5() ville være bedre, for alle tilfældes skyld
// F.eks. "admin" => "e3274be5c857fb42ab72d786e281b4b8", "showsource" => "08d91cbe823d208bfc5fd59ae8b43c69"
// echo md5("adminpassword") ." - ". md5("viskode");
$users = array("admin" => "admin", "showsource" => "viskode", "phpbegynder" => "phpnewbie");
//$links er et array med filnavn, uden .php samt tilhørende tekst der vises som link, til de filer som kan includes.
// Her er det kun de to filer, galleri.php og musik.php
$links = array("galleri" => "Vis galleri", "venner" => "Vis vennearkiv");
// $default_file er den fil som includes af bruger.php hvis get ikke er sat,
// eller get ikke findes som key i array'et $links
$default_file = $base_dir ."default.php";
// $cookienavn er navnet på cookie som sættes ved login
// Den indeholder en md5() kryptering af ip adressen brugeren kommer fra.
// Og bruges til at tjekke om den har samme værdi som en md5(session ip)
$cookienavn = "ref";
// Herunder er en funktion til at tjekke om brugeren er logget ind
// Bemærk, for at kunne bruge array'et $users og $cookienavn inde i funktionen, skal de gøres "global"
// Først tjekkes om user og ip er registret med en session samt om der er sat en cookie ved navn ref, og
// om "key" findes i array'et $users ( brugernavnet )
// Og til sidst om session ip er lig med den ip-adresse brugeren kommer fra og
// at md5() af session ip er lig med værdien for cookien $cookienavn
function tjek_login() {
global $users, $cookienavn;
if(isset($_SESSION["user"], $_SESSION["ip"], $_COOKIE[$cookienavn], $users[$_SESSION["user"]]) && $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"] && md5($_SESSION["ip"]) == $_COOKIE[$cookienavn]) {
// if sætning kom igennem hertil, så alt er ok, og vi stoppper her, "return true"
return true;
}
// if sætningen blev ikke opfyldt, så der returneres false
return false;
}
// Det var de variabler og hjemmelavet funktion vi skal bruge.
// Herefter bruger vi session_start() og kikker efter om POST til login eller log ud er sat
// session_start() først !!!
session_start();
// Hvis brugeren vil logge ud, slettes sessions og cookies, og der redirectes til bruger.php ( $base_file
if(isset($_POST["logud"])) {
setcookie($cookienavn, "", (time()-3600), "/");
setcookie(session_name(), "", (time()-3600), "/");
$_SESSION = array();
session_destroy();
header("Location:
http://". $_SERVER["HTTP_HOST"] . $base_file);
exit;
}
// Vil brugeren logge ind ???
if(isset($_POST["brugernavn"], $_POST["password"])) {
// default besked til brugeren ved forkert login
$default_text = "Forkert bruger og/eller password!";
// Findes brugernavn i array'et $users ???
if(isset($users[$_POST["brugernavn"]])) {
// Er værdien af $users[$_POST["brugernavn"] i arrray'et $users, lig med det indtastede password ???
if($users[$_POST["brugernavn"]] == $_POST["password"]) {
// Jow, brugernavn og password er korrekt, så registrer session user og ip
$_SESSION["user"] = $_POST["brugernavn"];
$_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
// Og sæt cookien $cookienavn
// navn => værdi => levetid => path
// levetid 0 => så længe vinduet er åbent
// path = > Her fra roden af domænet
// ved sletning af cookien, sættes en tom værdi og en tid i datid ( se logud )
setcookie($cookienavn, md5($_SERVER["REMOTE_ADDR"]), 0, "/");
}else{
// Forkert password !!!
$_SESSION["besked"] = $default_text;
}
}else{
// Forkert brugernavn !!!
$_SESSION["besked"] = $default_text;
}
// Send brugeren tilbage til bruger.php
header("Location:
http://". $_SERVER["HTTP_HOST"] . $base_file);
exit;
}
?>
<b>index.php</b>
<html>
<head>
<meta http-equiv="refresh" content="0; url=http://sebastianks.wep.dk/" />
<link rel="stylesheet" type="text/css" href="style/style.css">
</head>
<body>
<div id="div1">
<?php
include("login.php");
?>
</div>
<div id="div2">Her skal der være en masse info...</div>
<div id="div3">Her skal din mor være</div>
</body>
</html>