Login script virker
Jeg har forsøgt med lidt med flg kode, som er lånt fra phpbegynder.dk, og slt gik fint indtil jeg forsøgte at loade en login siden ind i en frame, eller hente login siden via en menu.Hvis skriver stien til filen bruger i en browser fungere det, men ikke når jeg forsøger ay hente den som beskrevt ovenfor, så bliver jeg sendt helt ud til roden.
Filen ligger i et dir der hedder havn, i det samme dir ligger dir'et minefiler.
Ideen er at at en del sider kun må ses af brugere med med password.
Håber at nogen kan hjælpe mig på rette vej
Bruger.php
<?php
include("minefiler/settings.php");
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Brugerside</title></head>
<body>
<?php
if(isset($_SESSION["besked"])) {
echo $_SESSION["besked"];
unset($_SESSION["besked"]);
}
if(false == tjek_login()) {
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<b>Login:</b><br />
Brugernavn<br />
<input type="text" name="brugernavn"><br />
Password<br />
<input type="password" name="password"><br />
<input type="submit" value="Login">
</form>
<?php
}else{
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input name="logud" type="submit" value="Log ud">
</form>
<?php
echo "<a href=\"". $_SERVER["PHP_SELF"] ."\">Forside</a>";
foreach($links as $key => $value) {
echo "<br />\r\n<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". $key ."\">". $value ."</a>";
}
if(isset($_GET["vis"])) {
if(isset($links[$_GET["vis"]])) {
if(is_file($base_dir . $_GET["vis"] .".php")) {
$default_file = $base_dir . $_GET["vis"] .".php";
}
}
}
$minvar = 1;
include($default_file);
}
?>
</body></html>
Settings.php
<?php
$base_file = "/havn/bruger.php";
if($_SERVER["PHP_SELF"] != $base_file) {
header("Location:http://". $_SERVER["HTTP_HOST"]);
exit;
}
$base_dir = "minefiler/";
$users = array("admin" => "adminpassword", "showsource" => "viskode", "phpbegynder" => "phpnewbie");
$links = array("galleri" => "Vis galleri", "musik" => "Min musik");
$defalut_file = $base_dir ."default.php";
function tjek_login() {
global $users;
if(isset($_SESSION["user"], $_SESSION["ip"]) && isset($users[$_SESSION["user"]]) && $_SESSION["ip"] == $_SERVER["REMOTE_ADDR"]) {
return true;
}
return false;
}
session_start();
if(isset($_POST["logud"])) {
$_SESSION = array();
session_destroy();
header("Location:http://". $_SERVER["HTTP_HOST"] . $base_file);
exit;
}
if(isset($_POST["brugernavn"], $_POST["password"])) {
$default_text = "Forkert bruger og/eller password!";
if(isset($users[$_POST["brugernavn"]])) {
if($users[$_POST["brugernavn"]] == $_POST["password"]) {
$_SESSION["user"] = $_POST["brugernavn"];
$_SESSION["ip"] = $_SERVER["REMOTE_ADDR"];
}else{
$_SESSION["besked"] = $default_text;
}
}else{
$_SESSION["besked"] = $default_text;
}
header("Location:http://". $_SERVER["HTTP_HOST"] . $base_file);
exit;
}
?>
