Już do 3 dni szukam skryptu do logowania i autoryzacji pod php i sql
Mam rejestracje:
Wszystko działa oprócz blokowania stron.
Rejestacja
<?
//nazwa strony
$subpage_name = 'Rejestracja';
//Tu sie zaczyna rejestracaj
function siteload() {
// nagłówek
// tworzymy prosty formularz
echo '<form action="index.php?id=reg" method="POST">
Nick: <br />
<input type="text" name="nick"><br />
Hasło: <br />
<input type="password" name="pass"><br />
<input type="submit" name="ok" value="Rejestruj">
</form>';
// jeśli zostanie naciśnięty przycisk "Rejestruj"
if(isset($_POST['ok']))
{
$nick = $_POST['nick'];
$pass = $_POST['pass'];
// sprawdzamy czy wszystkie dane zostały podane
if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
// jeśli tak...
else
{
// filtrujemy dane
$nick = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($nick))));
$pass = trim(strip_tags( mysql_real_escape_string(HTMLSpecialChars($pass))));
// sprawdzamy czy jest już użytkownik o takim loginie
$result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
// jeśli już istnieje
if(mysql_num_rows($result)!=0) echo 'Już istnieje konto z takim loginem!';
// jeśli nie...
else
{
// pobieramy aktualną datę
$data = time();
// kodujemy hasło
$pass = md5($pass);
// tworzymy zapytanie
$query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`) VALUES ('$nick', '$pass', '$data')";
// jeśli zapytanie wykona się poprawnie to zostanie wyświetlony stosowny komunikat
if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! Możesz się teraz <a href="index.php?id=login">zalogować</a>';
}
}
}
// rozłączenie z bazą danych
mysql_close();
}
?>
Logowanie
<?
//nazwa strony
$subpage_name = 'Logowanie';
//Tu się zaczyna logowanie
session_start();
function siteload() {
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// nagłówek
// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jestes zalogowany!';
else
{
// tworzymy prosty formularz
echo '<form action="index.php?id=login" method="POST">
Nick: <br />
<input type="text" name="nick"><br />
Hasło: <br />
<input type="password" name="pass"><br />
<input type="submit" name="ok" value="Zaloguj">
</form>';
// jeśli zostanie naciśnięty przycisk "Zaloguj"
if(isset($_POST['ok']))
{
$nick = $_POST['nick'];
$pass = $_POST['pass'];
// sprawdzamy czy wszystkie dane zostały podane
if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
// jeśli tak...
else
{
// filtrujemy dane
$nick = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick))));
$pass = trim(strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass))));
// kodujemy hasło
$pass = md5($pass);
// sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
$result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
// jeśli nie istnieje
if(mysql_num_rows($result)==0) echo 'Podałes niepoprawne dane!';
// jeśli tak...
else
{
// dodajemy wynik zapytania do tablicy
$row = mysql_fetch_array($result);
// ustawianie sesji że użytkownik jest zalogowany
$_SESSION['logged'] = true;
// dodawanie do sesji id użytkownika, login oraz datę rejestracji
$_SESSION['id'] = $row['id'];
$_SESSION['nick'] = $row['nick'];
$_SESSION['data_rejestracji'] = $row['data_rejestracji'];
// wyświetlenie komunikatu oznaczającego poprawne logowanie
echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć do <a href="index?id=profil">strony głównej profilu</a>';
}
}
}
}
// rozłączenie z bazą danych
mysql_close();
// koniec buforowania
ob_end_flush();
}
?>
ale jak dodam
session_start();
do strony którą che zablokować żeby nie dało się jej otworzyć bez zalogowania to mi to nie działa
i nie wiem co zrobić z tym,
Panel użytkowniak wygląda tak
<?
//nazwa strony
$subpage_name = 'Strona Główna';
session_start();
function siteload() {
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// nagłówek
// jeśli user jest zalogowany
if($_SESSION['logged'])
{
// wyświetlamy userowi jego dane
echo 'Witaj '.$_SESSION['nick'].'!<br />';
echo 'Twój ID to: '.$_SESSION['id'].'.<br />';
echo 'Zarejestrowałes się u nas: '.date("d.m.Y, H:i", $_SESSION['data_rejestracji']).'<br />';
echo '<a href="index.php?id=logout">WYLOGUJ</a>';
}
// jeśli nie jest zalogowany
else
{
echo 'Witaj!<br />';
echo '<a href="index.php?id=login">Zaloguj się</a> lub <a href="index.php?id=reg">załuż nowe konto</a>';
}
// koniec buforowania
ob_end_flush();
}
?>
i to działa nie wiem czemu...
jak wie ktoś jak to zrobić to plx to niech mi powie, albo da jakiś lepszy skrypt...