Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] System komentarzy - wyróżnienie admina
aroox
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.07.2012

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


Witam.
Na wstępie chciałbym podkreślić, że dopiero raczkuję w PHP, ale staram się pisać coś swojego, ambitnego, dlatego nie bijcie mnie za jakość kodu jaki ujrzycie niżej : /
A więc nie owijając w bawełnę - stworzyłem system komentarzy umożliwiający dodawanie wpisów dla zalogowanych na stronie użytkowników. No i użytkownikiem jest admin i test. Admin ma prawa administratora, a test nie ma. Chciałbym, aby w komentarzach nick administratora był wyróżniony (w sensie jakieś podkreślenie, albo napis obok [ADMIN]), ale prawdę mówiąc to utkwiłem w martwym punkcie i nie mam pojęcia już jak się za to zabrać, ponieważ próbowałem coś kombinować, ale bezskutecznie. Podejrzewam że będzie to problem z samym MySQL, ale przezorny zawsze ubezpieczony, więc dodałem do tego wątku także PHP.

W phpmyadmin mam bazę danych nazwaną "cms", a w niej tabele "uzytkownicy" i "komentarze".

Struktura tabeli uzytkownicy:
id | user | password | email | admin

No i odpowiednio:
1 | admin | [haslo] | email@mail.local | 1
2 | test | [haslo] | email@mail.local | 0


Struktura tabeli komentarze:
id | data | user | komentarz

No i tutaj wiadomo co jest czym, więc nie będę przedstawiał. Jeśli dodaję komentarz z konta admin to wtedy w 'user' mam 'admin', natomiast jeśli z konta test to mam 'test'.

No i mam taki kod PHP do tego (wklejam cały plik, bo nigdy nie wiadomo co może się przydać):

  1. <?php
  2. require_once "../polacz.php";
  3. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  4. $polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
  5. if (isset($_SESSION['zalogowany']) && ($_SESSION['zalogowany']==true))
  6. {
  7. echo '<form action="test2.php" method="post">
  8. Dodajesz komentarz jako: <b>'.$_SESSION['user'].'</b><br/>
  9. <textarea name="tresc" cols="50" rows="10"></textarea><br/>
  10. <input type="submit" value="Wyślij komentarz"></form>
  11. </form>';
  12. }
  13. else
  14. {
  15. echo 'Musisz się zalogować, aby dodawać komentarze<br/><br/><br/>';
  16. }
  17. echo 'Aktualne komentarze:';
  18. $komentarze = @$polaczenie->query("SELECT * FROM komentarze ORDER BY id ASC");
  19. while($pokaz = mysqli_fetch_array($komentarze)) {
  20.  
  21. echo 'Data: '.$data = $pokaz['data'].'<br/>';
  22. echo 'Nick: '.$pokaz['user'].'<br/>';
  23. echo 'Treść komentarza: '.$pokaz['komentarz'].'<br/><br/><br/>';
  24. }
  25.  
  26. $polaczenie->close();
  27. ?>


I jeszcze plik test2.php który przetwarza te dane:

  1. <?php
  2. require_once "../polacz.php";
  3. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  4. $polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
  5. $nick = $_SESSION['user'];
  6. $tresc = $_POST['tresc'];
  7. if (empty($tresc)) {
  8. echo 'Treść komentarza nie może być pusta!';
  9. } else {
  10. $dodaj = "INSERT INTO cms.komentarze (id,data,user,komentarz) VALUES ('', now(), '$nick', '$tresc')";
  11. if($polaczenie->query($dodaj) == TRUE) {
  12. echo 'Dodano komentarz';
  13. } else {
  14. echo 'Nie dodano komentarza';
  15. }
  16. }
  17.  
  18. $polaczenie->close();
  19. ?>


No i jak widać - informację o aktualnie zalogowanym użytkowniku przetrzymuję w sesji i podczas wpisywania komentarza zamiast wklepywać nazwę użytkownika, jest ona z tej sesji odczytywana i wpisywana do bazy danych.

No i na koniec powtórzę jeszcze raz - jak mógłbym wyróżnić w takich wpisach później podczas czytania komentarzy nick użytkownika, który ma w bazie danych wartość 'admin' ustawioną na '1' (czyli jest po prostu administratorem)?

Z góry dziękuję za wszelką pomoc smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.08.2025 - 09:14