witam,
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
if(isset($_POST['login'])) { $login = $_POST['login'];
} elseif (isset($_SESSION['login'])) { $login = $_SESSION['login'];
}
if(isset($_POST['pass'])) { $pass = $_POST['pass'];
} elseif (isset($_SESSION['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
}
// 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'
unset($_SESSION['login']); unset($_SESSION['pass']); ?>
<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
}
// 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

strach pomyslec co bedzie potem...
Ten post edytował cythrus 27.04.2006, 01:31:51