Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wykonanie kodu PHP z bazy danych
mlody69
post 17.02.2012, 22:26:53
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Witam,
od razu proszę o nie linczowanie mnie za to co chcę zrobić, jest mi to potrzebne w jednej funkcji i tyle smile.gif

Opiszę w czym rzecz, plik php który przedstawia się mniej więcej tak:
  1. while($cos = mysql_fetch_assoc($zapytanie))
  2. {
  3. $id = $cos['id'];
  4. $kod = $cos['kod'];
  5.  
  6. echo '<td>'.$kod.'</td>';
  7. }
  8.  


Zmienna $kod przechowuje na przykład: echo 'coś'

Moje pytanie brzmi, jak wejściowo powinna wyglądać zmienna $kod aby jej zawartość się wykonała, nie wyświetliła?

Ten post edytował mlody69 18.02.2012, 00:49:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 17)
xxdrago
post 17.02.2012, 22:30:20
Post #2





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Daj całość... trochę źle napisałeś ty decydujesz kiedy się wyświetla dodając echo, jeżeli nic z nią nie zrobisz porostu jej "nie będzie widać" - zmiennej biggrin.gif


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
mlody69
post 17.02.2012, 22:31:56
Post #3





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


To jest można powiedzieć całość (oprócz zapytania). Tego nie mogę ruszyć
Go to the top of the page
+Quote Post
xxdrago
post 17.02.2012, 22:33:31
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


daj funkcje jaką chcesz użyć smile.gif


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
mlody69
post 17.02.2012, 22:37:41
Post #5





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Ona tutaj w ogóle nie ma żadnego znaczenia, to jest kod mojej funkcji wink.gif W niej powinno wykonywać ten kod (nie mogę użyć eval) a nie wyświetlać go.
Go to the top of the page
+Quote Post
crocodillo
post 17.02.2012, 23:17:57
Post #6





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


eval("echo 'test';");
Go to the top of the page
+Quote Post
mlody69
post 17.02.2012, 23:25:34
Post #7





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


@crocodillo

Dziękuje, jednak to wyświetla
  1. <td>eval("echo 'test';");</td>
Go to the top of the page
+Quote Post
crocodillo
post 17.02.2012, 23:46:50
Post #8





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


To nie zrozumiałem pytania. Ty masz plik html i chcesz w nim wykonać skrypt php? Bo już nie wiem o co chodzi. eval() jest funkcją php. Myślałem, że chciałeś wykonać kod pobrany z bazy.

ed: Dopiero zauważyłem, że nie możesz użyć eval().

Ten post edytował crocodillo 17.02.2012, 23:52:23
Go to the top of the page
+Quote Post
mlody69
post 18.02.2012, 00:00:47
Post #9





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


To jest plik .php jednak ten kod musi się wykonać między echo '<td>$cos</td>';
Go to the top of the page
+Quote Post
Necsord
post 18.02.2012, 00:18:52
Post #10





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


Cytat(mlody69 @ 17.02.2012, 22:26:53 ) *
Zmienna $kod przechowuje na przykład: echo 'coś'

Moje pytanie brzmi, jak wejściowo powinna wyglądać zmienna $kod aby jej zawartość się wykonała, nie wyświetliła?


  1. echo "cos co powinno się wyświetlić";
  2. $kod = '
  3. $zmienna = "costam";
  4. echo "OK";
  5. ';
  6. echo '<td>';
  7. eval($kod);
  8. echo '</td>';
  9. echo "cos co powinno się wyświetlić";
  10. echo $zmienna;


Wykonuje się, a zarazem nie wyświetla żadnego echo z $kod. Jeżeli jednak źle się wysłowiłeś i ma wyświetlać echo z $kod to usuń ob_start i ob_end_clean.

Ten post edytował Necsord 18.02.2012, 00:21:32
Go to the top of the page
+Quote Post
mlody69
post 18.02.2012, 00:22:24
Post #11





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Dzięki ale nie do końca o to mi chodziło. Muszę jakoś treść w tej tabeli zmienić aby była ona wykonywalna. Kodu php nie mogę zmienić
Go to the top of the page
+Quote Post
crocodillo
post 18.02.2012, 00:32:19
Post #12





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


A możesz zmienić kod przed tym wyświetleniem? Tzn przed echo '<td>$cos</td>'; ?

Jeśli tak, to możesz do $cos przypisać obiekt, i wykorzystujesz magiczną metodę __toString(). Innej możliwości nie widzę. Jeśli w ogóle nie możesz edytować php, to nie zrobisz tego.
Go to the top of the page
+Quote Post
mlody69
post 18.02.2012, 00:36:16
Post #13





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Nie bardzo, jedynie zapytanie
Go to the top of the page
+Quote Post
Necsord
post 18.02.2012, 00:38:14
Post #14





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


Cytat(mlody69 @ 18.02.2012, 00:22:24 ) *
Dzięki ale nie do końca o to mi chodziło. Muszę jakoś treść w tej tabeli zmienić aby była ona wykonywalna. Kodu php nie mogę zmienić

Ja mam problem ze zrozumieniem ciebie albo tobie nie wychodzi przekazywanie informacji co ty w końcu chcesz. jak narazie to z twoich wypowiedzi wynika tyle, że:
1) Kod ma się wykonac pomiedzy td.
2) Kod nie ma się wyświetlić.
3) Jakaś treść ma się "jakoś" zmienić.
4) Treść która się zmienia ma być wykonywalna.
5) Kod php nie może zostać zmieniony.

W informacjach które starasz sie przekazać jest zarazem wszystko i nic.


Ten post edytował Necsord 18.02.2012, 00:45:49
Go to the top of the page
+Quote Post
mlody69
post 18.02.2012, 00:45:54
Post #15





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Możliwe, że jest to niezrozumiałe. Jest mi to bardzo potrzebne, na pewno jest to niepraktyczne ale cóż. Działa to tak:
1)skrypt.php?co=echo 'no fajnie';
2) Dodaje ten kod do bazy
3)Inny skrypt pobiera ten kod i wyświetla
  1. while($cos = mysql_fetch_assoc($zapytanie))
  2. {
  3. $id = $cos['id'];
  4. $kod = $cos['kod'];
  5.  
  6. echo '<td>'.$kod.'</td>';
  7. }


Wynik jest taki:
  1. <td>echo 'no fajnie';</td>

A powinien być:
  1. <td>no fajnie</td>


Ten post edytował mlody69 18.02.2012, 00:49:16
Go to the top of the page
+Quote Post
Necsord
post 18.02.2012, 00:49:34
Post #16





Grupa: Zarejestrowani
Postów: 189
Pomógł: 60
Dołączył: 5.10.2010
Skąd: Bydgoszcz

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


Masz 2 wyjścia.

1) eval() na tej zmiennej.
2) W PHP 5.3+
  1. // w skrypt.php?
  2. $kod = function(){
  3. echo "cos";
  4. };
  5.  
  6. // w twoim kodzie
  7. $kod();


Obie metody wymagaja edycji PHP'a.
Kwestie bezpieczeństwa pomijam bo samo używanie kodu uzyskanego z GET'a samo się wypowiada.

Ten post edytował Necsord 18.02.2012, 00:51:11
Go to the top of the page
+Quote Post
crocodillo
post 18.02.2012, 01:09:49
Post #17





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Hmmm wygląda na to, że Pan mlody69 raczej gdzieś się włamać chce, ale nie za bardzo wie jak się za to zabrać smile.gif

jeśli zmienna $a jest zmienną tekstową (string) to w php wykonując polecenie echo $a; TYLKO wyświetlisz zawartość tej zmiennej. Nie ma takiej możliwości, żeby echo wykonało kod php zawarty w zmiennej (oczywiście chodzi mi o echo $a;).

Ten post edytował crocodillo 18.02.2012, 01:10:50
Go to the top of the page
+Quote Post
mlody69
post 18.02.2012, 01:11:50
Post #18





Grupa: Zarejestrowani
Postów: 183
Pomógł: 0
Dołączył: 18.05.2009

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


Włamać? Testuje na localu pewne rozwiązania i tyle. Dziękuje wszystkim za odpowiedzi, wykorzystam pomysły Necsord.
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: 14.08.2025 - 04:10