Artykuły do usunięcia

Jak zabezpieczyć stronę hasłem

  • 2010-10-31 18:27
  • 6 komentarzy
  • 628 odsłon
  • Oceń ten tekst jako pierwszy
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

Demonical Monk 2009-09-29 19:01

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...

Demonical Monk 2008-09-06 22:34

Ano dla tego że wystarczy użyć polecenia WGET i mimo redirectu uzyskasz UKRYTĄ TREŚĆ.

MikiKam 2007-12-23 15:16

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 :)

Marooned 2006-05-17 15:02

Wolverine, zobacz na historię kiedy piechnat to pisał :)

Wolverine 2006-05-16 13:56

$self_file = $HTTP_SERVER_VARS['PHP_SELF']; // po co to?

I czemu nie korzystasz z tablic superglobalnych ($_*)?

ham1bal 2003-04-27 21:37

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