Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]kod PHP w zmiennej
Wilwarin
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Da się wyświetlić kod php przez echo lub tym podobne, żeby był potem odpalany przez przeglądarkę? Np. jeśli kod jest ściągany z bazy danych do zmiennej?
Gdy chciałem pobrać kod z bazy MySql,
  1. <?
było zamieniane przez przeglądarkę w
  1. <!--?
przez co kod był zwyczajnym tekstem na stronie. Da się jakoś to obejść?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Pokaż coś więcej...
Rozszerzenie pliku masz *.php ?
Go to the top of the page
+Quote Post
Wilwarin
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Tak, plik jest PHP.

Kod php jest pobierany z bazy danych pętlą i wkładany w zmienną razem z HTMLem (w zmiennej $barcontent próbowałem wkładać kod z <? - wtedy znacznik był zamieniany w komentarz, a gdy kod był bez <? ?> był wyświetlany jako zwykły tekst)

  1. $lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';


wyświetlany jest przez
  1. <? echo $lbarstring;?>


używam WebServ 2.0
[/quote]
Go to the top of the page
+Quote Post
Szymciosek
post
Post #4





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Ogólnie jest tak, że jeśli ściągasz dane z bazy do zmiennej, to na końcu masz zmienną z zawartością np

  1. $variable = "to są dane z bazy " . $zmienna_z_bazy;
  2.  
  3. echo "zmienna pomiędzy $variable tekstem"; //output: zmienna pomiędzy to są dane z bazy tekstem


W Twoim przypadku nie możesz mieć w bazie czegoś takiego jak <? czy <?php, miej tam sam tekst czy to co chcesz ściągnąć, ale nie te znaczniki od php, gdyż już je masz (przynajmniej powinieneś) w pliku html.php ponieważ bez tego nie jesteś w stanie odpalić skryptu, który ściąga dane z bazy.
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(Wilwarin @ 16.09.2012, 20:53:18 ) *
Da się wyświetlić kod php przez echo lub tym podobne, żeby był potem odpalany przez przeglądarkę?

eval, ale lepiej przemyśl logikę Twojej aplikacji zanim tego użyjesz.
Go to the top of the page
+Quote Post
Wilwarin
post
Post #6





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


ale tu nie chodzi o same zmienne, ale także o całe linijki kodu.
Chcę zrobić edytowanie podstron z poziomu strony, każda strona będzie przechowywana w bazie danych jako jeden wpis. Strona powinna poprawnie wyświetlać HTML jak i odpalać kod PHP, a echo niestety wyświetla tylko kod. Czy w tym przypadku eval będzie dobrym rozwiązaniem?
Go to the top of the page
+Quote Post
markonix
post
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Będzie działającym ale na pewno nie dobrym bo nikt z takiego rozwiązania nie korzysta.

Po co we wpisach potrzebny jest PHP? Można to zrobić na wiele sposobów.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Cytat(toaspzoo @ 17.09.2012, 09:17:23 ) *

A to niby po co? Gdzie kolega mówił o WYŚWIETLANIU kodu PHP?
Go to the top of the page
+Quote Post
!*!
post
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Zacznijmy od tego co to znaczy wyświetlany?

Jest różnica między:

  1. $lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';

a
  1. $lbarstring .= "<div class=\"vmenu\">$barcontent</div>";


Wilwarin - zadaj poprawnie pytanie.
Go to the top of the page
+Quote Post
czychacz
post
Post #11





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


może źle zrozumiałem pierwszy post, ale może chodzi autorowi o htmlentities?
  1. $danezbazy = htmlentities($danezbazy);
  2. echo $danezbazy
Go to the top of the page
+Quote Post
Wilwarin
post
Post #12





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Cytat(!*! @ 17.09.2012, 09:37:44 ) *
Zacznijmy od tego co to znaczy wyświetlany?

Jest różnica między:

  1. $lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';

a
  1. $lbarstring .= "<div class=\"vmenu\">$barcontent</div>";


Wilwarin - zadaj poprawnie pytanie.


Przepraszam, już się precyzuję. Chcę, żeby kod pobierany z bazy danych był 'odpalany' przez przeglądarkę a nie wyświetlany jako tekst, np. jak z bazy jest ściągane
  1. echo date("d.m.y");
to chcę żeby po włożeniu tego do $lbarstring jako $barcontent, a potem wyświetlając $lbarstring była wyświetlana data w divie, a nie komenda.
Sorry, że trochę pogmatwałem ale już sam się w tym gubię x)

Cytat(markonix @ 17.09.2012, 07:14:27 ) *
Będzie działającym ale na pewno nie dobrym bo nikt z takiego rozwiązania nie korzysta.

Po co we wpisach potrzebny jest PHP? Można to zrobić na wiele sposobów.


To jak inaczej mogę odpalić kod który jest w zmiennej? Czy można inaczej to zrobić? Chcę żeby podstrony w PHP były przechowywane w bazie danych. Muszę chyba ściągnąć PHP fusion i zobaczyć w jaki sposób są tam wyświetlane dodatkowe strony.

@edit PHP Fusion v7 używa
  1. eval("?>".stripslashes($cp_data['page_content'])."<?php ");

zaraz to bardziej obejrzę, ale jak widać ktoś jednak z tego korzysta (IMG:style_emoticons/default/smile.gif)

Ten post edytował Wilwarin 17.09.2012, 13:56:42
Go to the top of the page
+Quote Post
erix
post
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
zaraz to bardziej obejrzę, ale jak widać ktoś jednak z tego korzysta

eval, to zło.

Nawet jeśli wydaje Ci się, że nie, patrz: zdanie wyżej.

  1. dziura w bezpieczeństwie
  2. ślamazarne wykonanie
  3. brak możliwości akceleracji
  4. brak kontroli
Go to the top of the page
+Quote Post
Wilwarin
post
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Cytat(erix @ 17.09.2012, 14:47:12 ) *
eval, to zło.

Nawet jeśli wydaje Ci się, że nie, patrz: zdanie wyżej.

  1. dziura w bezpieczeństwie
  2. ślamazarne wykonanie
  3. brak możliwości akceleracji
  4. brak kontroli

Cytat(Wilwarin @ 17.09.2012, 13:40:09 ) *
To jak inaczej mogę odpalić kod który jest w zmiennej? Czy można inaczej to zrobić? Chcę żeby podstrony w PHP były przechowywane w bazie danych.

Go to the top of the page
+Quote Post
markonix
post
Post #15





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Jeden z prostszych sposobów to umieszczasz w kodzie swoje znaczniki w dowolnej formie np. [SHOW_DATE] i przed wyświetlaniem tego podmieniasz wszystkie znaczniki na odpowiednie wartości. Najprościej str_replace, chyba, że może być tego więcej, wtedy tworzysz rozwiązanie bardziej elastyczne.
Go to the top of the page
+Quote Post
!*!
post
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


1. w bazie nie trzymasz kodu PHP
2. jak pisałem użyj cudzysłowu jeśli chcesz wykonać kod w zmiennej.
3. użyj jakiegoś systemu szablonów, lub tak jak napisał markonix stwórz sobie własne znaczniki i podmień je przez preg_replace
Go to the top of the page
+Quote Post
erix
post
Post #17





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
To jak inaczej mogę odpalić kod który jest w zmiennej? Czy można inaczej to zrobić? Chcę żeby podstrony w PHP były przechowywane w bazie danych.

Przeprojektuj system, to raz.

Dwa - zastosuj mechanizm sandboksingu - czyt: uruchamiasz skrypt w więzieniu, sprawdzasz, czy nie robi jakiegoś ku-ku w środowisku.
Go to the top of the page
+Quote Post
Wilwarin
post
Post #18





Grupa: Zarejestrowani
Postów: 37
Pomógł: 4
Dołączył: 30.07.2011

Ostrzeżenie: (0%)
-----


Cytat(erix @ 18.09.2012, 12:39:33 ) *
Przeprojektuj system, to raz.

Dwa - zastosuj mechanizm sandboksingu - czyt: uruchamiasz skrypt w więzieniu, sprawdzasz, czy nie robi jakiegoś ku-ku w środowisku.


dzięki, poczytam o tym (IMG:style_emoticons/default/smile.gif)
Myślałem nad przeprojektowaniem systemu i mam pytanie: Czy lepiej było by edytować pliki .php i zapisywać je w folderze? bo zaniechałem trzymania kodu php w bazie danych i jak co to po prostu zrobię statyczną stronę i tyle (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
erix
post
Post #19





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Czy lepiej było by edytować pliki .php i zapisywać je w folderze? bo zaniechałem trzymania kodu php w bazie danych i jak co to po prostu zrobię statyczną stronę i tyle

O to mi mniej-więcej chodzi.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 09:44