Zabezpieczenie podstron w PHP


(system) #1

Mam pytanko

robię stronę na hasło w PHP. Wstawiam taki kod:

<?php

if ((!isset($_SERVER['PHP_AUTH_USER'])) OR (!isset($_SERVER['PHP_AUTH_PW'])))

{

 header('WWW-Authenticate: Basic realm="Private"');

 header('HTTP/1.0 401 Unauthorized');


exit;


} else {


if (($_SERVER['PHP_AUTH_USER'] == login") AND ($_SERVER['PHP_AUTH_PW'] == "haslo")) {

  echo "Autoryzacja zakończyła sie powodzeniem";

  /* miejsce, w którym ma znaleźć się treść strony zabezpieczona hasłem */

  } else {

  echo "Autoryzacja zakończyła sie niepowodzeniem";

  /* miejsce, w którym ma znaleźć się treść strony widoczna po błędnym wprowadzeniu danych */

  }


}

?>
  1. Jak zrobić możliwość paru loginów i haseł? 2. W napisie

    Autoryzacja zakończyła sie powodzeniem

i

miejsce, w którym ma znaleźć się treść strony zabezpieczona hasłem

nie wiem, co wpisać. Bo w tym drugim jak wpiszę, to tego nie ma, a jak w pierwszym wpiszę, to jest.

  1. Co zrobić, by na zabezpieczonej stronie pojawił się: link, obrazek lub tekst? Idzie jakoś tu HTML wstawić?

(Marcin E Pc) #2

możesz hasła/userów pobierać z bazy danych. I wtedy po pobraniu porównujesz,

if ($_SERVER['PHP_AUTH_USER'] == $login AND $_SERVER['PHP_AUTH_PW'] == $haslo)

A jak chcesz inaczej to:

$tab['user1']='haslo1';

$tab['user2']='haslo2';

$tab['user3']='haslo3';

if($tab[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW'])

{

header('WWW-Authenticate: Basic realm="Private"');

header('HTTP/1.0 401 Unauthorized');

exit;

}

A html, oczywiście. Mozesz poprzez skorzystanie z echo, heredoc.


(system) #3

Aha. Zrobiłem HTML w PHP poprzez polecenie PRINT.

Ale mam inny problem: jeśli zabezbieczona strona zawiera podstrony, to jak je też dobrze zabezpieczyć??? Ale tak, by za każdym razem wyskakiwało okienko z prośbą o hasło :D.

z góry dzięki.


(Marcin E Pc) #4

Możesz użyć sesji, po co za każdym razem okienko z prośbą o hasło?

A o ile pamiętam stan zalogowania trwa do zamknięcia przeglądarki. A jak tak już chcesz na każdej stronie okienko z hasłem i loginem, to na każdej stronie w if-ie dajesz napisany przeze mnie warunek.

Pozdrawiam


(system) #5

Sorry, pomyliłem się. Chodziło mi o to, by nie wyskakiwało :smiley:

Chodzi o to, że mam treść zabezpieczonej strony z linkiem. Link prowadzi do innej strony (też mojej), lecz jak ją też zabezpieczyć?


(Marcin E Pc) #6

Poczytaj o sesjach, napewno w ten sposób się da.


(system) #7