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.

6 komentarzy

Boże, zawsze się zastanawiałem nad tym zapisem:

echo "<input type=\"password\" name=\"pass\">";

Nie można po prostu użyć innego operatora?

echo('<input type="password" name="pass" value="">');

I po co walić tymi backslashami? PHP-Fusion kids...

chcialbym tylko dodac ze w echo '<input type="text" name="form_pass_wd">'; zamiast typu text warto wstawic password bo dane beda zagwiazdowane

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 ($_*)?