Okay, nu har jeg googlet som en gal, men uden held.
Jeg har en webserver med et dir som skal bruger/pass beskyttes. Og jeg har desværre ikke adgang til .htaccess.
Hvordan beskytter jeg da 3 filer i mappen med et simpelt login system? Det skal være sådan at man ikke skal logge ind igen når man "hopper" mellem filerne. Altså, et login giver adgang til alle 3 filer indtil man logger af.
Nogen der kan hjælpe ... ?
Kan da prøve :p
Nedenstående gemmer du i en fil du kalder index.php den smider du så op i det directory du vil have "beskyttet"...
index.php
<?php
//Først starter vi session som vi bruger til at gemme login info i!
session_start();
//så henter vi filen hvor i password og brugernavn ligger (du kan evt. ligge det i db...)
$username = "heste";
$password = "disco";
//tjekker om de har submittet formen
if(isset($_POST['user'])) {
//og tjekker password og andet er korrekt
if($password == $_POST['pass'] AND $username == $_POST['user']) {
//i så fald bliver der startet en session og de bliver sendt videre til filerne
$_SESSION['login'] = 'true';
header('location: index.php');
}
//Forkert bruger info - så ryger de tilbage til login siden med en fejlmeddelelse
else {
header('location:index.php?status=error');
exit;
}
}
//vi tjekker om de er logget ind ellers får de kun login skærmen at se
if(!isset($_SESSION['login'])) {
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<p>Login:
<form action="index.php" method="post">
Brugernavn:
<input type="text" name="user" />
Password:
<input type="password" name="pass" />
<input type="submit" value="Login" />
</form>
</p>
<?php
//Hvis brugeren har forsøgt at logge ind med forkert brugernavn
if($_GET['status'] == 'error') {
echo "<font size=\\"-1\\" color=\\"red\\">Forkert brugernavn og/eller password</font>";
}
echo "</body></html>";
}
/*hvis de er logget ind får de adgang til dir'en hvis du bare skal liste filerne i mappen op og gøre dem til links kan du bare lade nedenståend stå ellers kan du lave hvad du vil ;)*/
else {
?>
<html>
<head>
<title>Den hemmelige dir!</title>
</head>
<body>
<?php
if ($handle = opendir('./')) {
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file != 'index.php') {
echo "<a href=\\"$file\\" title=\\"$file\\">
$file</a>";
}
}
closedir($handle);
}
echo "</body></html>";
}
?>
Det eneste du skal ændre er brugernavn og password som står foroven og evt. ændre indholdet brugeren skal se når vedkommende er logget ind...
du kan se ovenstående i brug på www.late-night.org/download/
-> med brugernavn: heste og password: disco
Mvh
Lars Axberg
[Redigeret d. 07/09-04 14:50:12 af Lars Axberg]