25-04-2010, 01:59
(Ten post był ostatnio modyfikowany: 25-04-2010, 02:08 przez dj_wlodi_2000.)
Witam! Mam mały problem bo napisałem już logowanie i rejestracje ale nie wiem jak rozróżnić userów tzn. wiem że trzeba funkcję rozróżniania napisać typu : jeżeli nick i pass jest taki to przenieś na stronę. Ale jak!!!
I tu pytanie do was!!!
Oto pliki php
login.php
register.php
index.php
logout.php
Dopisałem komentarze może komuś się przyda log i rej.
Z góry dziękuje za uświadomienie.
I tu pytanie do was!!!
Oto pliki php
login.php
Kod PHP:
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// połączenie z mysql
mysql_connect('localhost', 'xxxxx', 'xxxx')
or die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
mysql_select_db('xxxxxx')
or die('Nie udalo sie wybrac bazy danych...');
// nagłówek
echo '<h2>Logowanie</h2>';
// sprawdzamy czy user jest już zalogowany
if($_SESSION['logged']) echo 'Już jesteś zalogowany!';
else
{
// tworzymy prosty formularz
echo '<form action="login.php" 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 = trim($_POST['nick']);
$pass = trim($_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 = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick)));
$pass = 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 'Niestety 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ć na <a href="index.html">stronę główna</a>';
}
}
}
}
// rozłączenie z bazą danych
mysql_close();
// koniec buforowania
ob_end_flush();
?>
register.php
Kod PHP:
<?php
// połączenie z mysql
mysql_connect('localhost', 'krawiec_przemysl', '21185')
or die('Nieudane polaczenie z baza danych...');
// wybór bazy danych
mysql_select_db('krawiec_przemysl')
or die('Nie udalo sie wybrac bazy danych...');
// nagłówek
echo '<h2>Rejestracja</h2>';
// tworzymy prosty formularz
echo '<form action="register.php" 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 = trim($_POST['nick']);
$pass = trim($_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 = strip_tags( mysql_real_escape_string(HTMLSpecialChars($nick)));
$pass = 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="login.php">zalogować</a>';
}
}
}
// rozłączenie z bazą danych
mysql_close();
?>
index.php
Kod PHP:
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// nagłówek
echo '<h2>Strona główna</h2>';
// 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="logout.php">WYLOGUJ</a>';
}
// jeśli nie jest zalogowany
else
{
echo 'Witaj!<br />';
echo '<a href="login.php">Zaloguj się</a> lub <a href="register.php">zarejestruj nowe konto</a>';
}
// koniec buforowania
ob_end_flush();
?>
logout.php
Kod PHP:
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
// nagłówek
echo '<h2>Wylogowywanie</h2>';
// jeśli user jest zalogowany
if($_SESSION['logged'])
{
// to go wylogowujemy i usuwamy jego dane z sesji
$_SESSION['logged'] = false;
$_SESSION['nick'] = '';
$_SESSION['id'] = '';
echo 'Zostałes poprawnie wylogowany! <a href="index.php">wróć</a>';
}
// jeśli nie jest zalogowany
else
{
echo 'Nie byłes zalogowany! <a href="index.php">wróć</a>';
}
// koniec buforowania
ob_end_flush();
?>
Dopisałem komentarze może komuś się przyda log i rej.
Z góry dziękuje za uświadomienie.
