Jak zabezpieczyć stronę hasłem
piechnat
Ten artykuł został przeznaczony do usunięcia. Powody możesz znaleźć na stronie: [[Artykuły do usunięcia]].
Można na samym początku strony dodać taki kod:
<?
session_start();
if(isset($_GET['logout'])) {
session_unregister('zalogowany');
unset($_SESSION['zalogowany']);
}
$haslo = "haslo";
if(!isset($_SESSION['zalogowany'])) {
if(!isset($_POST['pass'])) {
echo "<form method=\"post\">";
echo "<input type=\"password\" name=\"pass\">";
echo "<input type=\"submit\" value=\"ENTER\"></form>";
exit;
} else {
if($_POST['pass']==$haslo) {
session_register('zalogowany');
$_SESSION['zalogowany'] = md5($_POST['pass']);
header("Location: ".$PHP_SELF);
exit;
} else {
echo "BŁĄD!";
exit;
}
}
}
echo "
UKRYTA TRESC.<br>
<a href=\"".$PHP_SELF."?logout\">LOGOUT</a>
";
?>
Ważne jest aby pamiętać że po funkcji:
header("Location: ".$PHP_SELF);
Używać polecenia exit gdyż cały kod poniżej funkcji header jest wykonywany tylko jego rezultaty mogą nie być widoczne.
Boże, zawsze się zastanawiałem nad tym zapisem:
Nie można po prostu użyć innego operatora?
I po co walić tymi backslashami? PHP-Fusion kids...
Ano dla tego że wystarczy użyć polecenia WGET i mimo redirectu uzyskasz UKRYTĄ TREŚĆ.
testowalem ten skrypt i nie wiem po co dales tam exit; taki sam rezultat masz :) przeciez po przekierowaniu reszta skryptu nie jest brana pod uwage :)
Wolverine, zobacz na historię kiedy piechnat to pisał :)
$self_file = $HTTP_SERVER_VARS['PHP_SELF']; // po co to?
I czemu nie korzystasz z tablic superglobalnych ($_*)?
chcialbym tylko dodac ze w echo '<input type="text" name="form_pass_wd">'; zamiast typu text warto wstawic password bo dane beda zagwiazdowane