Nacteni POST promenne (z Flashe)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
suxik
Člen | 62
+
0
-

Ahoj, mam dalsi problem, se kterym si nevim rady. Mam flash aplikaci, ktera odesila POST data (souradnice bodu) jako dve promenne „x“ a „y“. Klasicky bez Nette zadam ve flashi adresu skriptu a v nem prijmu data pres $_POST[„x“] a $_POST[„y“], to neni problem.
Ale nevim, jak to udelat v Nette, abych temito hodnotami mohl naplnit primo textova pole formulare v nejakem presenteru. Nevim, jak mam do toho flashe zadat „Nette adresu“ na dany presenter/view a jak v nem pak ty POST data zpracovat. Nechci to resit pres nejaky externi soubor, kam ty hodnoty odeslu a v Nette pak nactu. Snad to nekdo pochopi

despiq
Člen | 320
+
0
-

adresa.cz/presenter/view

<?php
public function renderDefault($x, $y)
{

}
?>
suxik
Člen | 62
+
0
-

tak adresa funguje, ale pres renderDefault($x, $y) se mi ty promenne nenactou, ale jde to rucne pres $_POST[„x“] a $_POST[„y“], ale asi to neni koser reseni predpokladam. Nevim, proc to nejde pres parametry render metody

Majkl578
Moderator | 1364
+
0
-

Řešení, které navrhuje despiq totiž přijímá _GET parametry.
Na _POST si buď něco nabastlit, nebo udělat form, který se nerenderuje (nic moc řešení).

despiq
Člen | 320
+
0
-

tohle me trapilo uz na zacatku kdyz sem zacal s nette
ze neni nic na post, ale pak sem si rekl proc nenapsat $_POST co je na tom tak hroznyho, ale flash to umi poslat i getem ne? nebo json?

Editoval despiq (9. 4. 2010 18:39)

suxik
Člen | 62
+
0
-

jj umi, ale kdyz to funguje, necham to tak, nejak moc mi to nevadi :)

bazo
Člen | 620
+
0
-

preco puzivat skaredo $_POST[‚var‘] ked je mozne pouzit $this->getHttpRequest()->getPost(‚var‘) $this->getHttpRequest()->getPost()?

pripadne mozes puouzit nejaku handle metodu napr handleXY($x, $y) v handle ide urcite prijimat parametre z POST

despiq
Člen | 320
+
0
-

proc pouzit
$_POST[‚var‘]
a ne
$this->getHttpRequest()->getPost(‚var‘)
tak to je snad na prvni pohled jasny

handle POST neprijma

nicmene by bylo rozumnejsi predelat si to na get pokud nejde o zadne predavani dlouhych textu

Editoval despiq (10. 4. 2010 22:18)

uestla
Backer | 785
+
0
-

proc pouzit
$_POST[‚var‘]
a ne
$this->getHttpRequest()->getPost(‚var‘)
tak to je snad na prvni pohled jasny

Pokud to myslíš tak, že první zápis je kratší, tak věz, že tím druhým získáš z postu již ošetřená data (např. při zapnutých magic quotes).

despiq
Člen | 320
+
0
-

tomu nerozumim, jak budou osetrena?
a myslim ze nette vyzaduje magic quotes off

uestla
Backer | 785
+
0
-

despiq napsal(a):

tomu nerozumim, jak budou osetrena?
a myslim ze nette vyzaduje magic quotes off

Pokud se nemýlím, Nette pouze doporučuje, aby byly magic quotes vypnuté (kdo by také nedoporučoval, že?) – v případě, že jsou zapnuté, tak data „odsviní“ – viz např. tadyhdlenc: https://api.nette.org/…est.php.html#420

despiq
Člen | 320
+
0
-

myslim ze magic quotes budou na kazdem rozumnem hostingu vypnuta a od php 5.3 jsou deprecated
navic pokud si posilam data z flashe do aplikace pak bych si ty data mel asi ochekovat sam
osobne bych chtel take radeji jit cestou $this->getHttpRequest()->getPost(‚var‘)
ale to je silene dlouhe oproti tomu co mi to prinese navic

Honza Kuchař
Člen | 1661
+
0
-

Pokud vím, tak $presenter->getParam("x"); vrací i hodnoty z postu… Vlastně určitě, pokud si vzpomínám, používám to u TabControlu. Ale ještě by bylo fajn, mrknout na to co dělá tato metoda: https://api.nette.org/…mponent.html#… Protože, jak se to budeš snažit zachytávat někde v komponentě, bez tohoto se neobejdeš.

Ola
Člen | 385
+
0
-

despiq napsal(a):

myslim ze magic quotes budou na kazdem rozumnem hostingu vypnuta a od php 5.3 jsou deprecated
navic pokud si posilam data z flashe do aplikace pak bych si ty data mel asi ochekovat sam
osobne bych chtel take radeji jit cestou $this->getHttpRequest()->getPost(‚var‘)
ale to je silene dlouhe oproti tomu co mi to prinese navic

Kombatibilita je vlastně k ničenu, že.. Pár ušetřených hodin kdy civíš do kódu s výrazem WTF?! nikomu nepřeju. A pokud na tom bude dělat někdo jiný a flákne to někam kde to zrovna nepojede, asi taky nebude nadšený. Pokud se ti to zdá dlouhé, nic ti nebrání di vytvořit nějakej alias.

bazo
Člen | 620
+
0
-

despiq napsal(a):
handle POST neprijma

POST 100% prijimaju metody action, handle aj render. otestovane ajaxom v jquery.

despiq
Člen | 320
+
0
-

ola: nic takovyho sem nepsal, ja sem naprosto pro kompatibilitu, ale jak sem psal, pokud si neco posilam do aplikace z venku tak si to musim osetrit sam protoze tam muze poslat kdokoliv cokoliv, co by melo bejt nekompatibilni na $_POST to nevim, a to co bude v promenne to uz je uplne jina debata

honzo,bazo – co delam spatne?:

<?php
		public function handleTest($test)
		{
			dump($test);
			dump($this->getParam("test"));
			dump($_POST['test']);
		}

NULL
NULL
string(4) "pako"

?>

Parametry
application/x-www-form-urlencoded
test pako

Zdroj
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
test=pako

despiq
Člen | 320
+
0
-

tak sem zjistil ze

<?php
$this->getHttpRequest()->getPost()
?>

jde trosku zkratit na

<?php
$this->request->post
?>

coz je podle meho uz velmi rozumne, zadna amerika ale hodi se

Editoval despiq (11. 4. 2010 0:50)