Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z użyciem eval
Forum PHP.pl > Forum > Przedszkole
hzl_91
Witam. Robiąc dzisiaj bloki menu w moim cms napotkałem problem. TZN. chcąc użyć funkcji eval zrobiłem tak:
  1. <?php
  2.  
  3. $r = mysql_query("SELECT name, value, part FROM ".$db_prefix."menu WHERE status ='1' ORDER BY position");
  4. $db_querys++;
  5. $list['left'] = array();
  6. $list['right'] = array();
  7.  while($row = mysql_fetch_array($r)) 
  8.  {
  9.  $list[$row[2]][] = array( 
  10. 'name' => $row['name'], 
  11. 'value' => eval('?>'.$row['value'].'<?'),
  12.  );
  13.  }
  14.  
  15.  
  16. ?>


I mi nie działa? Dlaczego?
sticker
  1. eval('?>'.$row['value'].'<?'),

czy to powoduje że do tablicy wpisane jest coś takiego co jest pod $row['value'] i to coś czym jest $row['value'] nie wykonuje sie bo jest tylko łańcuchem znaków ?
Vertical
Cytat
I mi nie działa? Dlaczego?

Jak to nie? Sam kawałek od 9. linijki do 12. jest dobry (nie wysypuje błędu), a reszta także, więc nie widzę problemu. Chyba, że chodzi o to, że chcesz przypisać do 'value' wartość $row['value'], tylko teraz z kolei po co ci ten eval?
hzl_91
eval po to żebym mógł w blokach menu mieć kod php

halo
nospor
pytanie zasadnicze: co zawiera ta Twoja $row['value']? bo z kodu jaki tam walnoles to zgaduje ze kod html. A kodu html nie przepuszcza sie evalem. co ty chcesz osiągnąc? bo te "obszerne" wyjasnienia co tu podajesz to wiele nie wnoszą. Co rozumiesz piszac: "w blokach menu mieć kod php" ? Brzmi jak science-fiction winksmiley.jpg
hzl_91
$row['value'] wczytuje kolumnę value w tabeli menu. I w jednym rekordzie mam kod php który chcę wczytać do mojego bloku menu.
nospor
musi jakis tępy jestem bo dalej nie kumam
no nic, a czemu przypisujesz to tak:
  1. <?php
  2. 'value' => eval(....),
  3. ?>
?
Przeciez eval nie zwraca zadnej wartosci, no chyba ze kod ktory wykonuje ma return, to wtedy zrocic to co return.
a i co rozumiesz przez pojecie: "nie dziala"? te slowa maja wiele znaczen
a, i popraw tytul na zgodny z zasadami forum przedszkole
hzl_91
przez "nie działa" rozumiem to że nie przetwarza mojego kodu php. TZN. wyświetla go tak jak tekst.
satsun
A po co te '?>' i '<?' tam? Podaj może DOKŁADNĄ wartości $row['value'].
Btw nie korzystaj z krotkich tagow smile.gif
hzl_91
tzn. jak? nie rozumiem cię.

a jak by to zbuforować? To coś da?
satsun
Cytat(satsun @ 29.12.2006, 23:05:44 ) *
Podaj może DOKŁADNĄ wartości $row['value'].

Powtarzam, podaj dokladna wartosc tego.... z tym blokiem php
hzl_91
Dalej nie rozumiem. Jaką dokładną wartość? $row['value'] wczytuje kolumne value z bazy danych. Więc jaką dokładną wartość mam podać?
satsun
Wartość tej kolumny z tabeli.. czyli to co masz w tabeli
Vertical
Cytat
przez "nie działa" rozumiem to że nie przetwarza mojego kodu php. TZN. wyświetla go tak jak tekst.

Jeśli to jest string, to nie wyświetli go jako tekst, tylko jako NULL. Napisz może, jaka wartość kryje się pod $row['value'], bo na razie podałeś nam tylko nazwę zmiennej.
hzl_91
  1. <?php
  2. echo 'php działa';
  3. ?>


To jest w tej kolumnie. I chcę, żeby ten kod mi przetworzyło na php w bloku menu.
satsun
A daj po prostu eval($row['value'])
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.