Předvánoční Black Friday Předvánoční Black Friday
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

Diskuze: Přesměrování na stránku spolu s daty uloženými v POST

PHP PHP Přesměrování na stránku spolu s daty uloženými v POST American English version English version

Aktivity (1)
Avatar
Matěj Strnad:29. května 20:48

Existuje nějaká možnost přesměrování na jinou stránku spolu s daty v POST? :)

Odpovědět 29. května 20:48
Ty vaše internety!
Avatar
Odpovídá na Matěj Strnad
Uživatel sítě :29. května 20:59

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.

Nahoru Odpovědět 29. května 20:59
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Uživatel sítě
Matěj Strnad:29. května 21:01

A u přesměrování přes header to nějak nejde? :)

Nahoru Odpovědět 29. května 21:01
Ty vaše internety!
Avatar
Odpovídá na Matěj Strnad
Uživatel sítě :29. května 21:05

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.. :)

Nahoru Odpovědět 29. května 21:05
Chybami se člověk učí, běžte se učit jinam!
Avatar
Matěj Strnad:29. května 21:10

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. :)

Nahoru Odpovědět 29. května 21:10
Ty vaše internety!
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Matěj Strnad
Petr Čech:29. května 21:45

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.

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět 29. května 21:45
the cake is a lie
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. května 8:36

GET

  • url v adresnim radku prohlizece
  • <script src="..">, style, img, object, iframe...
  • <form method=get>
  • js request
  • php header('Location: '.$url);

POST

  • <form method=post>
  • <form method=post action=url?params enctype="multi­part/form-data">
  • js request
  • php stream_contex­t_create

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['a­aa']) ? $_POST['aaa'] : isset($_GET['aaa']) ? $_GET['aaa'] : '';

 
Nahoru Odpovědět 30. května 8:36
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. května 8:40

Si muzes vyzkouset vypis promennych
var_dump('$_SES­SION',$_SESSI­ON); // prvni radek programu by mel byt session_start(), aby session fungovalo a musis do session neco ulozit $_SESSION['aaa'] = 123;
var_dump('$_RE­QUEST',$_REQU­EST);
var_dump('$_POS­T',$_POST);
var_dump('$_GET',$_­GET);

 
Nahoru Odpovědět 30. května 8:40
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. května 8:43

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]

 
Nahoru Odpovědět 30. května 8:43
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Peter Mlich
Petr Čech:30. května 13:09

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.

Nahoru Odpovědět  +1 30. května 13:09
the cake is a lie
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Petr Čech
Peter Mlich:30. května 15:30

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.

 
Nahoru Odpovědět 30. května 15:30
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. května 15:38

Mozna to chapu uplne spatne.
stranka1.php (form post) -> stranka2.php (data post odeslat jako post) -> stranka3.php
To resi stream_contex­t_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.

 
Nahoru Odpovědět 30. května 15:38
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:30. května 15:44

Mozna lepe misto fopen pouzit file_get_contents.

$context  = stream_context_create($opt);
$resource = file_get_contents($url, false, $context);
Editováno 30. května 15:44
 
Nahoru Odpovědět 30. května 15:44
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Peter Mlich
Petr Čech:30. května 16:00

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ě :D

Nahoru Odpovědět 30. května 16:00
the cake is a lie
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.