![]() |
![]() ![]() |
![]() |
![]()
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ć):
I jeszcze plik test2.php który przetwarza te dane:
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 (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie, że nie wiadomo, a to ważne. Bo albu w user masz klucz obcy i musisz zrobić JOIN z tabelą użytkownicy, albo nie masz klucza obcego to musisz go utworzyć i też zrobić JOIN z tabelą użytkownicy. No to więc tak: Struktura tabeli komentarze: id | data | user | komentarz Jak pisałem w pierwszym poście i brak tu kluczy obcych. ID jest autoinkrementowany (bo określenie id aktualnego komentarza, a nie usera), data jest pobierana z wartości 'now()' z test2.php i wpisywana do bazy, user jest wpisywany na zasadzie sesji, co można zaobserwować w linijkach: $nick = $_SESSION['user']; I później zmienna ta z użytkownikiem zapisanym w sesji jest dodawana do bazy danych: $dodaj = "INSERT INTO cms.komentarze (id,data,user,komentarz) VALUES ('', now(), '$nick', '$tresc')"; A treść komentarza pobierana jest z $_POST Więc jak widać - kluczów obcych tu nie mam. Więc mam dodać klucz obcy na wartość 'user' czy może utworzyć osobną kolumnę do tego? Bo próbowałem pobrać już zmienną 'admin' z tabeli 'uzytkownicy' i wpisać ją w nowej kolumnie w tabeli 'komentarze', ale z miernym skutkiem, bo dodałem później do tego wszystkiego JOIN i niby działało poprawnie, ale chyba coś źle napisałem, bo jeśli admin wstawił komentarz to owszem - jego nick był wyróżniony, ale automatycznie były wyróżnione także pozostałe, nawet te, które praw administracyjnych nie posiadają. I dlatego piszę, że utkwiłem w martwym punkcie. Ten post edytował aroox 7.10.2015, 12:02:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
A więc tak:
test2.php#11
zamiast $nick musi być ID USERA, jak nie masz w sesji to musisz sobie wyciągnąć z bazy, ale powinieneś ID też trzymać w sesji #19
przy okazji, nie powinieneś nigdy używać @, chyba, że masz ku temu jakieś powody, typu znak od samego Boga. i później wyświetlanie: #23 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
Super, działa świetnie!
Dzięki wielkie (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 07:16 |