Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Panel admina pomoc
Forum PHP.pl > Forum > Przedszkole
Maze123987
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"?
artisan
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
Maze123987
  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.
GoOx
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 biggrin.gif
Maze123987
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?
GoOx
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 smile.gif
Maze123987
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?
Damonsson
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.
Maze123987
check_admin nie zwraca nic, bo tą funkcję właśnie chcę napisać wzorując się na ifie, który podałem.

bump
GoOx

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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.