Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zablokowanie edycji tekstu pomiedzy znacznikami <?php ... ?> w textarea
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
negusik
Witajcie,
Szukam jakiegoś rozwiązania które pomogło by mi w edycji zawartości drobnych plików php z zawartoscia php/html.

Edycja odbywa się poprzez zgranie zawartosci pliku do zmiennej oraz wyswietlenie jej w polu <textarea>.

Przykładowy kod pliku:
CODE
<p><a href="/" title="Strona główna">Strona główna</a><a href="sitemap.html" title="Mapa strony">Mapa strony</a></p>
<div id="mm2">
<ul>
<?php foreach($links as $link => $name): ?>
<li><a href="<?php echo htmlspecialchars($link); ?>" title="<?php echo htmlspecialchars($name); ?>"><?php echo htmlspecialchars($name); ?></a></li>
<?php endforeach; ?>
</ul>
</div>


Użytkownik ma możliwość zapisania zawartosci textarea po swojej edycji do pliku z rozszerzeniem .php

Chciałbym dać użytkownikowi możliwość edycji tylko tekstu w textarea który nie znajduje się w znacznikach kodu <?php ... ?> - ma to na celu, żeby umyślnie lub pomyłkowo nie popsuł działania pliku na serwerze - może modyfikować wygląd i statyczna treść.
kmike
Generalnie użytkownik ma mieć możliwość zmiany wyglądu strony? W takim wypadku lepszym rozwiązaniem powinno być umożliwienie edycji niektórych z elementów stylu w css.
negusik
Abyśmy się zrozumieli rozwiązanie ma być takie jakie jest.
Użytkownik może dodawać co chce, zmieniać co chce oprócz kodu php.
Myślę po prostu o jakimś skrypcie js, który po kliknieciu miedzy tagami <?php ?> lub w nie wyswietla alert i nie pozwala nic zmienic miedzy tymi znacznikami w textarea. Taki anioł stróż kodu PHP.
Wicepsik
Cytat(negusik @ 5.06.2010, 17:42:30 ) *
Myślę po prostu o jakimś skrypcie js, który po kliknieciu miedzy tagami <?php ?> lub w nie wyswietla alert i nie pozwala nic zmienic miedzy tymi znacznikami w textarea. Taki anioł stróż kodu PHP.

A jak ktoś wyłączy javascripta to już nie ma stróża rolleyes.gif
Van Pytel
A nie lepiej textarea dac jako zewnetrzny plik? np txt lub baze?
inaczej mowiac w polu textarea byla bylby pobierany "text" z pliku zewnetrznego lub bazy.

Tez mozna pobawic sie w ajaxie.
erix
A po co tak?

Zamieniaj ten kod na jakiś tag, wypluwaj zawartość do użytkownika w ten sposób i potem zamieniaj przy zapisie. Na co ma userowi cieszyć oko, nie musi wszystkiego wiedzieć (a nawet nie powinien):

  1. Poprzez preg_replace_callback wyłuskujesz kod z ciągu do edycji, funkcja callbacka wrzuca go do jakiegoś klucza w sesji, np. code1
  2. do użytkownika trafia mniej więcej coś takiego:
    1. sdfjhasdfkjas dfasdfasdf sd <code1> sdgfdfgsdfgsdfg
  3. przy zapisie zamieniasz te tagi na zawartość trzymaną w sesji
negusik
Dzieki @erix za konkretną dobra odpowiedź, własnie też doszedłem do tego pomysłu. Tylko bede musiał też sprawdzić po wysłaniu formularza czy user ilosc pseudo kodu PHP - code1, code2, code3 itp sie zgadza z tym co trzymam zeby wpuscic do wyniku. Przy okazji mysle o JS sprawdzajacemu na bierząco czy ilość pseudo kodu php sie zgadza z wartoscia poczatkowa.
erix
A po co ma się to zgadzać? Przy preg_replace_callback sprawdzasz, czy klucz jest w tablicy i tyle.
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.