Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak rozróżnić userów w PHP Admin/User
#1
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
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_tagsmysql_real_escape_stringHTMLSpecialChars($nick)));
            
$pass strip_tagsmysql_real_escape_stringHTMLSpecialChars($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_tagsmysql_real_escape_string(HTMLSpecialChars($nick)));
        
$pass strip_tagsmysql_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. Big Grin
Odpowiedz
#2
Najłatwiej w bazie zrobić dodatkowe pole oznaczające typ użytkownika. 0 = admin, 1 = redaktor, 2 = user itp. Tak chyba najszybciej będzie.
Odpowiedz
#3
Czyli w bazie dodając rangi użytkownikom? Poszukam coś na necie. Mam nadzieje ze coś znajdę dla siebie Smile
A dokładniej jaka to zapiać w bazie typu range varchar(10); i bede musiał opisać w login.php zeby po zalogowaniu sie przenosić na odpowiednie strony
Odpowiedz
#4
Będziesz musiał. Ranga to pole TINYINT(4) Smile
Odpowiedz
#5
a może Pedro84 by napisał dokładnie jak to ma wyglądać bo szukam i szukam na google i nic ciekawego nie wypatrzyłem.
Jeszcze nie jestem takim programista żeby wszytko wiedzieć wiem że muszę jeszcze parę książek przeczytać ale chciałbym to zrobić bo jest to mój większy projekt
jak do tych czas.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Odblokowanie User Agent potok 10 9,646 02-10-2012, 19:59
Ostatni post: potok
  Skrypt - dodawanie wpisów/zdjęć przez userów Mushy 3 3,751 03-08-2010, 23:10
Ostatni post: kancik
Exclamation Problem z Uploaderem w Panelu Admin gregzorba 1 1,865 23-03-2010, 17:37
Ostatni post: ILIES
  witryna z kontami userów wilq man 3 3,092 03-09-2009, 04:38
Ostatni post: Kamil

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl