Kategoria: PHP

Formularz z wykorzystaniem Lightbox, PHP i Ajax. Część 2 – back-end

W pierwszej części tego artykułu pokazałem jak stworzyć prosty formularz w HTML i wyświetlić go w lightbox. W drugiej części zajmiemy się walidacją i zapisywaniem danych pochodzących z formularza. Naszym podstawowym celem jest stworzenie bazy danych, w której będziemy przechowywać dodane wartości, zabezpieczyć się przed niechcianymi wartościami w polach formularza oraz bezpieczny zapis danych w PHP. Oto charakterystyczne cechy, jakie chcemy uzyskać od naszego formularza:

  • proste działanie
  • użyteczna walidacja danych
  • bezpieczeństwo pod kątem SQL Injection i XSS
  • maksymalne wykorzystanie możliwości, jakie daje nam jQuery i AJAX

Zobacz demo.

Baza danych

Tworzymy bardzo prostą bazę danych zawierającą identyczne pola jak nasz formularz, plus dodatkowa kolumna id z kluczem głównym. Tabele taką, możemy stworzyć ręcznie w dostarczanych przy bazie narzędziach np. phpMyAdmin, lub po prostu wykonać w php podane niżej zapytanie.

CREATE TABLE `links` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`url` VARCHAR( 255 ) NOT NULL ,
`desc` TEXT NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

Kod JavaScript

Potrzebna nam jest funkcja, która po naciśnięciu przycisku „Dodaj”, wyśle zapytanie do serwera, w którym nasze dane zostaną sprawdzone i jeżeli wszystko będzie w porządku, dodane do bazy danych. W przeciwnym wypadku wyświetlimy błędy, które należy poprawić przed ponownym zatwierdzeniem formularza. Realizacje tych zadań rozpoczniemy od prostej obsługi kliknięć w nasz przycisk na końcu formularza:

$("button#save").click(function(){
return false;
});

Zwrócenie wartości false, powoduje zatrzymania domyślnego wykonania działania przycisku. W naszym przypadku zatrzymuje automatyczne wysłanie zapytania metodą POST, przez przeglądarkę. Opcja ta nie jest przez nas pożądana, ponieważ chcemy sami wykonać żądanie za pomocą metody $.ajax dostępnej w jQuery. W tym momencie można się zastanawiać, dlaczego nie zrezygnować z type=”submit”? Chodzi o to, iż planując tego typu formularze, dobrym zwyczajem jest pomyśleć o osobach, które nie mają włączonej obsługi JavaScript w swojej przeglądarce, dla nich cały nasz poniższy kod JavaScript zostanie zignorowany. Dlatego powinniśmy, przynajmniej w podstawowy sposób, umożliwić skorzystanie z formularza. Jak łatwo się domyślić w naszym przypadku brak JS nie wpłynie w żaden sposób na działanie formularza, ponieważ zwyczajnie go nie zobaczymy w związku z wykorzystaniem Colorbox. Pomimo to, w artykule częściowo uwzględniona zostanie opcja wyłączonej obsługi JavaScript.

Czytaj dalej...

Method Chaining w PHP

Chciałbym poświęcić chwilę bardzo ciekawej technice programowania, która z nie wiadomych dla mnie względów jest często nie doceniana i pomijana przy projektowaniu klas. Już na samym wstępie powinienem zaznaczyć, że ta technika nie jest konieczna do prawidłowego działania programu, jej głównymi zaletami jest zwiększenie czytelności kodu i częściowe jego skrócenie. Warto też wiedzieć, że Method chaining jest jedną z implementacji wzorca Fluent interface, zainteresowanych po więcej informacji na ten temat odsyłam do Wikipedii.

Implementacja, czyli return $this

Ponieważ, zagadnienie jest stosunkowo proste od razu przejdę do krótkiego przykładu przedstawiającego zastosowanie tej techniki. Według mnie naturalnym przykładem jest klasa obsługująca maile:

Czytaj dalej...

Skróty artykułów w systemach zarządzania treścią

Niejednokrotnie pisząc aplikację internetową spotykamy się z problemem wstępów do artykułów, wpisów na blogach czy aktualności, których pełna treść ukazuje się dopiero po kliknięciu w odpowiedni link. Chciałbym poświęcić chwile na przedstawienie trzech, prostych w implementacji sposobów, dzięki którym otrzymamy możliwość tworzenia takich skrótów zawartości naszej strony.

Pole skrótu w bazie

Jest to chyba najprostsze rozwiązanie, które sprowadza się do stworzenia dodatkowego pola w bazie danych, w którym będzie przechowywana skrócona wersja treści. Dzięki temu na stronie z listą artykułów, czy newsów pobieramy z bazy tylko wartość pola, w którym przechowujemy krótką wersję (np. introtext), a gdy chcemy wyświetlić szczegółową informacje to pobieramy dane z drugiego pola (fulltext).

Artykuły w bazie

Zalety:

  • łatwa implementacja, skrót artykułu otrzymujemy natychmiast bez dodatkowych ingerencji w zapytanie SQL
  • skrót nie musi zawierać fragmentu tekstu pełnego, oba pola mogą zawierać niezależną od siebie treść.

Wady:

  • powstaje kolejne pole w panelu administracyjnym do wypełnienia, często będące kilkoma akapitami tekstu pełnego.

Pierwsze n znaków

Jest to również bardzo prosta metoda, której podstawową zaletą jest całkowita automatyzacja tworzonego skrótu tekstu. Właścicielowi serwisu pozostaje tylko ustawienie do ilu znaków chciałby ograniczyć skrót. Implementacja takiego rozwiązania może być przeprowadzona w dwojaki sposób, po stronie serwerowej np w PHP:

Czytaj dalej...

Copyright © 2024 Webnote

Projekt i wykonanie: Tworzenie stron internetowych

Dodaj link