Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Panel admina pomoc
Maze123987
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Witam, próbuję zrobić coś na wzór panelu admina (dostęp tylko dla użytkownika o określonej nazwie)
Posiadam taką funkcję:

  1. function check_login() {
  2. if(!$_SESSION['logged']) {
  3. die('<p>To jest strefa tylko dla użytkowników.</p>
  4. <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
  5. }
  6. }


Jak zrobić podobną funkcję, ale tylko, aby wpuszczała ona użytkownika, który tabeli X i kolumnie Y ma wpisaną wartość "1"?
Go to the top of the page
+Quote Post
artisan
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 14.11.2011
Skąd: Wieliczka

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


Pobierasz sobie rekord z loginem i i do zmiennej $_Session przypisujesz wartosc pola (kolumny) jeżeli jest ona 1 to logujesz jeżeli nie to nie
Go to the top of the page
+Quote Post
Maze123987
post
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


  1. function check_admin() {
  2.  
  3. if(!$_SESSION['logged'] = mysql_query("SELECT `user_id` FROM `users` WHERE `user_id` = '2'")) { // jesli wartosc 0 to wyrzuca
  4. die('<p>To jest strefa tylko dla adm.</p>
  5. <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
  6.  
  7. }
  8. }


Coś się nie kręci.
Go to the top of the page
+Quote Post
GoOx
post
Post #4





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Po co tyle kombinowanie ;d ?

Nie wystarczy tak?

  1. $id_user = $_SESSION['user_id']; // tu mamy w sesji id użytkownika.
  2.  
  3. // teraz szukamy czy dany użytkownik ma admina 1 tak 0 to nie
  4. $spr_admin = mysql_query("SELECT admin FROM users WHERE id='$id_user'");
  5.  
  6. /// teraz wyciągamy z tego dane
  7.  
  8. $spr_admin = mysql_fetch_row($spr_admin);
  9. $admin = $spr_admin[0]; // i tu mamy 0 lub 1
  10.  
  11. // i teraz prosty warunek
  12.  
  13. if($admin == '1') {
  14. echo "jesteś adminem!";
  15. }
  16. else {
  17. echo "Nie jesteś adminem!";
  18. }


i to tyle (IMG:style_emoticons/default/biggrin.gif)

Ten post edytował GoOx 8.06.2012, 16:19:26
Go to the top of the page
+Quote Post
Maze123987
post
Post #5





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Super, męczyłem się nad tym cały dzień. Dzięki!

Kolejne pytanie. Mając panel admina chciałbym zrobić stronę z listą użytkowników i w zależności czy w kolumnie "X" usera jest "1" lub "2" wyświetla określony obrazek.

Załóżmy mam listę userów:
UserA (w kolumnie X ma wartość 1) - wyświetla obrazekA
UserB (w kolumnie X ma wartość 2) - wyświetla obrazekB
Jak to zrobić? I jak za pomocą checkboxa mogę zrobić, abym mógł edytować wartość tej kolumny z "1" na "2" i na odwrót?





trochę inaczej to opisałem

Częściowo sobie poradziłem. Została tylko jedna kwestia.

Mam listę użytkowników:
  1. while($row = mysql_fetch_assoc($result)) {
  2. echo '<tr>
  3. <td><a href="profile.php?id='.$row['user_id'].'">'.$row['user_name'].'</a></td>
  4. <td>'.$row['user_email'].'</td>
  5. <td><form action="send.php" method="post" name="forma">
  6. Nick:<input name="nick" type="text" />
  7. <input name="submit" type="submit" value="Edit!" /></form>
  8. </td>
  9. <td>'.date("d.m.Y, H:i", $row['user_regdate']).'</td>
  10. </tr>';
  11. }

Pojawia się ona w pętli. Chciałbym, aby przy każdym użytkowniku była kolumna z checkboxem, który umożliwia edycję rekordu z danej kolumny tegoż użytkownika. Czyli trzeba to:
(plik send.php)
  1. $title = $_POST['nick'];
  2. $zapytanie = "UPDATE users SET user_name = '.$title.' WHERE user_id = '1']'";
  3. $result = mysql_query($zapytanie);


  1. <td><form action="send.php" method="post" name="forma">
  2. Nick:<input name="nick" type="text" />
  3. <input name="submit" type="submit" value="Edit!" /></form>
  4. </td>


Osadzić w tej pętli. Pytanie, jak to zrobić, aby każdy checkbox odnosił się do usera obok?

Ten post edytował Maze123987 8.06.2012, 18:52:52
Go to the top of the page
+Quote Post
GoOx
post
Post #6





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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


Ja bym zrobił to tak. Przykład:

  1.  
  2. echo "Wybierz wartość:</br>";
  3. <form action='index.php?wybrano' method='post'>
  4. 1<input type='checkbox' name='1' > 2<input type='checkbox' name='1' > <input type='submit' name='wybierz' value='wybierz'></form>";
  5.  
  6. $1 = $_POST['1'];
  7.  
  8. $2 = $_POST['2'];
  9.  
  10. $wybierz = $_POST['wybierz'];
  11.  
  12. if(isset($1)) {
  13. $wybieram = 1;
  14. }
  15. if(isset($2)) {
  16. $wybieram = 2;
  17. }
  18.  
  19. if(isset($wybierz)) {
  20. echo "<form action='index.php?wybrano&zapis' method='post'>";
  21. $users = mysql_query("SELECT user, id FROM users WHERE x='$wybieram'");
  22.  
  23. while($user = mysql_fetch_assoc($users)) {
  24.  
  25. $user_dane = $user['user'];
  26. $user_id = $user['id'];
  27.  
  28. $i = 0;
  29. $name = 'grupa'.$i;
  30. echo "$user_dane Grupa1? <input type='checkbox' name='$name'>";
  31. $i++;
  32. }
  33. echo"<input type='submit' name='zapisz_zmiany' value='zapisz'>
  34. </form>";
  35.  


a jak to zapisać to już pomyśl (IMG:style_emoticons/default/smile.gif)

Ten post edytował GoOx 9.06.2012, 12:15:10
Go to the top of the page
+Quote Post
Maze123987
post
Post #7





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Dobra, mam. Mam jeszcze jedno pytanie.

Ten kod:
  1. $id_user = $_SESSION['user_id']; // tu mamy w sesji id użytkownika.
  2.  
  3. // teraz szukamy czy dany użytkownik ma admina 1 tak 0 to nie
  4. $spr_admin = mysql_query("SELECT user_id FROM users WHERE user_id='$id_user'");
  5.  
  6. /// teraz wyciągamy z tego dane
  7.  
  8. $spr_admin = mysql_fetch_row($spr_admin);
  9. $admin = $spr_admin[0]; // i tu mamy 0 lub 1
  10.  
  11. // i teraz prosty warunek
  12.  
  13. if($admin == '1') {
  14. echo "jesteś adminem!";
  15. }
  16. else {
  17. echo "Nie jesteś adminem!";
  18. }


służy mi do tego, aby określoną treść strony wyświetlać adminowi (userowi o id 1) Jak mogę zrobić funkcję w pliku config.php, aby po wpisaniu:

  1. include 'config.php';
  2. db_connect();
  3.  
  4. check_admin();
  5.  
  6. TRESC STRONY


"Treść strony" pokazywało tylko temu uzytkownikowi z ID 1 a reszcie np informację "nie mozesz tu wejsc" nie chcę za każdym razem pisać tego kodu wyżej, gdyż funkcja pomoże mi tego używać łatwiej. Jest ktoś w stanie pomóc?

jest ktoś w stanie pomóc?
Go to the top of the page
+Quote Post
Damonsson
post
Post #8





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Sprawdź co zwraca check_admin() jeśli jesteś zalogowany jako admin, a sprawdź co zwraca, jeśli nie jesteś. Jak już zobaczysz różnicę, to daj if'a w którym umieścisz treść jeśli check_admin zwraca to co powinno zwrócić, czyli jeśli zalogowany jako admin. A jeśli tego nie zwróci to do else, daj treść dla reszty użytkowników.
Go to the top of the page
+Quote Post
Maze123987
post
Post #9





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


check_admin nie zwraca nic, bo tą funkcję właśnie chcę napisać wzorując się na ifie, który podałem.

bump
Go to the top of the page
+Quote Post
GoOx
post
Post #10





Grupa: Zarejestrowani
Postów: 329
Pomógł: 6
Dołączył: 23.11.2011
Skąd: Łódź

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



wystarczy zrobić tak:
  1. if($admin == '1') {
  2. ?>
  3. treść strony
  4. <?
  5. }



tylko plik który wyszukuje czy dana osoba ma admina musi być odpalony poprzez include

Ten post edytował GoOx 10.06.2012, 07:34:48
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: 26.08.2025 - 02:30