Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]id po zalogowaniu z sesji
avaster12
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


Witam dlaczego z tego skryptu nie mogę pobrać id zalogowanego użytkownika

  1. <?php
  2. function logowanie() {
  3. if (isset($_SESSION['zalogowany'])) {
  4. panel_user();
  5. } else {
  6.  
  7. if (isset($_POST['wyslij'])) {
  8.  
  9. if (mysql_num_rows(mysql_query("SELECT `user`,`haslo`,`id` FROM `user` WHERE `user` = '" . $_POST['login'] . "' && `haslo` = '" . $_POST['haslo'] . "' ")or die("Błąd zapytania mysql")) > 0) {
  10. if (mysql_num_rows(mysql_query("SELECT id FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . $_POST['haslo'] . "' ")or die("Błąd zapytania mysql")) > 0) {
  11. $_SESSION['zalogowany'] = true;
  12. $_SESSION['login'] = $_POST['login'];
  13. $_SESSION['haslo'] = $_POST['haslo'];
  14. $_SESSION['id'] = $id_user_session;
  15. header("Location: index.php?act=strona_glowna");
  16.  
  17. } else {
  18.  
  19. echo "Złe hasło, proszę spróbować ponownie";
  20. }
  21. } else {
  22. echo "Nie ma takiego użytkownika";
  23. }
  24. } else {
  25. echo '
  26. Logowanie
  27. <form method="POST" action="?act=strona_glowna">
  28. <b>nazwa uzytkownika:</b> <input type="text" name="login"><br>
  29. <b>haslo:</b> <input type="password" name="haslo"><br>
  30. <input type="submit" value="Wyślij" name="wyslij">
  31. </form>';
  32. }
  33. }
  34. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Bo przypisujesz sesje do zmiennej ale nigdzie nie przypisujesz id z bazy do zmiennej.

Ten post edytował rad11 3.02.2015, 21:33:07
Go to the top of the page
+Quote Post
avaster12
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


a to w którym miejscy musiał bym dorobić zapytanie
Go to the top of the page
+Quote Post
rad11
post
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


  1. <?php
  2. function logowanie() {
  3. if (isset($_SESSION['zalogowany'])) {
  4. panel_user();
  5. } else {
  6.  
  7. if (isset($_POST['wyslij'])) {
  8.  
  9. if (mysql_num_rows(mysql_query("SELECT `user`,`haslo`,`id` FROM `user` WHERE `user` = '" . $_POST['login'] . "' && `haslo` = '" . $_POST['haslo'] . "' ")or die("Błąd zapytania mysql")) > 0) {
  10. if (mysql_num_rows(mysql_query("SELECT id FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . $_POST['haslo'] . "' ")or die("Błąd zapytania mysql")) > 0) {
  11. $row= mysql_fetch_row(mysql_query"(SELECT id FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . $_POST['haslo'] . "' ")) or die("Błąd zapytania mysql");
  12. $_SESSION['zalogowany'] = true;
  13. $_SESSION['login'] = $_POST['login'];
  14. $_SESSION['haslo'] = $_POST['haslo'];
  15. $_SESSION['id'] = $row[0];
  16. header("Location: index.php?act=strona_glowna");
  17.  
  18. } else {
  19.  
  20. echo "Złe hasło, proszę spróbować ponownie";
  21. }
  22. } else {
  23. echo "Nie ma takiego użytkownika";
  24. }
  25. } else {
  26. echo '
  27. Logowanie
  28. <form method="POST" action="?act=strona_glowna">
  29. <b>nazwa uzytkownika:</b> <input type="text" name="login"><br>
  30. <b>haslo:</b> <input type="password" name="haslo"><br>
  31. <input type="submit" value="Wyślij" name="wyslij">
  32. </form>';
  33. }
  34. }
  35. }


Ten post edytował rad11 3.02.2015, 21:56:05
Go to the top of the page
+Quote Post
avaster12
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


A czy da się dodać sprawdzenie czy user to ma jakieś uprawnienia np admin moderator w zależności od liczby w bazie
0 = user
1 = moderator
2= admin
i czy user nie jest zbanowany
1 = tak
0 = nie
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


da się, dodaj odpowiednie pola w bazie, przy tworzeniu zapisuj odpowiednie dane a przy odczycie po prostu dodaj te pola do zapytania i nie pisz w zapytaniu && tylko and
Go to the top of the page
+Quote Post
Rysh
post
Post #7





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Nie warto informować użytkownika czy wpisał złe hasło lub login. Jeśli użytkownik coś wpisał źle krzycz mu błędne dane, jeśli chciałbym się włamać do czyjegoś konta najpierw muszę strzelić login, Twój skrypt mi powie sam przecież czy istnieje, a potem tylko odnaleźć hasło. Poza tym, nie wrzucaj do SESSION hasła! i Czyść POST'y przed użyciem w bazie danych!


--------------------
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Rysh Ciekawa uwaga, tylko kto tak łamie zabezpieczenia. Ale przed pseudo hakierem pewnie Cię to uchroni, w jakimś tam stopniu smile.gif
Go to the top of the page
+Quote Post
avaster12
post
Post #9





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


  1.  
  2. function logowanie() {
  3. if (isset($_SESSION['zalogowany'])) {
  4. panel_user();
  5. } else {
  6.  
  7. if (isset($_POST['wyslij'])) {
  8.  
  9. if (mysql_num_rows(mysql_query("SELECT `user`,`haslo`,`id` FROM `user` WHERE `user` = '" . $_POST['login'] . "' && `haslo` = '" . md5($_POST['haslo']) . "' ")) > 0) {
  10. if (mysql_num_rows(mysql_query("SELECT id FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' ")) > 0) {
  11. $row = mysql_fetch_row(mysql_query("SELECT `id` `admin` FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' "));
  12. $row2 = mysql_fetch_row(mysql_query("SELECT `admin` FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' "));
  13. $_SESSION['zalogowany'] = true;
  14. $_SESSION['login'] = $_POST['login'];
  15. $_SESSION['id'] = $row[0];
  16. $_SESSION['admin'] = $row2[0];
  17.  
  18. header("Location: index.php?act=strona_glowna");
  19.  
  20. } else {
  21.  
  22. echo "Złe dane logowania";
  23. }
  24. }
  25. } else {
  26. echo '
  27. Logowanie
  28. <form method="POST" action="?act=strona_glowna">
  29. <b>nazwa uzytkownika:</b> <input type="text" name="login"><br>
  30. <b>haslo:</b> <input type="password" name="haslo"><br>
  31. <input type="submit" value="Wyślij" name="wyslij">
  32. </form>';
  33. }
  34. }
  35.  
  36.  


i i wyświetlanie uprawień admina
  1. if (!isset($_SESSION['admin']) == 0) {
  2. echo 'User';
  3. }
  4. if (!isset($_SESSION['admin']) == 1) {
  5. echo "Tut";
  6. }
  7. if (!isset($_SESSION['admin']) == 2) {
  8. echo "admin";
  9. }

tylko że nie zależy jaką wartość od 0 1 2 w bazie mam to wyświetlają się razem po zalogowaniu
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


bo nie tak te warunki i else miedzy nimi, czyli:
  1. if (!empty($_SESSION['admin']) && $_SESSION['admin']== 0)

i analogicznie reszta
Go to the top of the page
+Quote Post
avaster12
post
Post #11





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


no nic się nie wyświetla po dodaniu {
}
Go to the top of the page
+Quote Post
com
post
Post #12





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


a ustawiasz gdzieś to wgl $_SESSION['admin'] ?
Go to the top of the page
+Quote Post
avaster12
post
Post #13





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


  1. <?php
  2. function logowanie() {
  3. if (isset($_SESSION['zalogowany'])) {
  4. panel_user();
  5. } else {
  6.  
  7. if (isset($_POST['wyslij'])) {
  8.  
  9. if (mysql_num_rows(mysql_query("SELECT `user`,`haslo`,`id` FROM `user` WHERE `user` = '" . $_POST['login'] . "' && `haslo` = '" . md5($_POST['haslo']) . "' ")) > 0) {
  10. if (mysql_num_rows(mysql_query("SELECT id FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' ")) > 0) {
  11. $row = mysql_fetch_row(mysql_query("SELECT `id` `admin` FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' "));
  12. $row2 = mysql_fetch_row(mysql_query("SELECT `admin` FROM `user` WHERE user = '" . $_POST['login'] . "' && haslo = '" . md5($_POST['haslo']) . "' "));
  13. $_SESSION['zalogowany'] = true;
  14. $_SESSION['login'] = $_POST['login'];
  15. $_SESSION['id'] = $row[0];
  16. $_SESSION['admin'] = $row2[0];
  17.  
  18. header("Location: index.php?act=strona_glowna");
  19.  
  20. } else {
  21.  
  22. echo "Złe dane logowania";
  23. }
  24. }
  25. } else {
  26. echo '
  27. Logowanie
  28. <form method="POST" action="?act=strona_glowna">
  29. <b>nazwa uzytkownika:</b> <input type="text" name="login"><br>
  30. <b>haslo:</b> <input type="password" name="haslo"><br>
  31. <input type="submit" value="Wyślij" name="wyslij">
  32. </form>';
  33. }
  34. }
  35. }
  36.  
  37.  
Go to the top of the page
+Quote Post
com
post
Post #14





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


chodziło mi żebyś sprawdził co jest w $_SESSION['admin'] wink.gif

np var_dump
Go to the top of the page
+Quote Post
avaster12
post
Post #15





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.09.2012

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


string(1) "0"

0 mam dodane w bazie jak zmienne to tu się wyświetli

Ok dałem rade coś mi się zacięło wcześniej albo nie zapisałem mój błąd

Ten post edytował avaster12 13.02.2015, 23:25:18
Go to the top of the page
+Quote Post
Rysh
post
Post #16





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Patrz jak można uprościć kod.
  1. $sql = mysql_query('SELECT id, admin, login FROM user WHERE user="'. $_POST['login'] .'" AND haslo="'. md5($_POST['haslo']) .'" LIMIT 1');
  2. if(mysql_num_rows($sql) == 1) {
  3. $_SESSION = mysql_fetch_assoc($sql);
  4. header("Location: index.php?act=strona_glowna");
  5. } else {
  6. echo 'Błędne dane.';
  7. }



--------------------
Go to the top of the page
+Quote Post

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: 19.08.2025 - 18:22