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

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