Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]kod PHP w zmiennej
Wilwarin
post 16.09.2012, 19:53:18
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
Szymciosek
post 16.09.2012, 19:57:42
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 16.09.2012, 20:05:43
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 16.09.2012, 20:15:11
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 16.09.2012, 22:14:34
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 16.09.2012, 22:57:12
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 17.09.2012, 07:14:27
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 17.09.2012, 08:17:23
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----




--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
markonix
post 17.09.2012, 08:54:51
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 17.09.2012, 09:37:44
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.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
czychacz
post 17.09.2012, 12:14:27
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 17.09.2012, 13:40:09
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 smile.gif

Ten post edytował Wilwarin 17.09.2012, 13:56:42
Go to the top of the page
+Quote Post
erix
post 17.09.2012, 14:47:12
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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Wilwarin
post 17.09.2012, 14:53:36
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 17.09.2012, 15:33:00
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 17.09.2012, 16:55:06
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


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
erix
post 18.09.2012, 12:39:33
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Wilwarin
post 20.09.2012, 09:01:57
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 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 tongue.gif
Go to the top of the page
+Quote Post
erix
post 20.09.2012, 12:53:10
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 07:08