[php]Logowanie bez baz danych...
[php]Logowanie bez baz danych...
Wlasnie takie logowanie (bez bazy danych potrzebuje zrobic. dlaczego? bo tego nie potrzebuje, poniewaz haslo (lub login jezeli dodam do tego login) otrzyma gora 5 osob, a na poczatku wrecz trzy. i teraz tak, powiedzmy ze ze wzgledu bezpieczenstwa, trzymam haslo w pliku o bardzo dlugim ciagu znakow ASCII.
Napisalem skrypt, ktory pobiera x pierwszych znakow z tego pliku i ustawia jako haslo, nastepnie sprawdza czy jest ono zgodne z przyslanym ciagiem znakow przez zmienna superglobalna, jasli nie to... wiadomo co, a jesli tak to... no wlasnie, co? lepiej jest przekierowac do konkretnej strony, czy wyswietlic ta strone funkcja echo () ?
Napisalem skrypt, ktory pobiera x pierwszych znakow z tego pliku i ustawia jako haslo, nastepnie sprawdza czy jest ono zgodne z przyslanym ciagiem znakow przez zmienna superglobalna, jasli nie to... wiadomo co, a jesli tak to... no wlasnie, co? lepiej jest przekierowac do konkretnej strony, czy wyswietlic ta strone funkcja echo () ?
Re: Logowanie bez baz danych...
a po co, aż tak kombinacja. Nie sytwrczy moze:Dreen pisze:Wlasnie takie logowanie (bez bazy danych potrzebuje zrobic. dlaczego? bo tego nie potrzebuje, poniewaz haslo (lub login jezeli dodam do tego login) otrzyma gora 5 osob, a na poczatku wrecz trzy. i teraz tak, powiedzmy ze ze wzgledu bezpieczenstwa, trzymam haslo w pliku o bardzo dlugim ciagu znakow ASCII......
[php]<?php
function tajna_strona(){
//tu jest nasza tajna strona
}
if ($_POST['haslo']=='otworz' && $_POST['login']=='loguj'){
tajna strona();
}else{
echo "hasło lub login nieprawidłowe!!!";
}
?>[/php]
Ten przyklad oczywiscie dotyczy logowania za pomoca formularza, mteoda POST, kiedy haslo to "otworz" a login to "loguj"
Re: [php]Logowanie bez baz danych...
hm od poczatku w tworzeniu tego skryptu przyswieca mi jedna mysl - stworzyc skrypt logowania, ktory nawet jesli jakim cudem wpadnie w lapy potencjalnego szkodnika, to nic mu to nie da >] I zrobilem >]]]
Skrypt jest gotowy, aczkolwiek mam pytanie, czy zamiast pisac cos takiego:
[php]<?php
if (warunekA){
if (warunekB){
echo (A=1 i B=1);
}
else
{
echo (A=1 i B=0);
}
}
else
{
echo (A=0 i B=0);
}
?>[/php]
moge napisac tak:
[php]<?php
if (warunekA){
if (warunekB){
echo (A=1 i B=1); }
else{
echo (A=1 i B=0); } }
else {
echo (A=0 i B=0); }
?>[/php]
? ewentualnie, czy da sie UNIECZYTELNIC kod jeszcze bardziej?
Skrypt jest gotowy, aczkolwiek mam pytanie, czy zamiast pisac cos takiego:
[php]<?php
if (warunekA){
if (warunekB){
echo (A=1 i B=1);
}
else
{
echo (A=1 i B=0);
}
}
else
{
echo (A=0 i B=0);
}
?>[/php]
moge napisac tak:
[php]<?php
if (warunekA){
if (warunekB){
echo (A=1 i B=1); }
else{
echo (A=1 i B=0); } }
else {
echo (A=0 i B=0); }
?>[/php]
? ewentualnie, czy da sie UNIECZYTELNIC kod jeszcze bardziej?
Re: [php]Logowanie bez baz danych...
eee tam, badziewie, co w tym nieczytelnego? Jesli chcesz sie zabezpieczyc, tak zeby w przypadku kradziezy kodu nic to nikomu nie dalo sprobuj zrobic tak:
a) wymysl sobie haslo np. kot
b) shaszuj haslo komenda md5 np:
[php]<?php
$a=md5(kot);
echo $a;
?>[/php]
c) dostaniesz wynik w rodzaju: a3b4a7b8sd82w82wji98i0s5g4j82ww3
kodzik weryfikujacy:
[php]<?php
if (md5($_GET['kod_dostepu'])=='a3b4a7b8sd82w82wji98i0s5g4j82ww3'){
//tu ladujemy strone
}else{
echo "nie masz uprawnien";
}
?>[/php]
i teraz jesli skrypt nazywa sie index.php to wystrczy wpisac http://.....index.php?kod_dostepu=kot i uzyskujemy wejscie do autoryzowanej czesci serwisu.
Jesli ktos ma kod to nic mu to nie da bo ma tylko hash, ktory nie pzrechowuje przeciez zadnych informacji!!! dany hash odpowiada nieskonczonej liczbie wyrazen. Oczywiscie, jesli spotkamy maniaka, to zrobi nam metode slownikowa: wypisze hashe dla kazdego slowa w j.polskim a potem wyszuka jakie slowo generuje szukany hash, tak wiec mozna dodtakowo zabezpieczyc sie uzywajac cyfr. Np. kot99
Oczywisci mozna uzyc formularzy - wystarczy w listingu zmienic GET na POST.
a jak juz chcemy miec tysiacprocentowa pewnosc to przerabiamy powyzsze listingi:
[php]<?php
$a=md5(kot);
while ($z<9){
$a=md5($a);
++$z;
}
echo $a;
?>[/php]
dostaniesz wynik w rodzaju: 435063a9582330dfc664af01c6595bc8
kodzik weryfikujacy:
[php]<?php
$b=md5($_GET['kod_dostepu']);
while ($q<9){
$b=md5($b);
++$q;
}
if ($b=='435063a9582330dfc664af01c6595bc8'){
//tu ladujemy strone
}else{
echo "nie masz uprawnien";
}
?>[/php]
Pozdr
a) wymysl sobie haslo np. kot
b) shaszuj haslo komenda md5 np:
[php]<?php
$a=md5(kot);
echo $a;
?>[/php]
c) dostaniesz wynik w rodzaju: a3b4a7b8sd82w82wji98i0s5g4j82ww3
kodzik weryfikujacy:
[php]<?php
if (md5($_GET['kod_dostepu'])=='a3b4a7b8sd82w82wji98i0s5g4j82ww3'){
//tu ladujemy strone
}else{
echo "nie masz uprawnien";
}
?>[/php]
i teraz jesli skrypt nazywa sie index.php to wystrczy wpisac http://.....index.php?kod_dostepu=kot i uzyskujemy wejscie do autoryzowanej czesci serwisu.
Jesli ktos ma kod to nic mu to nie da bo ma tylko hash, ktory nie pzrechowuje przeciez zadnych informacji!!! dany hash odpowiada nieskonczonej liczbie wyrazen. Oczywiscie, jesli spotkamy maniaka, to zrobi nam metode slownikowa: wypisze hashe dla kazdego slowa w j.polskim a potem wyszuka jakie slowo generuje szukany hash, tak wiec mozna dodtakowo zabezpieczyc sie uzywajac cyfr. Np. kot99
Oczywisci mozna uzyc formularzy - wystarczy w listingu zmienic GET na POST.
a jak juz chcemy miec tysiacprocentowa pewnosc to przerabiamy powyzsze listingi:
[php]<?php
$a=md5(kot);
while ($z<9){
$a=md5($a);
++$z;
}
echo $a;
?>[/php]
dostaniesz wynik w rodzaju: 435063a9582330dfc664af01c6595bc8
kodzik weryfikujacy:
[php]<?php
$b=md5($_GET['kod_dostepu']);
while ($q<9){
$b=md5($b);
++$q;
}
if ($b=='435063a9582330dfc664af01c6595bc8'){
//tu ladujemy strone
}else{
echo "nie masz uprawnien";
}
?>[/php]
Pozdr
Re: [php]Logowanie bez baz danych...
extra dzieki za podpowiedz, powiedz mi jeszcze tylko pare rzeczy bo dopiero zaczynam sie uczyc:
1) Czy hash szyfruje wszystkie znaki ASCII (jak # , % lub ~) ?
2) Czy moge pisac cos takiego co widac kodzie (tan 16 linijek) tzn. funkcja if() jako wynik innej funkcji if() ?
3) Gdzie moge znalesc wiecej informacji na temet hashu ?
z gory dzieki
1) Czy hash szyfruje wszystkie znaki ASCII (jak # , % lub ~) ?
2) Czy moge pisac cos takiego co widac kodzie (tan 16 linijek) tzn. funkcja if() jako wynik innej funkcji if() ?
3) Gdzie moge znalesc wiecej informacji na temet hashu ?
z gory dzieki
-
Mayhen
- Nowy

- Posty: 158
- Rejestracja: śr lip 10, 2002 9:21 pm
- Lokalizacja: 21°41' E | 50°35' N
- Kontakt:
Re: [php]Logowanie bez baz danych...
o md5 mozna m.in. powiedziec to ze nikt go do tej pory nie zlamal, wiec pliki mozesz trzymac nawet w txt :]
lub podac na glownej stronie. Ale najlepiej trzymać je jak zmienne w *.php
md5 robi z dowolnego ciągu hash o dlugosci 32 znaków. Jedna zmaina znaku powoduje miane calego ciągu
md5 robi z dowolnego ciągu hash o dlugosci 32 znaków. Jedna zmaina znaku powoduje miane calego ciągu
Re: [php]Logowanie bez baz danych...
dobra dziex, teraz jeszcze ad. pytanie 2) - sprostuje nieco - czy efektem funkkcji if(warunek) moze byc inna funkcja if (warunek) i jak jest wtedy z wszystkimi wasami (nawiasami { i } ) ?
-
Mayhen
- Nowy

- Posty: 158
- Rejestracja: śr lip 10, 2002 9:21 pm
- Lokalizacja: 21°41' E | 50°35' N
- Kontakt:
Re: [php]Logowanie bez baz danych...
tak oczywiście,
prosty przykład:
[php]
<?
$waruenk = "true";
$i=3;
if (warunek) {
if ($i==1) {echo "jeden";}
if ($i==2) {echo "dwa";}
if ($i==3) {echo "trzy";}
if ($i==4) {echo "cztery";}
}
?>[/php]
prosty przykład:
[php]
<?
$waruenk = "true";
$i=3;
if (warunek) {
if ($i==1) {echo "jeden";}
if ($i==2) {echo "dwa";}
if ($i==3) {echo "trzy";}
if ($i==4) {echo "cztery";}
}
?>[/php]
Re: [php]Logowanie bez baz danych...
zgadza sie, zz ta poprawka, ze mowienie o zlamaniu md5 do pewnego stopnia jest nieporozumieniem. md5 nie szyfruje widaomosci. Daltego jest tak dobre, bo nie zawiera w sobie zadnego logicznego wyrazenia umowliwiajacego dekodowanie.Mayhen pisze:o md5 mozna m.in. powiedziec to ze nikt go do tej pory nie zlamal, wiec pliki mozesz trzymac nawet w txt :]lub podac na glownej stronie. Ale najlepiej trzymać je jak zmienne w *.php
md5 robi z dowolnego ciągu hash o dlugosci 32 znaków. Jedna zmaina znaku powoduje miane calego ciągu
Jedyna metoda dzis znana na zlamanie md5 to brute mode, czyli metoda podstawiania. Problem jest w tym ze hashowanie nastepuje bezposrednio na niskim jezyku procesora wukorzystujac architekture macierzowa 32 bitowego procesora. Dlatego pojedynczy hash jesli zrodlem jest string mniejszy niz 6 znakow w ten sposob mozna w rozsadnym czasie odszukac pasujacy string. Dlatego lepiej hashowac co najmniej 2 razy np.
[php]<?php
$a=md5(md5(kot));
?>[/php]
taki hash jest odporny na brute mode, a ten 10cio krotny powyzej, to juz zupelnie nie widze sznasy by to bylo do zlamania!!!
-
Mayhen
- Nowy

- Posty: 158
- Rejestracja: śr lip 10, 2002 9:21 pm
- Lokalizacja: 21°41' E | 50°35' N
- Kontakt:
Re: [php]Logowanie bez baz danych...
oczywiście ze md5 jest szyfrem.
Dana wartość po zachashowaniu ma zawsze taką samą wartość. Więc jest to szyfr tyle że jedno-stronny. A jak wiadomo każdy szyfr można złamać, tyle ze z tym bylby spory klopot.
Teoretycznie jest mozliwe ze dwie rozne wartosci maja wspolny hash, przez co mozliwe jest ze haslo ma swoj odpowiednik ktory daje taki sam hash. A szukanie takiego odpowiednika moze byc nawet szybsze niz metoda brutal force.
Dana wartość po zachashowaniu ma zawsze taką samą wartość. Więc jest to szyfr tyle że jedno-stronny. A jak wiadomo każdy szyfr można złamać, tyle ze z tym bylby spory klopot.
Teoretycznie jest mozliwe ze dwie rozne wartosci maja wspolny hash, przez co mozliwe jest ze haslo ma swoj odpowiednik ktory daje taki sam hash. A szukanie takiego odpowiednika moze byc nawet szybsze niz metoda brutal force.
Re: [php]Logowanie bez baz danych...
nie pisalem ze md5 to nie szyfr, tylko ze nie szyfruje danego ciagu znakow,.md5 uzywa sie przeciez przez porownanie a nie dekodowanie.
liczba wyrazen odpowiadajaca danemu hashowi jest nieskonczona, wynika to z prostego faktu ze hash ma skonczona liczbe wyrazen, a kodowane stringi nie. Jednak szans ze uzywajac zankow alfanumerycznych przy nie wiecej niz 10 znakow dwa stringi beda mialy ten sam hash jest nuieco wieksza niz 1/10^24 wiec w praktyce zadna. Tak wiec brute force jest jednak w przypadku md5 najefektywniejsza.
liczba wyrazen odpowiadajaca danemu hashowi jest nieskonczona, wynika to z prostego faktu ze hash ma skonczona liczbe wyrazen, a kodowane stringi nie. Jednak szans ze uzywajac zankow alfanumerycznych przy nie wiecej niz 10 znakow dwa stringi beda mialy ten sam hash jest nuieco wieksza niz 1/10^24 wiec w praktyce zadna. Tak wiec brute force jest jednak w przypadku md5 najefektywniejsza.
Re: [php]Logowanie bez baz danych...
hm ale tak czy inaczej jesli ktos ukradnie mi skrypt to zobaczy haslo, a jesli zrobilbym costakiego, ze haslem jest wartos $h tyle ze $h = ("kot".$a); . teraz wstawie naprzykad zeby pod $a podstawial date konkretnego formatu (funkcja date() ), wiec po pierwsze zamaskuje $h funkcja md5() (do tego dwa razy), zamiast slowa "kot" moge przeciez rowniez pobierac haslo z jakiegos innego, schowanego pliku, a do tego HASLO BEDZIE CODZIENNIE INNE!!! Dajcie znac, czy to ma szanse wypalic, czy nie.
Re: [php]Logowanie bez baz danych...
hmm, troche sie nie zrozumielismy. skrypt pierwszy pokazywal tylko jak skodowac dany string zeby wkleic wynik do drugiego skryptu. Robisz tak: ladujesz do jednego pliku tenze listing z "kot" i masz wynik - zapisujesz go sobie na kartce czy gdziekolwiek - wywalasz tenze skrypt i ladujesz wynik (hash) do tego drugiego. Nikt nigdzie kota nie zobaczy. Specjalnie dla ciebie zrobilem skrypcik, ktory mozesz sobi zostawic, gdyz wpisujesz kodowane slowo do formularza:
[php]
<form method=POST action='test.php?go=4'>
<input type=text name='z'>
<input type=submit value='GO MD5'>
</form>
<br>
<br>
<?php
if ($_GET['go']==4){
$a=md5($_POST['z']);
echo $a;
}
?>[/php]
mam nadzieje ze kapujesz o co chodzi?.
Oczywiscie hashe mozesz ladowac z czego chcesz, z pliku, bazy itp.mozesz ustawic rotacje hasel itp, co chesz. Jednak pomysl z data mi sie nie podoba - beda problemy. Poza tym bedzie to widoczne w kodzie, wiec po kradziezy kodu to utrudnienie zniknie, a my przez caly czas bedziemy mieli klopot ze zmienna data i logowaniem
[php]
<form method=POST action='test.php?go=4'>
<input type=text name='z'>
<input type=submit value='GO MD5'>
</form>
<br>
<br>
<?php
if ($_GET['go']==4){
$a=md5($_POST['z']);
echo $a;
}
?>[/php]
mam nadzieje ze kapujesz o co chodzi?.
Oczywiscie hashe mozesz ladowac z czego chcesz, z pliku, bazy itp.mozesz ustawic rotacje hasel itp, co chesz. Jednak pomysl z data mi sie nie podoba - beda problemy. Poza tym bedzie to widoczne w kodzie, wiec po kradziezy kodu to utrudnienie zniknie, a my przez caly czas bedziemy mieli klopot ze zmienna data i logowaniem
Re: [php]Logowanie bez baz danych...
chyba kapuje ale dopiero sie ucze od dwoch tygodni wiec nie mialem dozo czasu na zglebienie php stopniu wystarczajacym. mimo to mam jeszcze jedno pytanko, co z tego, ze zahashuje haslo, skoro logujac sie naprzyklad czyms takim:
[php]<?php
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
echo ("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=admin.php\"></head><body></body></html>");
// jesli tak to laduje strone "admin.php"
}
else
{
echo ("<html><head></head><body>Przykro mi, ale nie masz uprawnien</body></html>");
}
// Jesli nie no to sorry
?>[/php]
skoro i tak zahash'uje haslo to i tak w przypadku kradziezy kodu ktos moglby poprostu wejsc nastrone "admin.php", ktorej adres zobaczy w znaczniku <meta>, zamiast trudzic sie z haslem. Jak zabezpieczyc sie i przed tym? zhashowac rowniez ta senkwenje meta ???
[php]<?php
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
echo ("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=admin.php\"></head><body></body></html>");
// jesli tak to laduje strone "admin.php"
}
else
{
echo ("<html><head></head><body>Przykro mi, ale nie masz uprawnien</body></html>");
}
// Jesli nie no to sorry
?>[/php]
skoro i tak zahash'uje haslo to i tak w przypadku kradziezy kodu ktos moglby poprostu wejsc nastrone "admin.php", ktorej adres zobaczy w znaczniku <meta>, zamiast trudzic sie z haslem. Jak zabezpieczyc sie i przed tym? zhashowac rowniez ta senkwenje meta ???
Re: [php]Logowanie bez baz danych...
wszystko zle!!!
[php]<?php
include ("funkcje.php");
include ("header.php");// tu ladujemy naglowek html
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
function witaj();
}
else
// Jesli nie no to sorry
{
echo ("Przykro mi, ale nie maszm uprawnien");
}
include ("down.php");
?>[/php]
W tym przypadku ladujemy cala strone do funkcji witaj(), w plike funkcje.php. Takie rozwiazanie ma zalety i wady. Zaleta jest to ze wykorzystuje wylacznie php, nie jestesmy zalezni od przegladarki, od tego czy ogladajacy ma wlaczone cookies itd. wada jest, ze mozemy wywolac tylko jedna strone i tylko raz bez wpisywania hasla. Inna zaleta jest ze funkcje sa ekstremalnie bezpiecznie, gdyz dopoki nie wywolamy funkcji jest ona nie do odczytu.
Dodatkowo poczatek kodu html wzrucamy w header.php a koncowke (zamkniecie klamr <body> i <html> w pliku down.php.
upgradujemy kod do takiej postaci:
[php]<?php
include ("funkcje.php");
session_start();
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
$_SESSION['logged']="yes";
function witaj();
}
else
// Jesli nie no to sorry
{
include ("header.php");// tu ladujemy naglowek html
echo ("Przykro mi, ale nie maszm uprawnien");
include ("down.php");
}
?>[/php]
Tak teraz znacznie lepiej. Teraz jesli gostek wywoluje jakies zdarzenie, przekierowujemy go do odpowiedniej funkcji, ale musi spelnic warunek:
[php]<?php
if ($_SESSION['logged']=='yes')
{
///
}
?>[/php]
Wszytko jasne, chyba, oczywiscie, mozna sprawdzac to wewnatrz funkcji, ale nie zapomnijmy na poczatek w niej wpisac:
[php]<?php
function witaj(){
global $_SESSION;
if ($_SESSION['logged']=='yes')
{
///tu dzialanie
}}
?>[/php]
Mowiac prawde jestem maniakiem funkcjowania wszytkiego co popadnie, ale oczywiscie mozna to zrobic includami. Prosty przyklad. Logujemy sie i mamy miec dostep do trzech dzialan 1. odczytaj dane userow 2. zmien dane userow 3. skasuj usera
Nie bede tutaj rozwijal poszczegolnych plikow odpowiedzialnych za dane dzialanie, tylko na dostepnosci do nich:
1. plik index.php:
[php]<?php
session_start();
if ($_POST['go']=='1'){
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
$_SESSION['logged']="yes";
include ("menu.php");
}
else
// Jesli nie no to sorry
{
include ("header.php");// tu ladujemy naglowek html
echo ("Przykro mi, ale nie maszm uprawnien");
include ("down.php");
}
}
include ("header.php");
?>
<form action="index.php" method=POST>
haslo:<input type=text name='haslo_web'><br>
<input type=submit value='przeslij haslo'>
<input type=hidden name='go' value='1'>
</form>
<?
include ("down.php");
?>[/php]
menu.php:
[php]<?php
session_start();
if ($_SESSION['logged']=='yes')
{
include ("header.php");
echo "<a href='1.php'>1 ODCZYTAJ DANE USEROW</a><br>";
echo "<a href='2.php'>2 ZMIEN DANE USEROW</a><br>";
echo "<a href='3.php'>3 USUN USERA</a>";
include ("down.php");
}
else
{
include ("header.php");
echo "nie masz uprawnien";
include ("down.php");
}
?>[/php]
pliki 1.php 2.php 3.php:
[php]<?php
session_start();
if ($_SESSION['logged']=='yes')
{
include ("header.php");
//odpowiedni skrypt
include ("down.php");
}
else
{
include ("header.php");
echo "nie masz uprawnien";
include ("down.php");
}
?>[/php]
[php]<?php
include ("funkcje.php");
include ("header.php");// tu ladujemy naglowek html
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
function witaj();
}
else
// Jesli nie no to sorry
{
echo ("Przykro mi, ale nie maszm uprawnien");
}
include ("down.php");
?>[/php]
W tym przypadku ladujemy cala strone do funkcji witaj(), w plike funkcje.php. Takie rozwiazanie ma zalety i wady. Zaleta jest to ze wykorzystuje wylacznie php, nie jestesmy zalezni od przegladarki, od tego czy ogladajacy ma wlaczone cookies itd. wada jest, ze mozemy wywolac tylko jedna strone i tylko raz bez wpisywania hasla. Inna zaleta jest ze funkcje sa ekstremalnie bezpiecznie, gdyz dopoki nie wywolamy funkcji jest ona nie do odczytu.
Dodatkowo poczatek kodu html wzrucamy w header.php a koncowke (zamkniecie klamr <body> i <html> w pliku down.php.
upgradujemy kod do takiej postaci:
[php]<?php
include ("funkcje.php");
session_start();
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
$_SESSION['logged']="yes";
function witaj();
}
else
// Jesli nie no to sorry
{
include ("header.php");// tu ladujemy naglowek html
echo ("Przykro mi, ale nie maszm uprawnien");
include ("down.php");
}
?>[/php]
Tak teraz znacznie lepiej. Teraz jesli gostek wywoluje jakies zdarzenie, przekierowujemy go do odpowiedniej funkcji, ale musi spelnic warunek:
[php]<?php
if ($_SESSION['logged']=='yes')
{
///
}
?>[/php]
Wszytko jasne, chyba, oczywiscie, mozna sprawdzac to wewnatrz funkcji, ale nie zapomnijmy na poczatek w niej wpisac:
[php]<?php
function witaj(){
global $_SESSION;
if ($_SESSION['logged']=='yes')
{
///tu dzialanie
}}
?>[/php]
Mowiac prawde jestem maniakiem funkcjowania wszytkiego co popadnie, ale oczywiscie mozna to zrobic includami. Prosty przyklad. Logujemy sie i mamy miec dostep do trzech dzialan 1. odczytaj dane userow 2. zmien dane userow 3. skasuj usera
Nie bede tutaj rozwijal poszczegolnych plikow odpowiedzialnych za dane dzialanie, tylko na dostepnosci do nich:
1. plik index.php:
[php]<?php
session_start();
if ($_POST['go']=='1'){
if (md5 ($_POST['haslo_web']) == "7a215f02516ba2f76d7f019958c876cc")
// Jezeli haslo podane w form pasuje do hasha
{
$_SESSION['logged']="yes";
include ("menu.php");
}
else
// Jesli nie no to sorry
{
include ("header.php");// tu ladujemy naglowek html
echo ("Przykro mi, ale nie maszm uprawnien");
include ("down.php");
}
}
include ("header.php");
?>
<form action="index.php" method=POST>
haslo:<input type=text name='haslo_web'><br>
<input type=submit value='przeslij haslo'>
<input type=hidden name='go' value='1'>
</form>
<?
include ("down.php");
?>[/php]
menu.php:
[php]<?php
session_start();
if ($_SESSION['logged']=='yes')
{
include ("header.php");
echo "<a href='1.php'>1 ODCZYTAJ DANE USEROW</a><br>";
echo "<a href='2.php'>2 ZMIEN DANE USEROW</a><br>";
echo "<a href='3.php'>3 USUN USERA</a>";
include ("down.php");
}
else
{
include ("header.php");
echo "nie masz uprawnien";
include ("down.php");
}
?>[/php]
pliki 1.php 2.php 3.php:
[php]<?php
session_start();
if ($_SESSION['logged']=='yes')
{
include ("header.php");
//odpowiedni skrypt
include ("down.php");
}
else
{
include ("header.php");
echo "nie masz uprawnien";
include ("down.php");
}
?>[/php]
Ostatnio zmieniony ndz paź 26, 2003 1:35 pm przez the_foe, łącznie zmieniany 1 raz.

