Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Logowanie z podziałem na uprawnienia - pomocy
piootras82
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 8.12.2010

Ostrzeżenie: (0%)
-----


Witam,
juz pare dni siedzę i nie mogę wykombinować w jaki sposób napisać skrypt, który bedzie przenosił na odpowiednią podstronę w zależności od tego jaką rangę ma dany użytkownik.

Mam 2 tabele

USERS
user_id
user_login
user_haslo
id_ranga

RANGA
id_ranga
ranga


W pierwszej tabeli przechowuje użytkowników, w drugiej uprawnienia.

Mam skrypt który łączy się z bazą i pobiera dane haslo i login po czym poprawnie loguje na stronę index.php
W jaki sposób sprawić by po zalogowaniu konkretnego użytkownika, została sprawdzona przypisana do niego ranga z drugiej tabeli a następnie w zależności od tego jaka to ranga przekierowało go automatycznie na odpowiednią podstronę, na której będzie widział tylko te funkcje do których ma uprawnienia.

Próbowałem zrobić to stosując funkcje IF ale po jej zapisaniu wyświetla się biała strona natomiast na sesjach nie wiem w jaki sposób przypisać rangę do sesji w zależności od tego kto jest zalogowany.
Przeszukałem forum, jednak nie znalazłem odpowiedniej pomocy.

kod index.php
Kod
$this_var = "

<?php
error_reporting(E_ALL);
ini_set('display_errors','1');


session_start();
session_register("zalogowany");


if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;

mysql_connect("localhost", "root", "608693")or die("Nie można nawiązać połączenia z bazą");
mysql_select_db("zokia")or die("Wystąpił błąd podczas wybierania bazy danych");

function ShowLogin($komunikat=""){
    echo "$komunikat<br>";
    echo "<form action='index.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=text name=haslo><br>";
    echo "<input type=submit value='Zaloguj!'>";
    echo "</form>";
    echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
}

?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
    <title>Strona główna</title>
</head>
<body>
<?php
if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"]=0;echo "Zostałeś wylogowany z serwisu";}
if($_SESSION["zalogowany"]!=1){
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
        if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
            echo "Zalogowano poprawnie. <a href='index.php'>Przejdź na stronę główną</a>";
            $_SESSION["zalogowany"]=1;
            }
        else echo ShowLogin("Podano złe dane!!!");
        }
    else ShowLogin();
}
else{
?>
Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, np. do <a href="stronka.php">tej</a>
<br><a href='index.php?wyloguj=tak'>wyloguj się</a>
<?php
}
?>

</body>
</html>
<?php mysql_close(); ?>

";



kod rejestruj.php
Kod
$this_var = "
<?php
mysql_connect("localhost", "root", "608693")or die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
mysql_select_db("zokia")or die("Wystąpił błąd podczas wybierania bazy danych");

function ShowForm($komunikat=""){    //funkcja wyświetlająca formularz rejestracyjny
    echo "$komunikat<br>";
    echo "<form action='rejestruj.php' method=post>";
    echo "Login: <input type=text name=login><br>";
    echo "Hasło: <input type=text name=haslo><br>";
    echo "<input type=hidden value='1' name=send>";
    echo "<input type=submit value='Zarejestruj mnie'>";
    echo "</form>";
}
?>

<head>
    <title>Formularz rejestracyjny</title>
</head>
<body>
<?php
if($_POST["send"]==1){    //sprawdzanie czy formularz został wysłany
    if(!empty($_POST["login"]) && !empty($_POST["haslo"])){    //oraz czy uzupełniono wszystkie dane
        if(mysql_num_rows(mysql_query("select * from users where user_login='".htmlspecialchars($_POST["login"]."'"))))ShowForm("Użytkownik o podanym loginie już istnieje!!!"); // sprawdzanie czy użytkownik o podanej nazwie już istnieje
        else{
            mysql_query("insert into users values(NULL, '".htmlspecialchars($_POST["login"])."', '".htmlspecialchars($_POST["haslo"])."')"); // zapisywanie rekordu do bazy
            echo "Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href='index.php'>strony głównej</a> i się zalogować.";
            }
    }
    else ShowForm("Nie uzupełniono wszystkich pól!!!");
}
else ShowForm();
mysql_close(); //zamykanie połączenia z bazą
?>
</body>
</html>

";


kod check.php
Kod
$this_var = "
<?php
session_start();
?>

<head>
    <title>podstrona</title>
</head>
<body>
<?php
if($_SESSION["zalogowany"]==0){echo "nie masz dostępu do tej części witryny. <a href='index.php'>Zaloguj się</a></body></html>;"; exit();}
?>
";




probowałem z taką funkcją IF

Kod
$this_var = "
if($ranga = 1)
    {
    <meta http-equiv="Refresh" content="3; url=admin.php" />
    }
    elseif ($ranga = 2)
    {
    <meta http-equiv="Refresh" content="3; url=owner.php" />
    }
    elseif ($ranga = 3)
    {
    <meta http-equiv="Refresh" content="3; url=user.php" />
    }
    elseif ($ranga = 4)
    {
    <meta http-equiv="Refresh" content="3; url=control.php" />
    }
    else
    {
    print("skontaktuj sie z administratorem");
    }
";
Go to the top of the page
+Quote Post

Posty w temacie
- piootras82   [PHP][MySQL]Logowanie z podziałem na uprawnienia - pomocy   21.12.2010, 16:11:57
- - modern-web   Twój projekt jest prosty pomimo, że wydaje się sko...   21.12.2010, 16:21:15
- - lord2105   a moze razniej switch? [PHP] pobierz, plaintext ...   21.12.2010, 17:01:48
- - modern-web   Jak komu wygodniej. Obie instrukcje stosować można...   21.12.2010, 17:11:04
- - piootras82   Super, wielkie dzięki Jednak będę potrzebowałl d...   21.12.2010, 22:36:14
- - modern-web   Nie dziwi mnie to - zła konstrukcja zapytania. Zró...   22.12.2010, 00:04:12
- - piootras82   yyyyy nie rozumiem :/ 1. poprawiłem zapytanie do ...   22.12.2010, 11:05:22
- - modern-web   1. Bo dałeś ; od razu po zapytaniu, a przecież dal...   22.12.2010, 12:13:47
- - piootras82   ałymi kroczkami do przodu Udało mi się Najpier...   22.12.2010, 14:30:22
- - modern-web   1. Mam prośbę... kod PHP wstawiaj w odpowiedni zna...   22.12.2010, 14:52:37
- - piootras82   O - właśnie zastanawiałem sie jak to wklejacie - h...   22.12.2010, 15:28:32
- - modern-web   Po zapytaniu o zmiennej $ranga dodaj: [PHP] p...   22.12.2010, 15:34:47
- - Szadow   O matko! [PHP] pobierz, plaintext if(mysql...   22.12.2010, 15:41:02
- - piootras82   SUPER Działa pięknie Jeszcze jedno mam pytanie....   22.12.2010, 15:42:19
- - modern-web   Najkorzystniej za pomocą sesji... proponuję byś zr...   22.12.2010, 15:58:19
- - piootras82   Działa elegancko Dziękuje za pomoc   23.12.2010, 14:55:25
- - shaolin33   witam, jesli to mozliwe to przedstawie swój propbl...   26.06.2013, 07:25:24
- - b4rt3kk   Pobierz uprawnienia użytkownika z bazy, a następni...   26.06.2013, 09:49:08
|- - shaolin33   Cytat(b4rt3kk @ 26.06.2013, 10:49:08 ...   26.06.2013, 10:02:25
- - matijenko   Mój problem wygląda trochę inaczej. Chcę aby zalog...   1.11.2017, 22:22:29


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:32