Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Sesje - logowanie użytkowników
daros17
post
Post #1





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Hey

Mam pewien skrypt logowania z sesjami i nie wiem jak zrobić aby użytkownik oraz admin widzieli tą samą stronę. Chodzi mi o to, że

admin ma przypisane w bazie np id=1 a użytkownik id=0

i jak to teraz zrobić aby każdy typ użytkownika widział tą samą stronę czyli np test.pl/admin.php tyle że użytkownik będzie miał inne opcje a administrator inne.

tu jest kod logowanie.php

  1. require('functions.php');
  2.  
  3. if (isset($_POST['submit'])) {
  4.  
  5. $login =htmlspecialchars($_POST['login']);
  6. $password =htmlspecialchars($_POST['password']);
  7.  
  8.  
  9. $query = mysql_query("SELECT * FROM `users` WHERE `nazwa` = '$login' AND `haslo` = '$password' ");
  10.  
  11. if(@mysql_num_rows($query)) {
  12.  
  13. header('Location: admin/index.php');
  14.  
  15.  
  16.  
  17. echo 'Zostales poprawnie zalogowany, jako <strong>'.$login.'</strong>. Witaj!<br />';
  18.  
  19.  
  20. $_SESSION['zalogowany'] = true;
  21. $_SESSION['login'] = $login;
  22. }
  23.  
  24. else {
  25.  
  26. echo 'Podane dane sa bledne!';
  27. return false;
  28.  
  29. }
  30.  
  31.  
  32. return false;
  33.  
  34. }
  35.  
  36. if ($_SESSION['zalogowany']) {
  37. echo ('Witaj <strong>'.$_SESSION['login'].'<br />');


a tutaj plik admin.php

  1. <?php
  2. if (isset($_POST["login"]) && $_POST["typ"]=="0") {
  3. $typ = $_SESSION["typ"];
  4.  
  5. exit();
  6. }
  7. else
  8. {
  9. if (isset($_POST["login"]) && $_POST["typ"]=="1") {
  10. $typ = $_SESSION["typ"];
  11.  
  12.  
  13. }
  14. }
  15. ?>
  16. <HTML>
  17. <HEAD>
  18. <TITLE>Panel</TITLE>
  19. </HEAD>
  20. <BODY>
  21.  
  22.  
  23.  
  24. <?php
  25. if ( $typ==0)
  26. {
  27. echo "Witaj " . $_SESSION["login"];
  28. echo 'test0';
  29. }
  30. else
  31. {
  32. if ( $typ==1)
  33. {
  34. echo "Witaj " . $_SESSION["login"];
  35. echo 'test1';
  36. }
  37. }
  38. ?>
  39.  
  40.  
  41. </BODY>
  42. </HTML>
  43.  


niestety nie działa to co napisałem...
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1.  
  2. switch($_POST['typ']) {
  3.  
  4. case 1:
  5. require_once 'admin.php';
  6. break;
  7.  
  8. case 2:
  9. require_once 'uzytkownik.php';
  10. break;
  11. }
Go to the top of the page
+Quote Post
Ulysess
post
Post #3





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


id użytkownika to co innego , musisz zrobić dodatkowe pole np status 0 - uzytkonik 1 mod 2 admin np
na stronie sprawdzasz jaki status ma dany użytkownik a następnie dzięki NP ifowi lub switch wyświetlasz dane dla danego użytkownika
Go to the top of the page
+Quote Post
daros17
post
Post #4





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


kolumna grupa ma 0 lub 1

zrobiłem tak ale nie działa jeśli kolumna nazywa się grupa to wówczas daję np if ($_POST['grupa'])... ?

  1. <?php
  2. require("functions.php");
  3. connection();
  4. $query = mysql_query("SELECT * FROM `users` WHERE `grupa` = 1 ");
  5.  
  6. if(@mysql_num_rows($query)) {
  7.  
  8. require_once("admin.php");
  9.  
  10. echo "Witaj " . $_SESSION["login"];
  11. }
  12. else
  13. {
  14. $query = mysql_query("SELECT * FROM `users` WHERE `grupa` = 0 ");
  15.  
  16. if(@mysql_num_rows($query)) {
  17.  
  18. require_once("user.php");
  19.  
  20. echo "Witaj " . $_SESSION["login"];
  21. }
  22. }
  23.  
  24. ?>
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #5





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


dobrze kombinujesz ale nie wiem dokladnie o co Ci chodzi nie lepiej zrobic to dopiero po logowaniu?

napisz sobie funkcje ktora wyswietla tylko dane dla admina i tyle
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


źle...

  1. $query = mysql_query("SELECT * FROM `users` WHERE `login` = '{$login}' ");
  2. $row = mysql_fetch_array($query)) {
  3.  
  4. switch($row['grupa']) {
  5.  
  6. case 1:
  7. require_once 'admin.php';
  8. break;
  9.  
  10. case 2:
  11. require_once 'uzytkownik.php';
  12. break;
  13. }
Go to the top of the page
+Quote Post
user767
post
Post #7





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


http://forum.nospor.pl/inne/skrypty-uzytko...nuser-ft62.html
Go to the top of the page
+Quote Post
Compiler
post
Post #8





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Cytat(user767 @ 7.11.2010, 08:59:23 ) *




  1. if($login != $admin_login){ // jeśli niezgodne, czyli to user
  2. $zapytanie = "SELECT logowanie.login, logowanie.haslo, logowanie.id_osoba FROM
  3. logowanie WHERE login='$login' ";
  4. $wynik = mysql_query($zapytanie);
  5. if(mysql_num_rows($wynik) > 0) {
  6. while($r = mysql_fetch_array($wynik)) { // porównanie
  7. $haslo_baza = $r['haslo']; // dane wysłane z md5($_POST) z md5($haslo)
  8. $login_baza = $r['login'];
  9. $osoba = $r['id_osoba'];
  10. $_SESSION['id_zal'] = $r['id_osoba']; // nadanie wartości zmiennej ses.
  11. }}}


Wyjaśnisz mi co tutaj robisz? (Chcę abyś sam zrozumiał)

Ten post edytował Compiler 7.11.2010, 09:25:48
Go to the top of the page
+Quote Post
daros17
post
Post #9





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Dalej mi to nie działa...

@CuteOne wywala błąd w tym kodzie.

Po zalogowaniu użytkownik oraz admin ma być przenoszony do pliku admin/index.php tyle że każda z grup ma widzieć co innego. Wówczas if daje w pliku admin/index.php tak?
Go to the top of the page
+Quote Post
Compiler
post
Post #10





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


index.php:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. </head>
  5. <body>
  6. <form action="logowanie.php" method="post">
  7. <br /><br />Login:<br />
  8. <input name="Login" type="text"/>
  9. <br /><br />Hasło:<br />
  10. <input name="Haslo" type="password" size="18" />
  11. <br /><br />
  12. <input type="submit" name="wyslij" value="Zaloguj" class="button" />
  13. </form>
  14. </body>
  15. </html>


logowanie.php :

  1. <?php
  2. $connection = @mysql_connect('localhost', 'root', '');
  3. $db = @mysql_select_db('testowa', $connection);
  4. $q="select status from users where login ='".$_POST['Login']."' and haslo='".$_POST['Haslo']."'";
  5. $wynik = mysql_query($q,$connection);
  6. mysql_close($connection);
  7. if(mysql_num_rows($wynik) == 1)
  8. {
  9. $r = mysql_fetch_row($wynik);
  10. if ($r[0]==0)
  11. echo 'Witamy usera !';
  12. else
  13. if ($r[0]==1)
  14. echo 'Witamy admina !';
  15. }
  16. else
  17. echo 'Zły login lub hasło !';
  18. ?>


Struktura tabeli:
id int,
status tinyint,
login varchar,
haslo varchar

Oczywiście jest to uproszczony na maksa przykład bez walidacji danych itp itd.
Go to the top of the page
+Quote Post
daros17
post
Post #11





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


nie do końca to działa, ponieważ po wpisaniu dobrych danych wyświetla się napis że dane są złe i błąd Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Go to the top of the page
+Quote Post
user767
post
Post #12





Grupa: Zarejestrowani
Postów: 178
Pomógł: 5
Dołączył: 13.09.2010

Ostrzeżenie: (40%)
XX---


Cytat
Wyjaśnisz mi co tutaj robisz? (Chcę abyś sam zrozumiał)


Wszystko jest napisane w komentarzach, przykro mi. (IMG:style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
Compiler
post
Post #13





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 11.11.2006

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


Cytat(daros17 @ 7.11.2010, 17:44:41 ) *
nie do końca to działa, ponieważ po wpisaniu dobrych danych wyświetla się napis że dane są złe i błąd Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


Musi działać. Testowałem i działa dobrze. Może pochrzaniłeś coś w bazie ?
wstaw
$wynik = mysql_query($q,$connection) OR die (mysql_error());
zamiast
$wynik = mysql_query($q,$connection);

I pokaż błąd.

Ten post edytował Compiler 7.11.2010, 20:34:52
Go to the top of the page
+Quote Post
CuteOne
post
Post #14





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Czy to tak trudno kliknąć w google i zobaczyć co oznacza ten błąd?(IMG:style_emoticons/default/questionmark.gif)

Cytat
Po zalogowaniu użytkownik oraz admin ma być przenoszony do pliku admin/index.php tyle że każda z grup ma widzieć co innego. Wówczas if daje w pliku admin/index.php tak?

tak
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 07:45