Jak ustawić przeglądanie danej strony pod hasłem?

Mianowicie, chiałbym pewnien plik.htm zabezpieczyć hasłem. Przy wejściu przez hiperłącze powino się wyświetlić okienko z przeglądarki z Loginem i hasłem.

Jak to zrobić?? Zmienić CHMOD-y w hatalogu ftp i co dalej??

Jeśli chcesz naprawdę zabezpieczyć plik to musisz użyć PHP bo Html jest językiem statycznym i jeśli ktoś przejrzy kod strony to zobaczy login i hasło a w PHP tak się nie stanie.

Przykładowy kod w php:

<?php

if ($_GET['action'] == 'show') {

 if ($_POST['login'] == 'admin' && $_POST['password'] == 'haslo') {

 //Tutaj wstawiasz kod strony

 }

 else {

 echo 'Zly login lub haslo';

 }

}

else {

echo '







}

?>

W zasadzie ma byc to pewna nieoficjalna galeria, gdzie nie powinny dostac się osoby tzrecie. Na serweze mogę ustwaić CHMOD-y może to coś może pomóc?

Jak ustawisz za małe chmody to znowu nikt się tam nie dostanie bez użycia FTP.

ma to wszystko dziłac tak:

Uzytkownik klikając w hiperłącze przenosi się na strone.htm w której jest ta ramka z logowaniem.

Wpisuje tylko hasło (nie potzreba bramki z loginem)

Jeśli wpisze poprawne hasło zostaje przekierowany na dany adres na serwerze, w przeciwnym wypadku wyświetla się komunikat “Złe hasło”.

Jeśli jest to możliwe to przydałby się komunikat spróbuj pownowie i znowu próbuje.

Da się coś takiego zrobić?

Na tej stronie ma znajdować się bramka z wpisywaniem hasła http://zse2g.cba.pl/galeria.htm

A jesli uzytkownik wpisze odpowiednie hasło to przenosi się na ten adres http://zse2g.cba.pl/galeria_nieoficjalna.htm

2 rozwiąznie

Wstawiam twój kod. Jesli dobzre wpisze user to wyświetlą się hiperłącza do innych stron.

Tylko jakk to napisać?

Wstawiając kod strony tam gdzie zaznaczyłęś storna się sypie tzn. wyświetla normalnie ale na samym dole zostaje pole na hasło i ZALOGUJ i resztka kodu php

STrona jest pisana htmlem, czy trzeba wprowadzić jąką deklaracje albo znacznik?

Jeśli chcesz używać tego kodu co Ci podałem to musisz mieć obsługę PHP na serwerze a plik ten z kodem co Ci podałem musi mieć rozszerzenie .php.

I teraz tam gdzie jest if możesz sobie wstawić ustawianie zmiennej sesyjnej np $_SESSION[‘zalogowany’] i teraz piszesz pod ifen glownym elseifa ktry sprawdza czy zmienna sesyjna zalogowany wynosi 1 jeśli tak to pokazuje mu galerię, a jeśli nie to wyświetla się okienko logowania.

Kiedyś widziałem jak na stronach pojawiała się ramka od przeglądarki i tam tzrebabyło wpisać login i hasło. Czy nie da się czegoś takiego zrobić??

gdzie oczywiście “zlehaslo.html” to strona, która ma się wyświetlać gdy podasz złe hasło

a trochę niżej “Podaj hasło” to chyba wiadomo :wink:

Przykład działania tutaj:(choć ten nieznacznie się różni) http://www.klasa1c.yoyo.pl/infos.html

Moja ocena:

Najlepszy ze wszystkich skryptów chroniących hasłem(nie wykorzystującym bazy mySQL) gdyż osoba, która nie zna hasła nic nie zrobi - wyświetla się komunikat więc źródła strony nie zobaczy, a jak kliknie ‘anuluj’ to zostanie przenoszona na inną stronę więc hasło nie przejdzie w ręce osób trzecich :slight_smile:

LOL.

Koleś nie podawaj błędnie działających skryptów! Wystarczyło tylko zajrzeć do źródła. Hasło to “waza” :wink:

EDIT: Tu masz podstawowy sposób uwierzytelniania, wyświetla się okienko takie jakie chciałeś

Bez .htaccess(ale z PHP):

<?php


// jeśli używamy IIS, trzeba ustawić zmienne $PHP_AUTH_USER i $PHP_AUTH_PW

if (substr($_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft' &&

    !isset($_SERVER['PHP_AUTH_USER']) &&

    !isset($_SERVER['PHP_AUTH_PW']) &&

    substr($_SERVER['HTTP_AUTHORIZATION'], 0, 6) == 'Basic '

   ) 

{ 

  list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 

    explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); 

} 


// to wyrażenie warunkowe można zastąpić np. zapytaniem do bazy danych

if ($_SERVER['PHP_AUTH_USER'] != 'uzytkownik' || $_SERVER['PHP_AUTH_PW'] != 'haslo')

{

  // użytkownik nie podał żadnych danych albo 

  // podany identyfikator lub hasło są nieprawidłowe


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

  if (substr($_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft') 

    header('Status: 401 Unauthorized'); 

  else 

    header('HTTP/1.0 401 Unauthorized'); 


  echo '

Odejdź stąd!

'; echo ‘Nie jesteś uprawniony do przeglądania tych zasobów.’; } else { // użytkownik podał prawidłowe dane echo ’

Oto ona!

‘; echo ’ Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.’; } ?> [/code] Z wykorzystaniem pliku .htacces i .htpass(bez PHP) .htacces:

[code]ErrorDocument 401 /odmowa.html //jeśli złe hasło to przenosi na tą strone AuthUserFile .htpass //Plik z hasłem AuthGroupFile /dev/null //Specjalny plik w UNIXie AuthName “Nazwa zasobu” //Nazwa zasobu AuthType Basic //Sposób uwierzytelniania require valid-user //Jeśli podał prawidłowe dane
(skomentowane, aby działało trzeba usunąć komentarze) .htpass:

użytkownik1:zakodowanehasło

użytkownik2:zakodowanehasło

Aby wygenerować ten plik musisz uruchomić mały programik: htpasswd -b[cmdps] plik login hasło

Zablokowany zostanie cały katalog.

(Przykłady pochodzą z książki “PHP i MySQL Vademecum Profesjonalisty” Helionu)

Arek25, tak wygląda jak dasz ten skrypt na byle jaką stronę

Pryz przekierowaniu zostanie ślad:

bez sensu.

OK dobry do do autoryzacji, ale jak przygotować gotowy interrfejs do logowania??

Zależy mi gółwnie na samym polu “Hasło” i przycisku “Zaloguj”. Mam wydzielone miejsce w kodzie strony teraz jaki kod mam wkleić? Rozumiem że musze zapisać plik jako *.php

Serwer obsługuje “PHP 5.2 oraz PHP 4.4 (rozszerzenie .php4);”

wg. mnie wyświetlanie jakichkolwiek okienek z tym nie ma sensu, wszystko musi być na stronie… Jeśli chciałeś mieć z okieniekiem to licz się, że ja mogę ci wejść… - po prostu wystarczy chociażby w IE odznaczyć 2 fuknkcje…

Co!? Jakie funkcje!? Gdzie!?

Danin robisz tak:

<?php


// jeśli używamy IIS, trzeba ustawić zmienne $PHP_AUTH_USER i $PHP_AUTH_PW

if (substr($_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft' &&

    !isset($_SERVER['PHP_AUTH_USER']) &&

    !isset($_SERVER['PHP_AUTH_PW']) &&

    substr($_SERVER['HTTP_AUTHORIZATION'], 0, 6) == 'Basic '

   )

{

  list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =

    explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

}


// to wyrażenie warunkowe można zastąpić np. zapytaniem do bazy danych

if ($_SERVER['PHP_AUTH_USER'] != 'uzytkownik' || $_SERVER['PHP_AUTH_PW'] != 'haslo')

{

  // użytkownik nie podał żadnych danych albo

  // podany identyfikator lub hasło są nieprawidłowe


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

  if (substr($_SERVER['SERVER_SOFTWARE'], 0, 9) == 'Microsoft')

    header('Status: 401 Unauthorized');

  else

    header('HTTP/1.0 401 Unauthorized');


 ?>

To się będzie wyświetlać jeśli nie zalogowano(podano błędne dane).

<?php

}

else

{

?>

A to jeśli podał prawidłowe dane.

<?php

}


?>

I plik zapisujesz z rozszerzeniem php.

ok zrobiłem tak jak napisałes w kodzie, ale no włąsnie:

Po wpisaniu czegokolwiek wyświetla się dalej ta sama ramka, nawet jak wpisze nieodpowiedni login i hasło i tak ramka cały czas się pojawia, jak klikne w przycisk “X” czyli zamnkij okno wtedy pojawia się napis jaki wskazałeś “To się będzie wyświetlać jeśli nie zalogowano(podano błędne dane).”

Rozumiem że w nietkniętym kodzie w Twoim poście jako login jest “uzytkownik” a hasło “haslo”. Wklejam ten kod do pliku *.php i tak nie działa. Tylko dlaczego??

A jakby wyglądał kod z loginem : login , hasłem : haslo z komunikatami ZLE HASLO i WITAMY ???

No bo to tak ma być. Jeśli naciśnie X albo Anuluj to się pokaże dalsza część strony(tzn. to, że podał błędne dane), jeśli poda prawidłowe dane, to mu się wyświetli strona i będzie zalogowany. Poszukaj na php.net, może coś znajdziesz.

No ok ale dlaczego jak napisze byle co nie wyświetla sie komunikat złe hasło itp.

Jednak potrzebuje kodu z samym hasłem, czyli żeby wyświetlało się w okienku z przeglądarki “Podaj hasło”. Ma ktoś może taki gotowy kod??

utwórz plik .htaccess a w nim:

AuthType Basic

	AuthName "galeria"

	AuthUserFile /var/www/virtual/wr.cba.pl/.htpasswd

	Require user nazwa usera np. dostep ;p

Umieść ten plik w katalogu chronionym czyli do tego do którego mogą wejśc osoby wpiszące hasło.

Wtedy bład się nie pojawi jesli wpisze dobre hasło ale wstaw ten kod ze stroną błedu. Opisz co dokładnie chcesz - czy to co generuje przegladarka czy skrypt taki jak np. na tym forum?

Cokolwiek niepozwalające na dostranie się osób trzecich do pewnego pliku html.

Najlepiej aby pojawiało się okienko od przeglądarki z napisem “Podaj hasło”

Jeśli użytkokwnik wpisze odpowiednie hasło to wyświetla mu się strona jeśli nie wtedy pokazuje mu się napis błędne hasło spróbuj ponownie.

Już nie wiem jak to wytłumaczyć, niby prosta sprawa, tylu doradzało ale nic nie działa…

Po kliknięciu w hiperłącze na stronie do pliku *.php powinno wyświetlić się okienko z tekstem WPISZ HASŁO" oraz z polem do wpisania tego hasła.

Jeśli użytkownik poda dobre hasło wyświetla mu się strona napisana w języku HTML!! Jeśli nie wyświetla mu się komunikat na “czystej” stronie - ZŁE HASŁO SPRÓBUJ PONOWNIE!!".

I tyle, tylko jak napisac to w języku php. Kolega Fiołek ładnie wszystko napisał w kodzie ale nie działa ten kodzik.

Złączono Posta : 09.10.2007 (Wto) 23:03

Cokolwiek niepozwalające na dostranie się osób trzecich do pewnego pliku html.

Najlepiej aby pojawiało się okienko od przeglądarki z napisem “Podaj hasło”

Jeśli użytkokwnik wpisze odpowiednie hasło to wyświetla mu się strona jeśli nie wtedy pokazuje mu się napis błędne hasło spróbuj ponownie.

Już nie wiem jak to wytłumaczyć, niby prosta sprawa, tylu doradzało ale nic nie działa…

Po kliknięciu w hiperłącze na stronie do pliku *.php powinno wyświetlić się okienko z tekstem WPISZ HASŁO" oraz z polem do wpisania tego hasła.

Jeśli użytkownik poda dobre hasło wyświetla mu się strona napisana w języku HTML!! Jeśli nie wyświetla mu się komunikat na “czystej” stronie - ZŁE HASŁO SPRÓBUJ PONOWNIE!!".

I tyle, tylko jak napisac to w języku php. Kolega Fiołek ładnie wszystko napisał w kodzie ale nie działa ten kodzik.

a może po prostu wykorzystać jeden z wielu dostępnych gotowych skryptów?

http://hotscripts.pl/PHP/Skrypty-i-komp … zpieczenia

banalnie prosty w instalacji jest skrypt “Logowanie by Pion”

Ale powiedz dokładnie co nie działa