Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]eval błedne prasowanie
tejek
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


Witam,

Mam problem z tym kawałkiem kodu:
  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  2. eval($element);


nie wiem czemu eval wyrzuca mi blad jak wedlug mnie nawiasy sa ok

Bład jaki otrzymuje:
Parse error: syntax error, unexpected '[' in /... / : eval()'d code on line 1
Go to the top of the page
+Quote Post
mls
post
Post #2





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'($details['.$option['user_detail_opt_id'].']);';
  2. eval($element);
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Kod:
  1. $option = array(
  2. 'data_type' => 'Test',
  3. 'user_detail_opt_id' => 1
  4. );
  5.  
  6. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  7.  
  8. echo $element;

wypisze:
Kod
new Zend_Form_Element_Test(details[1]);

Nadal uważasz, że jest to poprawne? (IMG:style_emoticons/default/smile.gif)

Poza tym przydałoby się chyba przypisać tworzony obiekt do jakiejś zmiennej, czyli:
  1. $element = '$obj = new Zend...';


Ten post edytował phpion 16.12.2010, 11:38:58
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(tejek @ 16.12.2010, 11:32:34 ) *
Witam,

Mam problem z tym kawałkiem kodu:
  1. $element = 'new Zend_Form_Element_'.$option['data_type'].'(details['.$option['user_detail_opt_id'].']);';
  2. eval($element);


nie wiem czemu eval wyrzuca mi blad jak wedlug mnie nawiasy sa ok

Bład jaki otrzymuje:
Parse error: syntax error, unexpected '[' in /... / : eval()'d code on line 1

Nie lepiej tak?
  1. $k = "Zend_Cos";
  2. $y = new $k();
Go to the top of the page
+Quote Post
zordon
post
Post #5





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


  1. $element = 'new Zend_Form_Element_'.addslashes($option['data_type']).'($details[\''.addslashes($option['user_detail_opt_id']).'\']);';


nie dałeś dolara przy nazwie zmiennej $details
dodatkowo - brak cudzysłowów w nazwie klucza $details - murowany notice //edit założyłem, że klucz jest asocjacyjny (IMG:style_emoticons/default/smile.gif) jeśli numeryczny to ok
dodatkowo2 - bezpieczniej byłoby dla Ciebie, gdybyś wstawiał zmienne w kod za pomocą addslashes, jak w zmiennej będzie kiedyś coś "niewygodnego" to wywali błędy

Ten post edytował zordon 16.12.2010, 11:46:42
Go to the top of the page
+Quote Post
tejek
post
Post #6





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


Wielkie dzięki za pomoc już po problemie :]
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 10:47