Diskuze: Přesměrování na stránku spolu s daty uloženými v POST
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Hmmm,
<form action="(Tvoje stránka kam chceš odeslat formulář)">
snad jsem tě nepochopil špatně a pokud bys nevyžadoval přímo přesměrování, ale pouze o odeslání dat na jinou stránku tak se mrkni třeba na http://php.net/…t-create.php.
A u přesměrování přes header to nějak nejde?
Hmm radši ani ne, toto je opravdu nevhodný způsob jak odeslat data jinam.
Co přesně řešíš za situaci, třeba to půjde řešit jinak..
Mám takový "vyhledávač" a chci aby si lidi mohli nastavit aby se
používalo post místo get . Jenže systém někdy někam přesměruje. A
chtěl bych aby když zadají nějaký dotaz do get tak aby je to přesměrovalo
na post.
Nelze. Musel bys to nějak zahaluzit v JS - třeba by server poslal, co to
chce poslat a kam, potom by JS vygeneroval formulář a odeslal ho.
Možná se dá nějak obejít to generování formuláře.
Nicméně je špatný nápad nechávat uživatele měnit si něco takto, ony
jsou ty metody různé, protože jsou různé, rozdíl je ve víc věcech než
to, že GET se projeví v URL.
Např. POST má dovolené mnohem větší velikosti a umí posílat mutipart
requesty (soubory).
Uživatel hlavně nijak nebenefituje z toho, když se něco pošle jako POST
nebo GET, tak není důvod to nechat uživatele nastavit.
GET
POST
Nehledas spis neco jako session, cookies? K uchovani udaju drive zadanych uzivatelem?
Viz Petr Čech. Pokud by uzivatel prepsal url v adresnim radku a dal enter,
tak si nejsem uplne jisty, zda by slo zachytit pres js. Mozna ano, udalosti jako
onloadbefore, onunloadbefore. Pokud bys to zachytil, pak uz by stacilo jenom
vytvorit form s post, prepsat data, odeslat form. A to puvodni presmerovani
nejak zastavit. Ale nejsem si jisty, zda by to prohlizec dovolil.
Proc nemuzes vyuzit GET? Proc to musi jit do POST? Jak by lidi mohli nastavovat
get a post? To nastavujes preci ty v html strance. GET, POST se da v php precist
z $_REQUEST. Ale ja spis pouzivam konstrukci
$aaa = isset($_POST['aaa']) ? $_POST['aaa'] : isset($_GET['aaa']) ?
$_GET['aaa'] : '';
Si muzes vyzkouset vypis promennych
var_dump('$_SESSION',$_SESSION); // prvni radek programu by mel byt
session_start(), aby session fungovalo a musis do session neco ulozit
$_SESSION['aaa'] = 123;
var_dump('$_REQUEST',$_REQUEST);
var_dump('$_POST',$_POST);
var_dump('$_GET',$_GET);
Kdybych ted vedel, co mi to smazalo v komentari z 8:36, ta prazdna odrazka
Urcite to byla nejaka
moznost,
asi odkaz [a href=url]
Já myslím, že chce právě uživatelům dovolit, aby si určili, zda se budou data posílat jako POST nebo GET.
No, a jakym zpusobem si to predstavujes? Mne nic nenapada, kde by se to dalo
vyuzit.
Kdyz ti prepisi adresni radek v prohlizeci, tak to odesle jako GET.
A jinde na strance je to fuk, tam to muze byt formular. Pripadne odkazy i
formulare muze presmerovat na javascriptove http-request get/post. Ale nevidim
prakticke vyuziti.
At zkusi popsat, jakym zpusobem by se to melo presne pouzivat.
Mozna to chapu uplne spatne.
stranka1.php (form post) -> stranka2.php (data post odeslat jako post) ->
stranka3.php
To resi stream_context_create + neco dalsiho fopen.
Ale otazkou je, zda to takhle delat? Nestacil by treba include te stranky? Nastavit treba nejaky parametr, ze se inkluduje, ktery si bude kod sledovat a treba nebude zobrazovat. Nekde to obdobne resim, protoze jsem byl liny uzavirat to do funkce a nainkludovat jen tu cast s funkci. Cili, velmi nestasne vymyslene.
Mozna lepe misto fopen pouzit file_get_contents.
$context = stream_context_create($opt);
$resource = file_get_contents($url, false, $context);
Je to samozřejmě prakticky blbost, ale dokážu si to představit jako
cvičení - někdo umožní uživatelům změnit téma stránky, někdo chce
umožnit změnit POST na GET a obráceně
Zobrazeno 14 zpráv z 14.