ITI #11 – Prosty system artykułów – PHP & MySQL

W tym poradniku dowiemy się jak zbudować portal, na którym użytkownicy będą mogli publikować swoje artykuły / wpisy. Poradnik jest bardzo prosty i przyjemny, ale należy dobrze zrozumieć jak działa kod, ponieważ na zaliczenie poradnika należy wykonać kilka drobnych zmian 🙂

Do rejestracji oraz logowania się użytkowników wykorzystamy kod z poradnika ITI #7 – Prosty system logowania. Jeżeli nie posiadasz kodu z poradnika ITI #7, możesz go pobrać z tego repozytorium na GitHubie.

Przygotowanie

Aby wykonać ten poradnik musisz mieć na komputerze pliki, które używane były w poprzednim poradniku.

Baza Danych

Artykuły będziemy przechowywać w bazie danych. Z poprzednich poradników wiesz już jak dodaje się tabele do bazy danych. Skopiuj poniższy kod SQL i wykonaj go w swojej bazie danych (np. w narzędziu PHP MyAdmin). Jeżeli masz już lokalnie w swojej bazie tabelę users z poradnika ITI #7, to skopiuj jedynie pierwszą część poniższego kodu odpowiedzialną za tworzenie tabeli posts.

W tabeli users przechowywane są dane o użytkownikach, a w tabeli posts dane o postach użytkowników. Zauważ, że w tabeli posts jedna z kolumn to authorid.  To w niej przechowywany będzie identyfikator autora posta. Edytować i usuwać można będzie jedynie własne posty.

Struktura strony

Zanim przejdziemy do dodawania artykułów, dodamy odpowiedni pasek nawigacyjny na górze strony. Zastąp kod pliku index.php następującym:

Dwie małe zmiany należy również wykonać w pliku logowania login.php. Zmiany są zaznaczone w poniższym listingu:

Przeanalizuj dokładnie kod, żeby zobaczyć jakie zamiany zostały wprowadzone. Twój portal powinien działać na tym etapie w następujący sposób:

 

Formularz dodawania i edycji artykułu

Stwórz nowy plik o nazwie form.php. Będzie zawierał formularz dodawania oraz edycji artykułu. Wklej do niego następującą zawartość:

Przeanalizuj kod i szczególną uwagę zwróć na podświetlone linijki. Formularz znajduje się w linijkach 78-90. Jak widzisz, parametr action ustawiony jest na plik form.php. Oznacza to, że formularz dodawania artykułu zostanie wysłany właśnie do tego pliku. Teraz spójrz na linijkę 42. Jeżeli wysłane zostały jakieś dane metodą POST o nazwie submit, to wykona się kod zamieszczony między linijkami 43 i 59. Właśnie tam artykuł wpisany zostaje do bazy danych, a po poprawnym dodaniu artykułu w linijce 53 użytkownik przenoszony jest do pliku index.php. Spróbuj dodać kilka artykułów i zobacz, czy poprawnie zapisują się do bazy danych.

Wyświetlanie artykułów

Po dodaniu artykułu chcemy oczywiście go wyświetlić na stronie głównej. Dodajmy więc pod paskiem nawigacyjnym listę artykułów wraz z przyciskami edycji oraz usuwania własnych artykułów.

Do pliku index.php dodaj podświetlony fragment:

Teraz na stronie głównej pojawiły się dodane wcześniej artykuły. Spróbuj zalogować się na inne konto i zobacz, że przyciski edycji i usuwania widoczne są jedynie przy Twoich artykułach. Ach właśnie… Zajmijmy się teraz edycją i usuwaniem artykułów.

Edycja artykułu

Przycisk edycji przenosi nas pod adres form.php?id=…. Naszym celem jest więc pobrać z bazy danych artykuł o id przekazanym w parametrze pasku adresu oraz wyświetlić go w formularzu, a przy zapisie uważać, żeby nie dodawać nowego artykułu, a jedynie edytować ten o przekazanym id. Wprowadź następujące zmiany w pliku form.php:

Usuwanie artykułów

Przycisk usuwający artykuł przenosi nas na podstronę /deletepost.php?id=…. Stwórzmy plik o nazwie deletepost.php który usuwać będzie artykuł o id przekazanym w pasku adresu:

Podsumowanie

W tych kilku krokach zrobiliśmy prosty portal, w którym użytkownicy mogą nie tylko dodawać swoje artykuły, ale również je edytować oraz usuwać.

Ten poradnik był bardzo prosty i w większości polegał na kopiowaniu i wklejaniu kodu. Ale o to w większości chodzi w programowaniu 🙂 Wpisujesz opis swojego zadania lub problemu w Wyszukiwarce internetowej i kopiujesz gotowe rozwiązanie. W ten sposób bardzo dużo się uczysz. Żeby jednak nie było tak prosto, na zaliczenie tego poradnika musisz sam dodać do niego kilka funkcjonalności:

  1. Wyświetlanie nazwy użytkownika, który dodał artykuł. Aktualnie wyświetla się jedynie jego id.
  2. Stworzyć możliwość podglądu pojedynczego artykułu. Stworzyć nowy plik i nazwać go na przykład showpost.php. W tym pliku po przekazaniu w pasku adresu id artykułu, wyświetlony zostanie tylko ten jeden artykuł.
  3. Dodać przycisk obok każdego artykułu, który przeniesie użytkownika na dodaną w punkcie drugim stronę z podglądem artykułu.
  4. Zabezpieczyć stronę przed usuwaniem i edycją nie swoich artykułów. Aktualnie wystarczy wpisać w pasku adresu deletepost.php?id=(DOWOLNE_ID). Należy dodać sprawdzenie, czy zalogowany użytkownik jest autorem wpisu.
  5. * Ten punkt jest opcjonalny za dodatkowe 5 diamentów. Dodać możliwość komentowania artykułów na podstronie podglądu artykułu. Aby to zrobić dodaj nową tabelę do bazy danych o nazwie comments, która zawierać będzie kolumnę postid. Pod każdym artykułem należy wyświetlić formularz dodawania komentarza oraz wszystkie komentarze, które mają postid taki jak wyświetlany artykuł.

Cały projekt należy spakować do pliku .zip oraz wysłać w formularzu poniżej. Aby dostać 10 diamentów należy wysłać projekt z rozwiązanymi czterema pierwszymi punktami. Za dodatkowe rozwiązanie piątego punktu otrzyma się łącznie 15 diamentów.

Form could not be loaded. Contact the site administrator.
Like
Like Love Haha Wow Sad Angry
5

Dodaj komentarz