Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Admin i Uprawnienia, Odczytanie z bazy danych wartości liczbowej.
Crovean
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Problem mam z odczytem z bazy danych wartości liczbowej.
Chce odczytac z bazy danych wartosc "1" w tabeli Uzytkownicy -> Admin jesli dany uzytkownik posiada wartosc INT "1" to wyswietli index2.html a jestli posiada INT "0 "to wyswietli sie index1.html.
Proszę o pomoc...

  1. <?PHP
  2.  
  3. function checkPass($user, $pass)
  4. {
  5. $link = mysql_connect("localhost", "uzyt_zak", "haslo");
  6. $flag = mysql_select_db("uzytkownik");
  7.  
  8. if(!$link || !$flag){
  9. //echo("Problem z połączeniem z bazą danych.");
  10. return false;
  11. }
  12. $query = "SELECT HASLO, ADMIN FROM UZYTKOWNICY WHERE LOGIN = '".$user."'";
  13. //$query = "SELECT PASS FROM USERS WHERE NAME = '".$user."'";
  14.  
  15. if(!$result = mysql_query($query)){
  16. //echo("Problem z bazą danych. Odrzucone zapytanie.");
  17. mysql_close($link);
  18. return false;
  19. }
  20.  
  21. if(!$row = mysql_fetch_row($result)){
  22. mysql_close($link);
  23. return false;
  24. }
  25.  
  26. // -- admin
  27.  
  28. // -- pasword
  29. if($row[0] != $pass){
  30. mysql_close($link);
  31. return false;
  32. }
  33. else{
  34. mysql_close($link);
  35. return true;
  36. }
  37.  
  38.  
  39.  
  40. }
  41. function logujAdmin ($admin){
  42. $link = mysql_connect("localhost", "uzyt_zak", "haslo");
  43. $flag = mysql_select_db("uzytkownik");
  44.  
  45. if(!$link || !$flag){
  46. //echo("Problem z połączeniem z bazą danych.");
  47. return false;
  48. }
  49. $query1 = "SELECT ADMIN FROM UZYTKOWNICY WHERE LOGIN and Admin='1'";
  50. //$query = "SELECT PASS FROM USERS WHERE NAME = '".$user."'";
  51.  
  52. if(!$result1 = mysql_query($query1)){
  53. //echo("Problem z bazą danych. Odrzucone zapytanie.");
  54. mysql_close($link);
  55. return false;
  56. }
  57.  
  58. if(!$row = mysql_fetch_row($result1)){
  59. mysql_close($link);
  60. return false;
  61. }
  62.  
  63. }
  64.  
  65.  
  66. if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
  67. include('error.html');
  68. }
  69. else if(checkPass($_POST["user"], $_POST["haslo"])){
  70.  
  71. if(logujAdmin($_POST["admin"])){
  72. include('index1.html');
  73. }else{
  74. include('index2.html');
  75. }
  76.  
  77. }
  78. else{
  79. include('error.html');
  80. }
  81.  
  82.  
  83. ?>
  84.  
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Czemu hasła nie sprawdzasz po stronie mysql... ?
Go to the top of the page
+Quote Post
Crovean
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Nie dodałem tego ale wydaje mi się że narazie to ma mały wpływ na tym etapie... Niewiem nadal jak zrobić to aby mogło się wyświetlać odpowiedni html przy odpowiednich uprawnieniach nadanych w bazie
Go to the top of the page
+Quote Post
piotr94
post
Post #4





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


linijka 49: $query1 = "SELECT ADMIN FROM UZYTKOWNICY WHERE LOGIN = '$admin' and Admin='1'";
Go to the top of the page
+Quote Post
Crovean
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


No super dzięki. Ale teraz główkuje nad zapytaniem samym: aby mogło wyświetlać się w zależności od parametru odpowiedni html.

  1. if(logujAdmin($_POST["Admin"])){
  2. include('index1.html');
  3. }else{
  4. include('index2.html');
  5. }
  6.  


Ten post edytował Crovean 17.11.2009, 18:23:36
Go to the top of the page
+Quote Post
piotr94
post
Post #6





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


po linijce 61 w funkcji logujAdmin:
  1. return true;
  2. }else{
  3. return false;
  4. }

jeśli użytkownik będzie adminem to zaincluduje index1.html, w przeciwnym wypadku index2.html
Go to the top of the page
+Quote Post
Crovean
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


O dzięki ale nadal wyświetla mi się za każdym razem tak jak bym łączył się za każadym razem z adminem...
Przy wprowadzonych zmianach wyskakuje mi komunikat:

Notice: Undefined index: admin in login.php on line 76
Go to the top of the page
+Quote Post
piotr94
post
Post #8





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


wklej jeszcze raz całą treść pliku ;-)
Go to the top of the page
+Quote Post
Crovean
post
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Oto obecny kod wyskakuje blad przy:
Notice: Undefined index: admin in login.php on line 76
I wyświetla się tylko ciągle index2.html czyli ten dla admina

  1. <?PHP
  2.  
  3. function checkPass($user, $pass)
  4. {
  5. $link = mysql_connect("localhost", "uzyt_zak", "haslo");
  6. $flag = mysql_select_db("uzytkownik");
  7.  
  8. if(!$link || !$flag){
  9. //echo("Problem z połączeniem z bazą danych.");
  10. return false;
  11. }
  12. $query = "SELECT HASLO, ADMIN FROM UZYTKOWNICY WHERE LOGIN = '".$user."'";
  13. //$query = "SELECT PASS FROM USERS WHERE NAME = '".$user."'";
  14.  
  15. if(!$result = mysql_query($query)){
  16. //echo("Problem z bazą danych. Odrzucone zapytanie.");
  17. mysql_close($link);
  18. return false;
  19. }
  20.  
  21. if(!$row = mysql_fetch_row($result)){
  22. mysql_close($link);
  23. return false;
  24. }
  25.  
  26. // -- admin
  27.  
  28. // -- pasword
  29. if($row[0] != $pass){
  30. mysql_close($link);
  31. return false;
  32. }
  33. else{
  34. mysql_close($link);
  35. return true;
  36. }
  37.  
  38.  
  39.  
  40. }
  41. function logujAdmin ($admin){
  42. $link = mysql_connect("localhost", "uzyt_zak", "haslo");
  43. $flag = mysql_select_db("uzytkownik");
  44.  
  45. if(!$link || !$flag){
  46. //echo("Problem z połączeniem z bazą danych.");
  47. return false;
  48. }
  49. $query1 = "SELECT ADMIN FROM UZYTKOWNICY WHERE LOGIN = '$admin' and Admin='1'";
  50. //$query = "SELECT PASS FROM USERS WHERE NAME = '".$user."'";
  51.  
  52. if(!$result1 = mysql_query($query1)){
  53. //echo("Problem z bazą danych. Odrzucone zapytanie.");
  54. mysql_close($link);
  55. return false;
  56. }
  57.  
  58. if(!$row = mysql_fetch_row($result1)){
  59. mysql_close($link);
  60. return false;
  61. }
  62. return true;
  63. }else{
  64. return false;
  65. }
  66.  
  67. }
  68.  
  69.  
  70. if(!isSet($_POST["haslo"]) || !isSet($_POST["user"])){
  71. include('error.html');
  72. }
  73. else if(checkPass($_POST["user"], $_POST["haslo"])){
  74.  
  75. if(logujAdmin($_GET["admin"])){
  76. include('index1.html');
  77. }else{
  78. include('index2.html');
  79. }
  80.  
  81. }
  82. else{
  83. include('error.html');
  84. }
  85.  
  86.  
  87. ?>
  88.  
  89.  
  90.  
Go to the top of the page
+Quote Post
piotr94
post
Post #10





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


spróbuj mysql_afected_rows()>0 zamiast ...()!=0
Go to the top of the page
+Quote Post
Crovean
post
Post #11





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


Nadal wyświetla się błąd przy:

Notice: Undefined index: admin in login.php on line 76

  1. 76. if(logujAdmin($_POST["admin"])){
  2. 77. include('index1.html');
  3. 78. }else{
  4. 79. include('index2.html');
  5. 80. }


Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No jak nie ma sprawdzanej zmiennej, to wywali.

Sprawdzaj przez empty, czy zmienna została zainicjalizowana (konkretnie ten klucz w tablicy $_POST).
Go to the top of the page
+Quote Post
Crovean
post
Post #13





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


No właśnie jak widać nie inicjuje i niewiem dlaczego... hmmm
Go to the top of the page
+Quote Post
askone
post
Post #14





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

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


Hej

Sprawdź dokładnie nazwę pola w formularzu logowania. Skoro dostajesz to przez $_POST to w formularzu logowania musisz mieć pole "admin"

Pozdro
Go to the top of the page
+Quote Post
Crovean
post
Post #15





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.11.2009

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


No nie mam "admin" teraz myślę gdzie by to wstawić aby mogło dobrze funkcjonować...

  1. <FORM NAME = "formularz1"
  2. ACTION = "login.php"
  3. METHOD = "POST"
  4. >
  5. <TABLE border="1"><TR>
  6. <TD bordercolor="#FFFFFF">Użytkownik:</TD>
  7. <TD bordercolor="#FFFFFF">
  8. <INPUT TYPE="text" NAME="user">
  9. </TD>
  10. </TR><TR>
  11. <TD bordercolor="#FFFFFF">Hasło:</TD>
  12. <TD bordercolor="#FFFFFF">
  13. <INPUT TYPE="password" NAME="haslo">
  14. </TD>
  15. </TR><TR>
  16. <TD COLSPAN="2"
  17. ALIGN="center"
  18. BORDERCOLOR="#FFFFFF"
  19. >
  20. <INPUT TYPE="submit" VALUE="Wejdź">
  21. </TD>
  22. </TR></TABLE>
  23. </FORM>
  24.  
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: 5.10.2025 - 19:38