Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] wykonanie skryptu zapisanego w bazie sql[/php]
magier123
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


Witam
Mam nastepujacy problem a nie znajuduje rozwiazania
Chcialbym wykonac skrypt zapisany w bazie sql odwolujac sie do niego za pomoca funkcji
Niestety moj kod jest traktowany w taki sposob (jakby kod php byl wykomentowany)

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <? php echo znaczniki(head); ?>/// ta linijka w podgladzie strony wyglada jak wykomentowana (poza tym jest widoczna w podgladzie)
  4.  
  5. </head>
  6.  
  7. </body>
  8. </html>
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Uzyj EVAL


--------------------
Go to the top of the page
+Quote Post
magier123
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


hmm z tego co widze EVAL nic nie daje... dalej tak samo traktuje ten wpis
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To pokaż jak użyłes tego evala i przyklad co ci pokazuje...


--------------------
Go to the top of the page
+Quote Post
magier123
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


W indexie mam taki wpis
  1. <? 
  2. echo szablony(podstawowy);
  3. ?>

ta funkcja wywoluje mi szablon z bazy sql w ktorym jest nastepne wywolanie funkcji znacznika
  1. <? 
  2. echo znaczniki(head);
  3. ?>

no i tej funkcji juz nie udaje sie wywolac bo traktuje ja jako html lub jakis komentarz

to moze podpowiedzcie w ktorej z funkcji mam wywolac eval
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://pl.php.net/eval exclamation.gif!!
funkcja "szablony"


--------------------
Go to the top of the page
+Quote Post
magier123
post
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


moze zle wytlumaczylem.... nie widze nigdzie rozwiazania do tego.... w mojej zmiennej ktora pobieram z sql jez zarowno kod php jak i html...nie ogarniam tej funkcji bo albo nic sie nie wyswietla albo dalej tak jak bylo
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To pokaz przykładowy KOD jaki ci daje sql. i kod twoich funkcji.


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





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




uczepili sie biedaku do ciebie z tym eval, a przeciez eval dziala tylko i wyłącznie na kodzie php. dziwne ze tego nie wiedzieli, choc sami linki dawali winksmiley.jpg

Moze zamiast kodu php stawiaj jakis znacznik, np {HEAD}, ktory bedziesz przy pomocy str_replace zamienial na wlasciwa rzecz


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
magier123
post
Post #10





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


  1. <?php
  2. function znaczniki ($znacznik)
  3. {
  4. $sql = mysql_query('SELECT * FROM xxx WHERE xxxxx = "'.$znacznik.'"');
  5. $row = mysql_fetch_row($sql);
  6. echo $row[2];
  7. }
  8. ?>


  1. <?php
  2. function szablony ($szablon)
  3. {
  4. $sql = mysql_query('SELECT * FROM szablony WHERE nazwa_szablonu = "'.$szablon.'"');
  5. $row = mysql_fetch_row($sql);
  6.  
  7. echo eval("$row[2]");
  8. }
  9. ?>


wpis ktory ma wyswietlic funkcja

<? echo "hello"; ?>


Teraz wyswietla mi blad : unexpected '< ' wiec jest to poczatek tego skryptu... tylko jak go wykonac
Go to the top of the page
+Quote Post
wookieb
post
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wywalasz <? i ?> z kodu ktory chcesz dac do eval.
jezeli mowisz ze mieszasz tam kod php i html to musisz wtedy pobrany kod zapiasc do pliku o rozszerzeniu php i nastepenie icludowac go.
Kod
file_put_contents('file.php', $kod_z_bazy);
include('file.php');
unlink('file.php');


--------------------
Go to the top of the page
+Quote Post
magier123
post
Post #12





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


Fajny pomysl z tym str_replace ale niestety dalej jako komentarz sie pokazuje... nie mam juz pojecia jak to obejsc
Go to the top of the page
+Quote Post
Kicok
post
Post #13





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


eval" title="Zobacz w manualu PHP" target="_manual zadziała, tylko trzeba go sprytnie użyć.

Powiedzmy, że eval() domyślnie pracuje "w trybie PHP", więc kod:
  1. <?php
  2.  
  3. $zmienna = 'Ala ma kota';
  4. $tresc = '<html><body><?php echo $zmienna; ?></body></html>';
  5.  
  6. eval( $tresc );
  7.  
  8. ?>

się wysypie. Parser będzie próbował traktować "<html><body>" jako instrukcje język PHP, a takich oczywiście nie ma smile.gif


Dlatego najpierw trzeba wyjść z "trybu PHP" wstawiając na początku: "?>":
  1. <?php
  2.  
  3. $zmienna = 'Ala ma kota';
  4. $tresc = '<html><body><?php echo $zmienna; ?></body></html>';
  5.  
  6. eval( '?>' . $tresc );
  7.  
  8. ?>


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
magier123
post
Post #14





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.03.2007

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


I o to chodzilo KICOK.... a no jakos nie moglem sam do tego dojsc.... moglbys mi tylko wytlumaczyc co oznacza to "?>" dlaczego znaczek jest w jedna strone?? do zcego sluzy ten zapis

DZIEKI WIELKIE

Ten post edytował magier123 29.08.2008, 12:39:56
Go to the top of the page
+Quote Post
Kicok
post
Post #15





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Kod PHP zaczynamy od "<?php" a kończymy na "?>" - i to właśnie oznacza ten znaczek smile.gif

Kod:
  1. <?php
  2.  
  3. $zmienna = 'Ala ma kota';
  4. $tresc = '<html><body><?php echo $zmienna; ?></body></html>';
  5.  
  6. eval( '?>' . $tresc );
  7.  
  8. ?>


Zachoduje się jak:
  1. <?php
  2.  
  3. $zmienna = 'Ala ma kota';
  4. $tresc = '<html><body><?php echo $zmienna; ?></body></html>';
  5.  
  6.  ?> <html><body><?php echo $zmienna; ?></body></html>


Ten post edytował Kicok 29.08.2008, 13:38:17


--------------------
"Sumienie mam czyste, bo nieużywane."
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 Aktualny czas: 21.08.2025 - 18:16