Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]Własny system zmiany treści na stronie www - czy zgodny z etyką tworzenia www
Forum PHP.pl > Forum > Przedszkole
Bednarus3
Witam.
Wymyśliłem sobie sposób na zmianę treści (tekstu), umieszczonego na stronie napisanej w HTML i CSS. Całość odbywa się z poziomu PHP. Sprawa wygląda tak:
Jest to taka wstępna, w najprostszej postaci wersja. Otwieram do odczytu plik 'html' np.: index.html. Ładuję (na chwilę obecną) całą zawartość do textarea. Następnie zmieniam w odpowiednich divach to co chcę zmienić i zapisuję zawartość textarea do pliku, w tym przypadku index.html . I git. Ogólnie działa. Teraz pytanie:
Czy takie rozwiązanie jest akceptowalne patrząc od strony bezpieczeństwa, półprofesjonalności i w ogóle. Po prosu nie chcę tworzyć strony w PHP i odpowiednie treści wstawiać z pliku czy tam MySQL i tylko zmienić rekordy w bazie, albo pliku. Założenie jest takie, że strona ma być w pełni statyczna z możliwością wprowadzania zmian w treści (a raczej tylko tekście).
wNogachSpisz
Cytat(Bednarus3 @ 5.04.2011, 20:38:30 ) *
Otwieram do odczytu plik 'html' np.: index.html. Ładuję (na chwilę obecną) całą zawartość do textarea. Następnie zmieniam w odpowiednich divach to co chcę zmienić i zapisuję zawartość textarea do pliku, w tym przypadku index.html . I git. Ogólnie działa.

Jako prosty człowiek, żeby się nie chwalić - prosty chłop...
Nic z tego nie rozumiem.

Napisz co chcesz osiągnąć..
Przetłumaczyć na inny język?

Jeśli już traversujesz po DOMie z php, to użyj PHP:DOM..
JoShiMa
Cytat(Bednarus3 @ 5.04.2011, 19:38:30 ) *
Witam.
Wymyśliłem sobie sposób na zmianę treści (tekstu)


Masz na myśli panel administracyjny do zarządzania treścią stron? Jeśli tak to takie bazy tekstowe to w zeszłym stuleciu wyszły z obiegu. Teraz nie trzyma się treści w plikach HTML tylko w bazie.

Do grzebania w plikach html, nie potrzeba specjalnego panelu. Wystarczy dobry edytor obsługujący ftp.
Bednarus3
To nie ma być baza danych ani nic takiego. Chodzi o prostą zmianę tekstu na statycznej stronie napisanej tylko w HTML i CSS. Załóżmy czysto teoretycznie. Mój tata to prosty facet i ma jakąś tam firmę. Jakiś czas temu posmarował ileś tam zł za stworzenie strony www. W pełni statycznej tylko HTML i CSS. I teraz mówi, że chce zmieniać co jakiś czas pewne informacje, np. na stronie "oferta.html". FTP to dla niego czarna magia i chce, żeby mógł to robić w przeglądarce. A ja nie mam najmniejszej ochoty przerabiać jego szablonu do jakiegoś tam CMS'a. Wymyśliłem sobie, że zrobię prosty edytor w PHP, w którym tato będzie mógł edytować plik podstrony "oferta.html". Cała ta historia jest czysto teoretyczna. Chodzi o zobrazowanie użyteczności tego. Stąd pytanie. Czy takie rozwiązanie nie jest sprzeczne z zasadami tworzenie serwisów www. Chodzi o bezpieczeństwo, profesjonalność i takie tam. Załóżmy, że chciałbym potem tworzyć takie strony www, sprzedawać i czy takie rozwiązanie nie trąca tandetą taką, że wstyd by było w ogóle oferować coś takiego.
Turson
Równie dobrze zawartośc pliku index.html możesz dodać do bazy danych, w samym pliku pobierać te dane z bazy, tak samo w panelu admina.
Milion razy bezpieczniejsze i lepsze.
Bednarus3
Chodziło mi o to, żeby strona pozostała statyczna. Wiem, że rozwiązanie z bazą danych jest lepsze. Szukam alternatywy.
wNogachSpisz
Jeśli dobrze zrozumiełem, chcesz zrobić edytor wizualny strony, gdzie przy pomocy JavaScript zamienisz bloki obejmujące treść tekstową na elementy textarea.
Po wprowadzeniu zmian wysyłasz jako formularz do skryptu PHP który zapisuje zmiany w pliku .html

Taka koncepcja całkiem dobrze wytrzymuje krytykę, ciekawy pomysł na edytowanie treści,
łatwy w implementacji i elastyczny.
Musisz tylko z góry sporządzić listę selektorów wspomnianych bloków obejmujących, ich automatyczne wykrycie będzie zbyt trudne..

Pomysłu na trzymanie treści w bazie danych pozwole sobię nie komentować...

Popraw mnie proszę jeśli źle zorzumialem.
Turson
Również do MySQL możesz zaimportować całą zawartość index a potem ją otworzyć/edytować.
Bednarus3
Cytat(wNogachSpisz @ 5.04.2011, 20:48:05 ) *
Popraw mnie proszę jeśli źle zorzumialem.

Dorze rozumiesz, tylko do edytora ładuję wszystko z pomocą PHP. Zaraz spróbuję to pokazać na działającym przykładzie. Na razie jest to wersja bardzo prymitywna i ładuje całą zawartość pliku do edytora, ale docelowo ma ładować tylko tekst z wybranego diva, którego tekst ma być zmieniony.
Teraz wspomniany przykład:
jest sobie plik index.html i leży on sobie na www.bed-comp.za.pl
Teraz uruchamiając www.bed-comp.za.pl/form.php uruchomi się formularz w którym wyświetli się zawartość pliku index.html, w którym można zmienić zawartość tego pliku. Pomysł powstał dzisiaj, więc widać cały plik. Docelowo pokaże się tylko zawartość diva o id = tresc. Teraz zmieniamy "bla bla bla" na "ble ble ble" w obszarze tego diva, klikamy "Wyślij" i gotowe. Plik index.html się nadpisał. Teraz wchodząc na www.bed-comp.za.pl mamy "ble ble ble" zamiast "bla bla bla"
wNogachSpisz
Wszystko?
Wszystko między znacznikiem HTML?
Wszystko między znacznikiem BODY?

IMO bez sensu, osoba edytująca będzie musiała przebić się przez gąszcz znaczników HTML.
Ich naruszenie spowoduije nieprawidłowe wyświelenie strony, czego próba naprawy może byc trudna.

Dlatego polecam robić to po pierwsze tylko względem wybranych elementów obejmujących, po drugie z poziomu javascript, gdzie możesz latwo określić wielkość tych elementów, łatwo zamienić je na textarea.
PHP uzyj tylko do zapisanai zmian.

Gotów jestem coś takiego napisać pod JS jeśli chcesz.
Tylko nie wrzucaj żadnego kodu, bo sobie pójde tongue.gif
Bednarus3
Cytat(wNogachSpisz @ 5.04.2011, 21:04:51 ) *
Wszystko?
Wszystko między znacznikiem HTML?
Wszystko między znacznikiem BODY?

Tak nie będzie. Do edycji będzie tylko tekst widoczny na stronie. Po prostu podczas ładowania do edytora cała reszta zostanie usunięta. Zostanie sam tekst zawarty w dive, którego treść chcemy zmienić. Żadnych znaczników htmlowych nie będzie.
JoShiMa
Cytat(Bednarus3 @ 5.04.2011, 20:39:29 ) *
To nie ma być baza danych ani nic takiego. Chodzi o prostą zmianę tekstu na statycznej stronie napisanej tylko w HTML i CSS.

Naprawdę Wystarczy Ci dobry edytor do przystosowany do pracy zdalnej. Po co wynajdować koło?


Cytat(Bednarus3 @ 5.04.2011, 20:39:29 ) *
Załóżmy, że chciałbym potem tworzyć takie strony www, sprzedawać i czy takie rozwiązanie nie trąca tandetą taką, że wstyd by było w ogóle oferować coś takiego.

Trąca. Tworzyć i sprzedawać to trzeba proste i zgrabne CMSy.
Kuba707
Trochę się podepnę pod temat. Będę za parę dni zaczynał robić również prostą stronę. Jakiś szablon, 4 podstrony, dla prostej małej firmy. No i zaproponowałem klientowi taką możliwość edycji podstron.
No i teraz się zastanawiam: baza czy coś innego? Tutaj w temacie cały czas mówicie o bazie. Na serio nawet przy tak małych stronach warto robić bazę danych?
Bednarus3
Cytat(JoShiMa @ 5.04.2011, 21:24:58 ) *
Naprawdę Wystarczy Ci dobry edytor do przystosowany do pracy zdalnej. Po co wynajdować koło?

Muszę konieczne zmienić wpis na stronie. Jestem u kumpla, a mój kolega pozwala mi tylko korzystać z przeglądarki www i nie mam dostępu do jakiegokolwiek klienta ftp. Z założenia strona ma być statyczna, a zgrabne CMSy to już przynajmniej PHP i MySQL

Cytat(Kuba707 @ 5.04.2011, 21:29:28 ) *
Tutaj w temacie cały czas mówicie o bazie.

Kolego czytaj uważnie. W tym temacie nie ma nic co świadczy, że w tym pomyśle użyta została jakakolwiek baza.
JoShiMa
Cytat(Bednarus3 @ 5.04.2011, 21:35:44 ) *
Muszę konieczne zmienić wpis na stronie. Jestem u kumpla, a mój kolega pozwala mi tylko korzystać z przeglądarki www

No nie żartuj...


Cytat(Bednarus3 @ 5.04.2011, 21:35:44 ) *
Kolego czytaj uważnie. W tym temacie nie ma nic co świadczy, że użyta została jakakolwiek baza.

1. Koleżanko
2. Czytam uważnie
3. Nadal uważam, że strony oparte na czystym HTMLu to przeżytek. Nadają się tylko na wizytówki w których zmienia się coś raz na sto lat.

Nie wściekaj sie tylko dlatego, że ktoś nie pieje z zachwytu nad Twoim pomysłem. Pisząc posta na forum musiałeś sie liczyć z tym.
Fifi209
Cytat(JoShiMa @ 5.04.2011, 21:00:03 ) *
Teraz nie trzyma się treści w plikach HTML tylko w bazie.

Jeżeli jemu faktycznie chodzi o jedną podstronę to nie widzę powodu, dla którego miałby angażować bazę danych, dodatkowo tracić czas procesora i zasoby typu ram.

Cytat(TursoN @ 5.04.2011, 21:40:10 ) *
Równie dobrze zawartośc pliku index.html możesz dodać do bazy danych, w samym pliku pobierać te dane z bazy, tak samo w panelu admina.
Milion razy bezpieczniejsze i lepsze.

Cytat(TursoN @ 5.04.2011, 21:48:42 ) *
Również do MySQL możesz zaimportować całą zawartość index a potem ją otworzyć/edytować.


Uparty na MySQL, w przypadku strony która ma kilka podstron (zliczyć na palach ręki) nie ma sensu używania bazy danych, jak wyżej pisałem jest to tracenie zasobów i czasu procesora.

Co do bezpieczeństwa - dlaczego sądzisz, że baza to rozwiązanie bezpieczniejsze? To tam właśnie początkujący najwięcej błędów popełniają, dopuszczają do SQL Injection. W momencie, gdy będzie mógł na sztywno edytować tylko jeden statyczny plik, rozwiązanie drugie wydaje mi się jak najbardziej bezpieczniejsze.
Lepsze - nie strzelajmy do muchy z armaty, jeżeli to byłoby coś większego to wtedy jest sens.

@edit
Joshima, gdybyś doczytała to napisał "kolego" bo nie cytował wtedy Ciebie a Kuba707
Bednarus3
Cytat(JoShiMa @ 5.04.2011, 22:34:40 ) *
1. Koleżanko
2. Czytam uważnie

Akurat czytasz uważnie he, he. Zauważ, że tak napisałem pod cytatem kolegi Kuba707, co świadczy, że pisałem do niego. Ale skoro Ty uznałaś, że to było do Ciebie to znaczy, że i Ty czytasz bez zrozumienia. tongue.gif Poza tym Twoja agresywna wypowiedź również świadczy, że nie zrozumiałaś co tu jest napisane. Przecież ja wcale się nie wściekam tylko czekam na konstruktywną krytykę. Na razie mam Twoją opinię, która stwierdza, że to słaby pomysł i opinię kolegi wNogachSpisz, który uważa, że to ciekawy pomysł. Także ZA i PRZECIW wynik 1:1

Edit:

ZA i PRZECIW wynik 2:1
JoShiMa
Cytat(fifi209 @ 5.04.2011, 22:38:17 ) *
Jeżeli jemu faktycznie chodzi o jedną podstronę to nie widzę powodu, dla którego miałby angażować bazę danych, dodatkowo tracić czas procesora i zasoby typu ram.

Jemu chodziło, jak sam napisał, o produkowanie takich stron i sprzedawanie ich ludziom. Brrrr..
Bednarus3
Cytat(JoShiMa @ 5.04.2011, 23:08:49 ) *
Jemu chodziło, jak sam napisał, o produkowanie takich stron i sprzedawanie ich ludziom. Brrrr..

No i masz. Dalej problemy ze zrozumieniem. Napisałem czysto teoretycznie. Czekam na opinie. Zważywszy, że i tak jeszcze spora ilość stron to jak napisałaś wizytówki, to pomysł może mieć jakieś szanse na powodzenie. Napisałem tutaj bo nie chciałbym wciskać ludziom jakiegoś bubla, o ile miałbym jakikolwiek zamiar tworzyć strony dla kogokolwiek. Na razie nie zrobiłem żadnej dla nikogo i na chwilę obecną nawet nie mam zamiaru. Poza tym na razie tylko Ty uważasz, że to słabe. Więc czekam na dalsze opinie.
wNogachSpisz
Ale rzeście naspamowali....

Nasze wizje wyraźnie się rozjechały.
Jeśli nie chcesz podmieniać divów na textarea w javascript, to ja się odmeldowuje, bo tylko takie rozwiązanie będzie w moim odczuciu sensowne, innowacyjne, godne uwagi..
Bednarus3
Ale ja chcę podmieniać divy na textarea. To jest właśnie główna koncepcja. Tylko przy pomocy PHP. JS może być tu wykorzystane do obsługi edytora. Usunę ten kod jak Cię tak razi tongue.gif Ale i tak go napisałem zanim mówiłeś, żeby nie zamieszczać kodu tongue.gif
wNogachSpisz
Tylko po co, skoro możesz to zrobić w javascripcie?
Bedzie wydajniej, bezpieczeniej, szybciej, prościej.
Krótko mówiąc lepiej.
JoShiMa
Cytat(Bednarus3 @ 5.04.2011, 23:23:02 ) *
No i masz. Dalej problemy ze zrozumieniem. Napisałem czysto teoretycznie.


Cytat(Bednarus3 @ 5.04.2011, 20:39:29 ) *
Załóżmy, że chciałbym potem tworzyć takie strony www, sprzedawać i czy takie rozwiązanie nie trąca tandetą taką, że wstyd by było w ogóle oferować coś takiego.

Ja doskonale rozumiem co jest napisane i do tego się właśnie odnosi moja opinia. Na własny użytek to nie ma sensu się tak bawić. Na sprzedaż to się IMO nie nadaje.
Bednarus3
Cytat(wNogachSpisz @ 5.04.2011, 23:52:27 ) *
Tylko po co, skoro możesz to zrobić w javascripcie?
Bedzie wydajniej, bezpieczeniej, szybciej, prościej.
Krótko mówiąc lepiej.

Wejdź na stronę http://agerwebedytor.com/php/strona.php?id=10 i luknij na sam dół. Tam są inne funkcje, które łatwo można wykorzystać do obróbki tekstu, bawiąc się znacznikami HTML

:edit

Zrobiłem podstawową wersję, w której można zmieniać tekst zawarty w obrębie trzech bloków <div>. Skrypt obsługujący formularz osuwa wszystkie znaczniki HTML, więc chyba nie da się nic namieszać namieszać. Tekst wprowadzony w formularzu zmiany wyświetli się na stronie. Nie została użyta żadna baza danych.
Działanie można sprawdzić na:
http://bed-comp.za.pl
Dalej proszę o opinie na temat takiego rozwiązania
nekomata
Po 1. http://bed-comp.za.pl się nie ładuje .
Po 2. http://agerwebedytor.com/php/strona.php?id=10 wygląda jak za czasów króla świeczka .
Po 3. Funkcje opisane http://agerwebedytor.com/php/strona.php?id=10 jest na mój gust kopią http://phpkurs.pl/ciagi-znakowe-stringi/ (przykłady są takie same...)
Po 4. Nie oszukujmy się , mogę założyć się o lewą rękę (prawej nie oddam !) że po prostu MySQL albo inne system bazodanowe wydają Ci się trudne , i dlatego tak kombinujesz w koło macieja aby ich uniknąć .

Pozdro.
Bednarus3
Cytat(nekomata @ 9.04.2011, 04:33:36 ) *
mogę założyć się o lewą rękę

Straciłbyś lewą rękę. PHP + MySQL nie jest mi obce. Dostosowywałem pewne forum na phpBB3 dodając kilka rzeczy w bazie i obsługę tego w kodzie. Działa bez zastrzeżeń. W oparciu o bazę sprawa wydaje się o wiele łatwiejsza. W minimalnej postaci wystarczą dwie kolumny 'div_id' i 'tresc'. Żeby otrzymać treść do edycji wystarczy kilka zapytań SELECT tresc WHERE div_id =. Tym sposobem co to zrobiłem, żeby wyciągnąć treść z poszczególnych divów trzeba sporo rzeźbić, żeby wycinając co potrzeba z ciągu znaków. Do tego jeszcze sporo rzeźbienia, żeby później posklejać wszystko do kupy. Założeniem było, ze strona pozostaje statyczna, z wykorzystaniem tylko HTML i CSS, a edycja treści miała się opierać tylko o PHP. Zawsze jedna rzecz mniej, która mogła by się zepsuć w przyszłości. Zawsze można zrobić stronę pseudo statyczną i pobierać treść z bazy, ale nie takie było założenie. Albo znaleźć złoty środek, trzymać treść w bazie i korzystać z niej tylko podczas edycji. A po zmianie umieszczać nową treść w bazie, a na serwer wystawić zmieniony plik HTML.
Cytat(nekomata @ 9.04.2011, 04:33:36 ) *
Usuwaj znaczniki HTML

Użyłem funkcji strip_tag, ale usuwa tylko znaczniki z końca tekstu. sad.gif Chyba nie do końca czaję jak ona działa.

Tak czy owak chyba odejdę od koncepcji.

edit:

http://bed-comp.za.pl/
Poprawiłem usuwanie znaczników HTML. Ogólnie wydaje się działać, ale wymaga jeszcze doszlifowania, o ile jest sens to rozwijać.
Dlatego czekam na opinie. Czy zmiana treści w ten sposób jaki to zrobiłem jest w ogóle akceptowalna?

P.s. Jak zrobić, żeby automatycznie dostosowywać wysokość bloku do sąsiedniego bloku? Jak widać na stronie blok po lewej jest krótszy niż ten po prawej i powstaje dziura.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.