generalnie... po dlugich a ciezkich zmaganiach udało mi się zorganizować coś takiego:
<?php // access.php /* dodanie "<? include 'access.php'; ?>" do nagłówka pliku zabezpiecza strone */ include '../lib/common.php'; //zawiera error() include '../lib/db.php'; // dbConnect(nazwa_bazy) //sprawdza czy login i haslo są dostępne z formularza lub sesji i tworzy $login i
$pass $login = $_POST['login']; $login = $_SESSION['login']; } $pass = $_POST['pass']; $pass = $_SESSION['pass']; } //jesli zmienna $login nie istnieje, wyświetla formularz logowania ?> <HTML> <!-- formularz logowania --> <HEAD> <TITLE>Logowanie</TITLE> <STYLE type="text/css"> <!-- BODY, TABLE, FORM { font-size: 8pt; font-family: Arial, Verdana; text-decoration: none } SELECT, INPUT { font-size: 8pt; font-family: Arial, Courier; text-decoration: none } --> </STYLE> </HEAD> <BODY> <B>Musisz się zalogować</B><BR> <FORM method="post" action="<?=$_SERVER['PHP_SELF']?>"> <TABLE border="0" cellpadding="0" cellspacing="5"> <TR> <TD alignn="right">Login:</TD> <TD> <INPUT name="login" typen="text" maxlenght="16" size="25"> </TD> </TR> <TR> <TD align="right">Hasło:</TD> <TD> <INPUT name="pass" type="password" maxlength="100" size="25"> </TD> </TR> <TD align="cener" colspan="2"> <INPUT type="submit" value="Zaloguj"> </TD> </TR> </TABLE> </FORM> </BODY> </HTML> <?php // i kończy skrypt exit; } // jeśli istnieje, to: łączy się z bazą dbConnect("sklep"); // sprawdza czy login i hasło są poprawne $sql = "SELECT * FROM admins WHERE login = '$login' AND pass = PASSWORD('$pass')"; if(!$result) { error('Błąd komunikacji z listą administratorów'); } // jeśli nie są, usuwa $_SESSION['login'] i $_SESSION['pass'] i wyświetla 'Brak dostępu' ?> <HTML> <!-- Brak dostępu --> <HEAD> <TITLE>Brak dostępu</TITLE> <STYLE type="text/css"> <!-- BODY { font-size: 8pt; font-family: Arial, Verdana; text-decoration: none } --> </STYLE> </HEAD> <BODY> <B>Brak dostępu</B> <P>Sprawdź czy poprawnie wpisałeś Login i Hasło</P> <A href="javascript:history.go(-1)">powrót</A> </BODY> </HTML> <?php // następnie kończy skrypt exit; } // natomiast jeśli są poprawne, pobiera pełną nazwę użytkownika ?>
i prosta stronka
<? include './access.php'; ?> <HTML> <HEAD> <TITLE>Strona zabezpieczona</TITLE> </HEAD> <BODY> <P>Witaj, <?=$kto?>! Ta informacja jest poufna...</P> </BODY> </HTML>
i chce, zeby sie login i haslo zapisaly w sesji i zebym nie musial sie logowac przy kazdym odswiezeniu... nie mam pojecia dlaczego jest zle :/
przeciez po wywolaniu access.php skrypt tworzy $login i $pass i juz potem nic nie zmienia... czy zmienia, tylko ja nie widzę co...? heup :/ męczę się juz kilka tygodni, a to zwykłe logowanie przecież! wstyd
