• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak zapisać arykuły html w bazie danych

Object Storage Arubacloud
0 głosów
2,335 wizyt
pytanie zadane 26 stycznia 2016 w SQL, bazy danych przez paulla Nowicjusz (120 p.)
zmienione kategorie 27 stycznia 2016 przez paulla
Witam wszystkich.

Jestem na etapie budowania swojej pierwszej strony internetowej, w której będę między innymi zamieszczał regularnie artykuły dla klientów. Uparłem się, że nie będę korzystał z gotowych cmsów, lecz sam zbuduję taką stronę używając HTML, CSS, PHP i trochę JS. Chęć nauki programowania, ot co.

Problem jest następujący:

Chcę trzymać te artykuły w bazie danych i z niej wysyłać je na stronę, ale artykuły te będą różnej długości, czasem ze zdjęciami, czasem bez. Czasem będe używał tagów <b>, <p>, <h1> i innych, więc jeden artykuł od kolejnego artykułu będzie się różnił wyglądem, strukturą i zawartością.

Layout strony będzie obrobiony głównie w CSS. I teraz nie wiem w jakiej formie trzymać te artykuły w bazie danych, żeby po wywołaniu ich z bazy i wyświetleniu przez przeglądarkę były one od razu "gotowe" do zaprezentowania userom.

Widzę tutaj dwie opcje:

1. Artykuły wraz z kodem html, czyli w wersji gotowej do wyświetlenia wysyłam do bazy danych i wywołuję takie gotowce na stronę, gdzie są wyświetlane przez przeglądarkę.

2. Każdy artykuł trzymam w osobnym pliku article.php, article2.php, article3.php itd. a w bazie danych umieszczam jedynie link do tych plików, który po wywołaniu wyświetli się w przegladarce.

Chciałbym skorzystać z opcji 1, lecz nie wiem jak wysyłać do bazy artykuły z kodem html, by były one poprawnie interpretowane w bazie danych.

Np.:

{

<h1> Tytuł artykułu </h2>

<span> data artykułu: 01-01-2016 </span>

<p> Nagłówek, informacja wstępna </p>

<tekst> Treść artykułu poprzedzielana tagami <p>/<p> </tekst>

<img> zdjęcie </img>

<tekst> Dalsza treść z linkiem do strony <a href="http://www.jakatam....strona.pl"JAKAS STRONA </a></tekst>

<> Ładnie obramowany cytat <>

}

Taki plik, dokładnie tak jak go zapisałem powyżej, wysyłam do bazy danych, a potem wyświetlam go na stronie głównej index.php, która poza tym już ma gotowy layout.

Czy to w ogóle jest optymalne działanie ? Jak CMSy takie jak Wordpress czy Drumal przechowują takie artykuły, posty, newsy w swoich bazach danych ?

Może są inne sposoby, aby uzyskać efekt o który mi chodzi ?

Czytałem trochę na zagranicznych forach i pojawiały się jakieś informację o encjach, kodowaniu i dekodowaniu htmla czy użyciu funkcji --> mysql_real_escape_string <-, lecz nie do końca wiem jakby to miało wyglądać

Proszę o pomoc i dziękuje za wszelkie odpowiedzi.

1 odpowiedź

+2 głosów
odpowiedź 27 stycznia 2016 przez efiku Szeryf (75,160 p.)

Czytałem trochę na zagranicznych forach i pojawiały się jakieś informację o encjach, kodowaniu i dekodowaniu htmla czy użyciu funkcji --> mysql_real_escape_string <-, lecz nie do końca wiem jakby to miało wyglądać

A ja czytałem na naszych krajowych, że zamiast trzymać kod HTML w bazie, możesz trzymać sam tekst... ale? W formacie Markdown. W PHP jedynie co będziesz się bawił, to zamiana tego tekstu na gotowy html, za pomocą parsera ( Około 3 mln pobrań )

composer require michelf/php-markdown

https://github.com/michelf/php-markdown

 

Przykład: 

https://raw.githubusercontent.com/michelf/php-markdown/lib/Readme.md   

https://github.com/michelf/php-markdown/blob/lib/Readme.php ( trochę dziwny kod ) 

 

To jest propozycja moja, ciekawe jakie są innych.

komentarz 27 stycznia 2016 przez Comandeer Guru (601,590 p.)
Tak szczerze, to MD mało pomoże, bo i tak połowę rzeczy trza w nim zrobić przez HTML. Jeśli tylko autor strony będzie pisał artykuły, to nie ma co kombinować i po prostu wrzucać HTML.
komentarz 27 stycznia 2016 przez paulla Nowicjusz (120 p.)

dzięki za odpowiedzi, przynajmniej wiem mniej więcej w którym kierunku iść.

Natomiast nie wiem, jak moge wrzucić taki gotowy tekst do bazy danych, zeby nie bylo zadnych błędow

Może utworzyć zmienną, żeby go przechowywała i tą zmienną wysłac do bazy danych?

np.

$zmiennatekst = "

<h1> Tytuł artykułu </h2>

<span> data artykułu: 01-01-2016 </span>

<p> Nagłówek, informacja wstępna </p>

<tekst> Treść artykułu poprzedzielana tagami <p>/<p> </tekst>

<img> zdjęcie </img>

<tekst> Dalsza treść z linkiem do strony <a href="http://www.jakatam....strona.pl"JAKAS STRONA </a></tekst>

<> Ładnie obramowany cytat <> ";

Zmienna będzie zdolna do przechowywania takich wartosci ?

Oczywiście wszystkie cudzysłowia, slashe // itp postaram się zapisać w prawidłowy sposób, nie tak jak w powyższym. To tylko przykład.

komentarz 27 stycznia 2016 przez Schizohatter Nałogowiec (39,600 p.)
Po prostu dane z pola textarea poprzez tablicę POST zapisz w zmiennej, użyj mysql(i)_escape_string lub pdo, prepared statements czy czego chcesz tam użyć do zabezpieczania i poza to - nie zastanawiaj się co jest w tej zmiennej. PHP i baza same zadbają, żeby wszystko było jak trzeba. Jak potem pobierzesz dany wpis z bazy, to wystarczy że wyświetlisz (echo) zawartość komórki z kodem, a przeglądarka przerobi ten HTML jak trzeba.
komentarz 27 stycznia 2016 przez paulla Nowicjusz (120 p.)
Ok, dzieki wielkie za pomoc.

Jeszcze jedna rzecz o której nie wspomniałem na początku.

Zanim user/klient przejdzie do wyświetlenia całego artykułu, będzie musiał kliknąć w link.

Ja na stronie głównej będę chciał umieścić te artykuły w formie np. kafelek ze zdjęciem i krótkim opisem, w który można będzie kliknąć, następnie przeglądarka przenosi usera/klienta do kolejnej strony czy podstrony, w której będzie wyświetlony cały artykuł.

Czy te artykuły w całości muszą więc istnieć jako fizyczne pliki w katalogu na moim serwerze skoro będą one linkami czy mogą one istnieć tylko wirtualnie.

np.

www.mojastrona...pl/index.php - tutaj są kafelki z artykułami np. article1, article2, article3.

User klika w article3 i zostaje przekierowany pod adres:

www.mojastrona...pl/article3

Jak można to zrobić, żeby nie musieć tworzyć wraz z każdym artykułem nowego "fizycznego" pliku w moim folderze, który trzymam na serwerze.
komentarz 27 stycznia 2016 przez Schizohatter Nałogowiec (39,600 p.)
Zainteresuj się parametrami GET. Dzięki temu możesz np. operować na id artykułu
mojastrona.pl/artykul.php?id=5
a potem w pliku artykul.php
$artykul_id = $_GET['id'];

i wyciągasz z bazy artykuł na podstawie jego id.
komentarz 27 stycznia 2016 przez paulla Nowicjusz (120 p.)
Dzięki wielkie za pomoc ;)

Zabieram się do roboty

Na pewno pochwalę się efektami, ewentualnie ich brakiem.

pozdrawiam

Podobne pytania

–1 głos
1 odpowiedź 149 wizyt
+2 głosów
2 odpowiedzi 619 wizyt
pytanie zadane 26 września 2021 w SQL, bazy danych przez `Krzychuu Stary wyjadacz (13,940 p.)
0 głosów
4 odpowiedzi 176 wizyt
pytanie zadane 14 października 2022 w SQL, bazy danych przez PtaQ Początkujący (280 p.)

92,583 zapytań

141,433 odpowiedzi

319,668 komentarzy

61,966 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...