Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wykorzystanie wygenerowanego kodu
Forum PHP.pl > Forum > Przedszkole
tog
witam,

czy da sie jakos wykorzystac wygenerowany kod php ?
tzn. php tworzy kod ktory pozniej samo przetwarza

rozwiazaniem byloby tutaj zapisanie kodu do pliku a nastepne go includowanie
ale czy da sie jakos to zrobic nie wychodzac z pliku

a przy okazji jeszcze cos(w sumie troche powiazane)

mam funkcje

  1.  
  2. function pz($code)
  3. {
  4. if(!eregi("[a-zA-Z0-9_ ]$", $code))
  5. {
  6. return 'ercode';
  7. }
  8. }
  9.  


czy daloby sie zrobic tak aby po wpisaniu
pz($nick);
funkcja zwracala zmienna $er_nick = 'ercode';
?
l0ud
Co do pierwszego, możesz użyć eval

Wyjaśnij bardziej drugie pytanie...
tog
robie ta funkcje 'pz', ktora mi sprawdza czy zmienna nie zawiera nieodpowiednich znakow
i chcialbym aby ta funkcja tworzyla nowa zmienna o zmiennej nazwie
jak do funkcji wprowadze $nick z nieodpowiednimi znakami to funkcja mi zwroci $er_nick
jak wprowadze $pass z nieodpowiednimi znakami to ta sama funkcja mi wyrzuci $er_pass
piotrekkr
Możesz jaśniej? Chodzi ci o to że pz() sprawdza czy argument zawiera odpowiednie znaki i jeśli tak to robi zmienna o nazwie $er_'wartosc_argument_code' ? Bo jeśli tak to możesz zrobić coś takiego:

  1. function pz($code)
  2. {
  3. if(eregi("[a-zA-Z0-9_ ]$", $code))
  4. {
  5. return 'er_'.$code;
  6. }
  7. return 'zla_nazwa';
  8. }
  9.  
  10. ${pz($nazwa_do_sprawdzenia)} = 'costam';
tog
chce zrobic cos takiego, aby funkcja rozpoznawala nazwe zmiennej ktora do niej wysylamy

jak wysle
moze tak

$kupa = 'dfsfsfsff';
pz ($kupa);
if ($er_kupa) { } else { }

funkcja rozpoznaje nazwe zmiennej a nie jej zawartosc
da sie cos takiego zrobic ?
piotrekkr
No tak średnio to jest wykonalne bo funkcja nie może tworzyć zmiennych poza swoim zasięgiem (wnętrzem) (chyba że przy użyciu 'global' ale jest to paskudna metoda :/). Funkcja może zwracać jedynie wartości / obiekty. Można było by pokombinować z tablicami przez referencje. Tzn. coś takiego:
  1. function pz($code, &$array)
  2. {
  3. if(eregi("[a-zA-Z0-9_ ]$", $code))
  4. {
  5. $array['er_'.$code] = '';
  6. }
  7. }
  8. $array = array();
  9. $nazwa_do_sprawdzenia = 'blebleble';
  10. pz($nazwa_do_sprawdzenia, $array);
  11.  
  12. if(isset($array['er_'.$nazwa_do_sprawdzenia])){
  13.  
  14. }else{
  15.  
  16. }


W sumie nie wiem co chcesz osiągnąć poprzez sprawdzanie nazw zmiennych i tym podobne kombinacje smile.gif. Jakbyś wyjaśnił co chcesz dokładnie osiągnąć może dało by radę to zrobić normalnym sposobem bez kombinowania smile.gif
tog
nei do konca rozumiem ten kod
zaraz doczytam
i moze rzeczywiscie wiecej napisze

robie skrypt rejestracji

1. zmienan zostaje odebrana $nick = $_POST['nick'];
2. sprawdzam poprawosc znakow, jak jest zle to robie zmienna $er_nick = 'ercode';
3. sprawdzam czy nei istnieje w systemie, jak istnieje to robie $er_nick = 'reserve';
4. sprawdzam czy istnieje zmienna $er_nick, jesli nie to ide dalej

w sumie to skrypt juz istnieje i dziala poprawnie
tylko chcialem sobie troche uproscic winksmiley.jpg

btw. zrobilem skrypt rejestracji w 120 wierszach ^^
ale nie wazne
piotrekkr
Eee jakos to dziwnie smile.gif. Ja rejestracje zawsze robiłem na tę modłę:

1. podbieram z posta dane czyli nick, hasło, e-mail
2. sprawdzam po kolei każde z pól czy poprawne czy nick i e-mail już istnieje w bazie itd i jeśli coś jest nie tak to wracam o formularza
i pokazuje odpowiednie komunikaty
3. jak wszystko jest ok zapisuje do bazy danych i pokazuje komunikat ze wszystko ok zarejestrowany user smile.gif

Jest to w sumie seria instrukcji warunkowych + ewentualny powrót do formularza jak coś nie tak a jak dobrze to zapytani do bazy i komunikat.

Nie wiem za bardzo po co używać do tego jakichś zmiennych zmiennych. Ale może to jakoś tak specjalnie ma być a nie taka zwykła rejestracja smile.gif
tog
no ostatnio zrobilem taka rejestracje
teraz strasznie pokombinowalem

chcesz zobaczyc kod ? ;x(pw, bo duzo tego)

no nie wazne w sumie
gdybym sie postaral to moglbym to zrobic funckja eval
choc w sumie to jej jeszcze nei sprawdzialem
wlasnie skonczylem logowanie^^
piotrekkr
Powiem Ci że jak już ładnych parę lat piszę w PHP to jeszcze nigdy nie miałem potrzeby użyć jawnie eval(). Chyba że przy obiektowym pisaniu konstrukcje typu:
  1. $obj = new $nazwaKlasy();
i znając życie Tobie też nie jest potrzeba tylko jeszcze o tym nie wiesz smile.gif
tog
heh... problem juz rozwiazalem
tylko martwi mnie to, ze skrypt zajal mi duzo miejsca
ale przynajmniej moj skrypt nie zawiera ani jednego znacznika html

lap plusa winksmiley.jpg
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.