Drukowana wersja tematu
Forum PHP.pl _ Przedszkole _ [PHP]kod PHP w zmiennej
Napisany przez: Wilwarin 16.09.2012, 19:53:18
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,
<?
było zamieniane przez przeglądarkę w
<!--?
przez co kod był zwyczajnym tekstem na stronie. Da się jakoś to obejść?
Napisany przez: Szymciosek 16.09.2012, 19:57:42
Pokaż coś więcej...
Rozszerzenie pliku masz *.php ?
Napisany przez: Wilwarin 16.09.2012, 20:05:43
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)
$lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';
wyświetlany jest przez
<? http://www.php.net/echo $lbarstring;?>
używam WebServ 2.0
[/quote]
Napisany przez: Szymciosek 16.09.2012, 20:15:11
Ogólnie jest tak, że jeśli ściągasz dane z bazy do zmiennej, to na końcu masz zmienną z zawartością np
$variable = "to są dane z bazy " . $zmienna_z_bazy;
http://www.php.net/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.
Napisany przez: markonix 16.09.2012, 22:14:34
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.
Napisany przez: Wilwarin 16.09.2012, 22:57:12
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?
Napisany przez: 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.
Napisany przez: toaspzoo 17.09.2012, 08:17:23
http://www.php.net/highlight_string
Napisany przez: markonix 17.09.2012, 08:54:51
Cytat(toaspzoo @ 17.09.2012, 09:17:23 )
http://www.php.net/highlight_string
A to niby po co? Gdzie kolega mówił o WYŚWIETLANIU kodu PHP?
Napisany przez: !*! 17.09.2012, 09:37:44
Zacznijmy od tego co to znaczy wyświetlany?
Jest różnica między:
$lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';
a
$lbarstring .= "<div class=\"vmenu\">$barcontent</div>";
Wilwarin - zadaj poprawnie pytanie.
Napisany przez: czychacz 17.09.2012, 12:14:27
może źle zrozumiałem pierwszy post, ale może chodzi autorowi o htmlentities?
$danezbazy = http://www.php.net/htmlentities($danezbazy);
http://www.php.net/echo $danezbazy
Napisany przez: Wilwarin 17.09.2012, 13:40:09
Cytat(!*! @ 17.09.2012, 09:37:44 )
Zacznijmy od tego co to znaczy wyświetlany?
Jest różnica między:
$lbarstring .= '<div class="vmenu">'.$barcontent.'</div>';
a
$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
http://www.php.net/echo http://www.php.net/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
eval("?>".stripslashes($cp_data['page_content'])."<?php ");
zaraz to bardziej obejrzę, ale jak widać ktoś jednak z tego korzysta
Napisany przez: erix 17.09.2012, 14:47:12
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.
- dziura w bezpieczeństwie
- ślamazarne wykonanie
- brak możliwości akceleracji
- brak kontroli
Napisany przez: Wilwarin 17.09.2012, 14:53:36
Cytat(erix @ 17.09.2012, 14:47:12 )
http://php.net/eval
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.
Napisany przez: markonix 17.09.2012, 15:33:00
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.
Napisany przez: !*! 17.09.2012, 16:55:06
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
Napisany przez: erix 18.09.2012, 12:39:33
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.
Napisany przez: Wilwarin 20.09.2012, 09:01:57
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
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
Napisany przez: erix 20.09.2012, 12:53:10
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.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)