Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dynamiczne generowanie kodu PHP
no_face
post
Post #1





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Jest jakas mozliwos by stworzyc dynamicznie pare linijek kodu php?

I drugie pytanie. Mozna w jakis fajny sposob zebrac zmienne przesylane z formularza w tablicy/tablicach?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
czachor
post
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


1) tak, eval" title="Zobacz w manualu php" target="_manualem to potem potraktuj.
2) Można, ale nie wiem, co rozumiesz przez "fajne" smile.gif


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Ad.2
Kod
<input type='text' name='dane[costam]'>

Chyba powinno działać.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
no_face
post
Post #4





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Sprawe przedstawie tak. Mam formularz tworzony dynamicznie z dos duzo iloscia pol txt i radio przez co dostaje duzo zmiennych typu zm_01, zm_02 itd. Chcialbym zeby wartosci tych zmiennych wyladowaly odrazu w tablicy, a to dlatego zeby nie kabinowac z duza iloscia zmiennych w skrypcie przetwarzajacym.
Dosc jasno czy jeszcze cos wyjasnic smile.gif
Go to the top of the page
+Quote Post
xardas
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.03.2004

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


Istnieje coś takiego jak tablica $_POST, w której lądują wszystkie zmienne przesłane formularzem metodą POST.

p.s. Aha, a jeśli w formularzach używasz $zmienna to życzę szczęścia w dalszym programowaniu, będzie potrzebne tongue.gif
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(no_face @ 2005-08-30 22:01:32)
(...) przez co dostaje duzo zmiennych typu zm_01, zm_02 itd. Chcialbym zeby wartosci tych zmiennych wyladowaly odrazu w tablicy, a to dlatego zeby nie kabinowac z duza iloscia zmiennych w skrypcie przetwarzajacym.(...)

No przecież @NuLL Ci odpowiedział:
  1. <form action="#" methos="post">
  2. <input type="text" name="tab[]" value="bla bla" />
  3. <input type="text" name="tab[]" value="bla" />
  4. <input type="text" name="tab[]" value="bla bla bla" />
  5. ...
  6. </form>


Zmienne z takiego formularza obierzesz w tablicy $_POST[ 'tab' ] indeksowanej od 0, dane będą w kolejności wystąpowania pól w formularzu.
Go to the top of the page
+Quote Post
no_face
post
Post #7





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Cytat
No przecież @NuLL Ci odpowiedział:

W tym czasie pisalem akurat posta.

Cytat
p.s. Aha, a jeśli w formularzach używasz $zmienna to życzę szczęścia w dalszym programowaniu, będzie potrzebne

heeh, przyklad i wiem ze dane z form sa gromadzone w tab $_POST jezeli zostaly wyslane metoda POST.

Co do Twojej odpowiedzi to wlasnie o to mi chodzilo, wlasnie takiego rozwiazania szukalem, (tworzy sie tablica 2 wymiarowa, tak?) zaraz zaczne testowac, dzieki wielkie.

Wroce teraz do f. eval(); wykonuje ona jako kod php zawartosc zmiennej.
Jakos nie rozomie tego bloku
  1. <?php
  2. $string = 'cup';
  3. $name = 'coffee';
  4. $str = 'This is a $string with my $name in it.';
  5. echo $str. "n";
  6. eval("$str = "$str";"); // tego kawalka nie rozomiem
  7. echo $str. "n";
  8. ?>


---edit---
Fajnie że stosujesz bbCode, nie każdy początkujący potrafi.
Jeszcze tylko dorzucisz do arsenału [ quote ] i będą z Ciebie ludzie tongue.gif
~mike_mech
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Może to Ci pomoże zrozumieć. Dałem tam mały przykład.
Jak przypisać wynik działnia funkcji eval do zmien

Swoją drogą. Ci co szukają znajdują odpowiedź szybciej niż Ci co na nią czekają. tongue.gif
Go to the top of the page
+Quote Post
no_face
post
Post #9





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Cytat
Swoją drogą. Ci co szukają znajdują odpowiedź szybciej niż Ci co na nią czekają.

Przed rozpoczeciem tematu szukalem na forum czy jest jakis podobny temat, lecz nie znalazlem. Pozniej juz nie sprawdzalem czy istnieja jakies tematy na temat eval.

Co do tej funkcji (eval) to rozumiem jak dziala tylko moze po prostu bylem ciekaw czy mozna zrobic cos wiecej nia. Patrzalem na ten przyklad i nie rozomialem tego kawalka ktory jest zaznaczony komentarzem i myslalem ze to jakas wlanosc (atrybuty) f. eval, ale jak sie przypatrzylem to zauwarzylem ze tylko zamienia pojedyncze cudzyslowy na podwojne.
  1. <?php
  2. $string = 'cup';
  3. $name = 'coffee';
  4. $str = 'This is a $string with my $name in it.';
  5. echo $str. "n";
  6. eval("$str = "$str";");  // tego kawalka nie rozomiem
  7. echo $str. "n";
  8. ?>

Dzieki za wszystko.

Jeszcze jedno, dlaczego ten kod generuje ostrzezenie?
  1. <?php
  2. eval($waz = $_POST["$waz1"]);
  3. ?>


Ten post edytował no_face 31.08.2005, 22:19:23
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jeszcze jedno, dlaczego ten kod generuje ostrzezenie?
Pytanie za 100 punktów: A czy tak ciężko tobie było jeszcze napisać treść tego ostrzeżenia?

Zgaduję:
w zmiennej post nie ma index o nazwie w zmiennej $waz1?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
no_face
post
Post #11





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Sorki, to z pospiechu.
Generuje taki komunikat:
Kod
Parse error: parse error in c:\usr\apache\httpd\html\m_konto\dod_grx.php(47) : eval()'d code on line 1

W zmiennej $waz1 jest odpowiednia wartosc tzn. nazwa odpowiednij zmiennej.
Takowa zmienna tez istnieje. Dodam jeszcze ze operacja konczy sie powodzeniem, przypisuje mi do zmiennej $waz odpowiednia wartosc, tylko ze ten komunikat. Pomyslalem ze jak kod dziala to jest narazie ok i wstawilem @ przed. No ale lepiej to poprawic.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




eval($waz = $_POST["$waz1"]);

Taki zapis robi:
1) przypisanie do zmiennej $waz zawartości $_POST[$waz1]
2) w efekcie wywolanie eval na wartości $_POST[$waz1].
3) warning jest generowany, gdyż najwyraźniej $_POST[$waz1] jest złym kodem php

jesli chciales $_POST[$waz1] przypisac do $waz to na grzyba eval stosujesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
no_face
post
Post #13





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Przedstawie to tak. Mam troche zmiennych z formularza, nazywaja sie np cos_1, cos_2 itd. W skrypcie tworze petle i po koleji tworze w zmiennej $waz1 nazwy tych zmiennych tak ze po kazdym przejsciu petli wartosc zmiennej $waz1 zmienia sie, najpierw posiada wartosc cos_1, itd

  1. <?php
  2. eval($waz = $_POST["$waz1"])
  3. ?>

Przypisuje do $waz po koleji wartosc z $_POST[$cos_1], $_POST[$cos_2] itd

Ten post edytował no_face 1.09.2005, 11:06:24
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i ok. ale zeby do $waz przypisac kolejne wartosci nie potzreba do tego eval().


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
no_face
post
Post #15





Grupa: Zarejestrowani
Postów: 346
Pomógł: 23
Dołączył: 28.11.2004

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


Rzeczywiscie nie potrzeba byla f, eval(); dziala zwykle przypisanie, za bardzo sie z ta f. rozpedzilem, no ale dazenie do odkrycia dlaczego generuje ostrzezenie jest nadal.
Dzieki.

przecież ci napisalem czemu generuje ostrzeżenie? masz w tej zmiennej zly kod php, jesli wogóle ta jest kod php tongue.gif
---
nospor


Dlaczego zly, przypisanie sie udaje itd, ale wiesz lepiej, wiec prosze o jakas podpowiedz by blad sie nie powtorzyl
no_face


przypisanie jest ok. sek w tym ze eval wymaga kodu php. A twoja zmienna nie zawiera kodu php i się eval wykrzacza. To że ty w eval robisz bezczelne przypisanie dwóch zmiennych nie powoduje że ewal wykonuje to przypisanie. eval wykona zawartość tej zmiennej. kapisz?
--
nospor


Teraz sie rozumiemy, trzeba bylo dodac w eval tak jak w normalnej linijce kdu znak konczoncy linie ";" i wszystko gra eval('$waz = $_POST["$waz1"];'); Jeszcze raz dzieki. Pozdrawiam.
no_face


Ten post edytował no_face 1.09.2005, 12:29:06
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 Aktualny czas: 21.08.2025 - 12:35