Hallo,
ich möchte mein backend per htaccess schützen, kein Problem, nun möchte ich aber nicht dieses hässlich popup anbieten sondern eine schöne loginseite wie bei wordpress etc.
nun habe ich folgende htaccessdatei:
AuthType Basic
AuthName "Administration"
AuthUserFile /srv/www/vhosts/mywords-cms.de/httpdocs/acc/.htpasswd
<Files *.*>
require valid-user
</files>
<Files login.php>
Allow from all
Satisfy any
</files>
die erlaubt mir, dass ich due login seite aufrufen kann, während alle anderen geschützt sind.
folgendes authenticate script habe ich gefunden.
Nun weiß ich nicht weiter, wenn ich die login-daten poste öffnet sich wieder das popup wie üblich bei htaccess geschützen bereichen. Oder es wird angegeben, dass das passwort und login nicht korrekt sind.
Das Login Script sieht folgendermaßen aus:
Vielleicht weiß jemand weiter
ich möchte mein backend per htaccess schützen, kein Problem, nun möchte ich aber nicht dieses hässlich popup anbieten sondern eine schöne loginseite wie bei wordpress etc.
nun habe ich folgende htaccessdatei:
AuthType Basic
AuthName "Administration"
AuthUserFile /srv/www/vhosts/mywords-cms.de/httpdocs/acc/.htpasswd
<Files *.*>
require valid-user
</files>
<Files login.php>
Allow from all
Satisfy any
</files>
die erlaubt mir, dass ich due login seite aufrufen kann, während alle anderen geschützt sind.
folgendes authenticate script habe ich gefunden.
Nun weiß ich nicht weiter, wenn ich die login-daten poste öffnet sich wieder das popup wie üblich bei htaccess geschützen bereichen. Oder es wird angegeben, dass das passwort und login nicht korrekt sind.
Das Login Script sieht folgendermaßen aus:
PHP-Code:
<form action="auth.php?action=logIn" method="POST">
<input type="text" name="email"><br>
<input type="password" name="password">
<input type="submit">
</form>
PHP-Code:
<?php
$_user_ = $_POST['email'];
$_password_ = $_POST['password'];
session_start();
$url_action = (empty($_REQUEST['action'])) ? 'logIn' : $_REQUEST['action'];
$auth_realm = (isset($auth_realm)) ? $auth_realm : '';
if (isset($url_action)) {
if (is_callable($url_action)) {
call_user_func($url_action);
} else {
echo 'Function does not exist, request terminated';
};
};
function logIn() {
global $auth_realm;
if (!isset($_SESSION['username'])) {
if (!isset($_SESSION['login'])) {
$_SESSION['login'] = TRUE;
header('WWW-Authenticate: Basic realm="'.$auth_realm.'"');
header('HTTP/1.0 401 Unauthorized');
echo 'You must enter a valid login and password';
echo '<p><a href="?action=logOut">Try again</a></p>';
exit;
} else {
$user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
$password = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
$result = authenticate($user, $password);
if ($result == 0) {
$_SESSION['username'] = $user;
} else {
session_unset($_SESSION['login']);
errMes($result);
echo '<p><a href="">Try again</a></p>';
exit;
};
};
};
}
function authenticate($user, $password) {
global $_user_;
global $_password_;
if (($user == $_user_)&&($password == $_password_)) { return 0; }
else { return 1; };
}
function errMes($errno) {
switch ($errno) {
case 0:
break;
case 1:
echo 'The username or password you entered is incorrect';
break;
default:
echo 'Unknown error';
};
}
function logOut() {
session_destroy();
if (isset($_SESSION['username'])) {
session_unset($_SESSION['username']);
echo "You've successfully logged out<br>";
echo '<p><a href="?action=logIn">LogIn</a></p>';
} else {
header("Location: ?action=logIn", TRUE, 301);
};
if (isset($_SESSION['login'])) { session_unset($_SESSION['login']); };
exit;
}
?>
Kommentar