ďťż

[PHP] eval(). Wyświetlanie zawartości zmiennej.

       

Podstrony


telcocafe

Witam.
Mam taki oto kod:echo eval('$'.$GLOBALS['nazwy_pol'][$i].';') .' - $'.$GLOBALS['nazwy_pol'][$i].';<br>';
Chcę żeby echo wyświetliło mi zawartość zmiennej której nazwa znajduje się w tablicy GLOBALS po zawartości tej zmiennej wyświetla mi nazwę tej zmiennej. Nazwy się wyświetlają zawartość zmiennej nie.
Co z tym zrobić ?



echo '$'.$GLOBALS['nazwy_pol'][$i].'; - $'.$GLOBALS['nazwy_pol'][$i].';<br>';
po co eval()? :)

No jak to.
Przecież bez funkcji eval on nie wyświetli mi zawartości zmiennej.
Nazwy zmiennych przechowywuję w tablicy bo jako osoba przewidująca domyślam się że skrypt będę jeszcze modyfikował kilkadziesiąt razy. Chcę wyświetlić zawartość zmiennych których nazwy mam w tablicy.

to może print_r()?



No ale na co mi print_r ?
Czkeja wyjaśnie dokładniej.

Mam formularz.
Z niego metodą post dane przechodzą do skryptu przetwarzającego.
Jako że zwyczajnie upierdliwym jest zapisywanie nazw 43 pól formularza i sprawdzanie poprawności tych danych,
zapisałem wszystkie nazwy pól w tabeli. W skrypcie aktualizującym dane muszę je jakoś pobrać z tablicy POST.

$nazwy_pol = array('imie', 'nazwisko', 'costam');

$GLOBALS['nazwy_pol'][$i] gdzie jest zmienna licznikową.
Teraz muszę stworzyć odpowiedniki zmiennych POST więc eval('$'.$GLOBALS['nazwy_pol'][$i].' = '.$_POST[$GLOBALS['nazwy_pol']].';'); co mi powinno dać nową zmienna o nazwie takiej jak ma nazwa pola z POST
niestety nie mogę pobrać potem wartości tej zmiennej i wyświetlić ją za pomocą echo.

to może powinieneś to w pętli wykonać? już sam nie rozumiem. :blink:

(%@!#$%!)^%!#%$(^_! < pomstuję | nikt mnie nie rozumie nikt mnie kocha < apatia
:P
$nazwy_pol = array('info_imie' ,'info_nazwisko' ,'info_kraj' ,'info_miasto' ,'info_wiek_rok' ,'info_wiek_miesiac' ,'info_wiek_dzien' ,'info_telefon' ,'komp_procesor' ,'komp_karta_graficzna' ,'komp_karta_dzwiekowa'); for($i=0; $i<count($GLOBALS['nazwy_pol']); $i++) { eval('$'.$GLOBALS['nazwy_pol'][$i].' = \''.stripinput(trim($_POST[$GLOBALS['nazwy_pol'][$ i]])).'\';'); }
Użytkownik orglee edytował ten post 14 styczeń 2007, 13:16
$nazwy_pol = array('info_imie' ,'info_nazwisko' ,'info_kraj' ,'info_miasto' ,'info_wiek_rok' ,'info_wiek_miesiac' ,'info_wiek_dzien' ,'info_telefon' ,'komp_procesor' ,'komp_karta_graficzna' ,'komp_karta_dzwiekowa'); for($i=0; $i<count($GLOBALS['nazwy_pol']); $i++) { eval('$'.$nazwy_pol[$i].' = \''.stripinput(trim($_POST['nazwy_pol'][$i])).'\ ';'); }
no to teraz rozumiem :D ale jak możesz w POST przechowywać GLOBALS?

@down:
niemwidzę żadnych różnic :blink:
Użytkownik marines edytował ten post 14 styczeń 2007, 13:31
Tfu pomylił mi się fragment kodu w drugiej części nie jest nazwa_pola tylko odwołanie do globals

for($i=0; $i<count($GLOBALS['nazwy_pol']); $i++)
{
eval('$'.$GLOBALS['nazwy_pol'][$i].' = \''.stripinput(trim($_POST[$GLOBALS['nazwy_pol'][$i]])).'\ ';');
}

Jeśli dobrze zrozumiałem, to chcesz wyświetlić w pętli zawartość zmiennych info_imie, info_nazwisko etc?
Więc może zamiast eval, zrób po prostu echo $$GLOBALS['nazwy_pol'][$i]; ? Wtedy wyświetli zawartość zmiennej o nazwie jaka jest w tablicy $nazwy_pol.

//Edit: Druga wersja, jak powyższa nie zadziała, troszkę się zamotałem:
echo $GLOBALS[$$GLOBALS['nazwy_pol'][$i]];
Użytkownik Einzeinbleth edytował ten post 14 styczeń 2007, 16:29
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.