PHP & POST

Programovacie jazyky, rady, poradňa...
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

PHP & POST

Príspevok od používateľa SSPPYY »

Neviete niekto ako mam poslat data metodou POST ale aby mi to potom neotvorilo tu stranku na URL ktorej som data poslal ale najlepsie keby mi to vratilo URL tej stranky?
Proste chcem cez PHP odoslat formular metodou POST ale nechcem aby sa zmenila stranka, aby sa mohol moj zdrojak dalej vykonat a zistit aka stranka sa nasledne otvorila...
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

ako..?? nechapem

tak len nieco z tohto som pochopil..

Kód: Vybrať všetko

toto ti odosle form na tu istu stranku, kde si - polopate povedane

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" name="form">
a potom na stranke zistujes ze ci

if (isset($_POST['meno_tlacidla_vo_formulati'])) {

co sa ma spravit ak sa odoslal
}else{
zobrazenie formulara
}
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

No vobec si nepochopil.
Proste ked odosles formular tak sa nasledne otvori ta stranka kde si ho odoslal.
Napriklad:
Subor index.php:

Kód: Vybrať všetko

<form action="temp.php" method="post" name="form">
Automaticky sa otvori subor temp.php a zacne vykonavat zdrojak v nom. Presnejsie sa otvory URL:

Kód: Vybrať všetko

http://temp.php?zoznam_premennych
A ja prave nechcem aby sa otvorila ta URL ale chcem aby sa dalej vykonaval zdrojak v index.php a tam sa nasledne zistila a ulozila do premennej cela URL ktora sa mala otvorit.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Tak daj action="index.php" a do formulára pridaj skrytý prvok, ktorý bude obsahovať tú URL (alebo len niečo, podľa čoho bude skript vedieť, aké URL to má byť).
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Jooj lenze ja neviem aka URL to ma byt :cry:
Proste ja odoslem formular a na zaklade dat ktore obsahuje mi to otvori stranku. Teda ja dopredu neviem aka bude vysledna URL a to chcem zistit.
Sak to je snad dost zrozumitelne napisane :(
Priklad:
Na internete je dajaky formular. A ja si chcem urobit vlastnu stranku na jeho vyplnenie a odoslanie a nasledne zistenie ci bol odoslany alebo nie na zaklade URL po odoslani.
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

no tak neviem, ako ty chrono, ale ja vobec nechapem..
sorry SSPPYY

mozno neskor, ked uz nieco niekto napise, cast riesenia, tak pochopim..
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

ja tiez vazne neviem co bys rad... skusnapisat konkretny priklad. nie len tak ze formular sa odosle a tak. napis presne co sa v nom odosiala a co sa ma spravocat a tak.
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

Akoze ja uz fakt neviem :?
JE MOZNE ODOSLAT FORMULAR NA INU STRANKU METODOU POST BEZ TOHO ABY SA TA STRANKA OTVORILA :?:
Tomu tu nikto nevie pochopit alebo co? :shock:

Mam svoju stranku www.test.wz.cz. Z nej odoslem formular napriklad na stranku www.mobile.com a automaticky sa mi ta stranka otvori napriklad v tvare:

Kód: Vybrať všetko

http://www.mobile.com/index.php?mode=auto&time=10
alebo v pripade ak odoslane data nebudu korektne tak v tvare:

Kód: Vybrať všetko

http://www.mobile.com/index.php?mode=error
Ale ja nechcem aby sa otvorila ta stranka. Ja chcem aby po odoslani formulara mi ostala otvorena moja stranka www.test.wz.cz a tam sa zistilo ze ktora z tych dvoch hore uvedenych URL sa mala otvorit.
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

jaj ty chces aby ked odosles formular tak na obsluznej stranke sa len skrypt pomocou php vykonal a ihned pomocou header vratil na stranku kde je formular? teda ti to zostane na stranke kde odosielas formular :)
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

geoge046 napísal:jaj ty chces aby ked odosles formular tak na obsluznej stranke sa len skrypt pomocou php vykonal a ihned pomocou header vratil na stranku kde je formular? teda ti to zostane na stranke kde odosielas formular :)
Huraaa :lol:
Presne dajak tak to chcem. Ako si napisal po odoslani formularu z mojej stranky sa na tej obsluznej (do jej zdrojaku nemozem zasahovat) vykona vsatko co ma a vysladna URL sa vrati naspet na moju stranku kde sa ulozi do premennej po lopatisticky povedane :wink:
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

Príspevok od používateľa geoge046 »

No tak na ten obsluznej ak nemozes zasahovat, tak to potom inak nespravis. Jedine keby mas k tej stranke pristup tak sa to da naprogramit pomocou PHP. Inaksi sposob nepoznam :).
final
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 206
Registrovaný: 04 dec 2005, 11:43
Bydlisko: Prievidza

Príspevok od používateľa final »

hm no mám v tom zmätok, spomínaš formuláre, stránky atď.. tak teraz neviem či to má byť server-side, alebo client-side..

na strane klienta by si teoreticky mal nejakú funkciu v javascripte, ktorá sa zavolá keď sa odošle formulár.. ten bude mať nastavený target na (trebars skrytý) iframe a akonáhle sa mobile.de vyhodnotí, tak sa cez location.href v tom iframe zistí čo za adresu to vyplulo.. snaď som dobre pochopil o čo ti ide..

edit: :o nj, skúšal som teraz na iframe, frame, a novom okne, všetky majú toto "pekné" bezpečnostné opatrenie.. sry potom
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Použi napr. curl knižnicu (príklad som sem niekde posielal), alebo niečo podobné.
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

final: nad tym som uz rozmyslal ale pokial viem tak neexistuje funkcny sposob ako zistit aktualne URL otvorene v iframe.

chrono: CURL to prvy krat pocujem :(
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

A dajak jednoduchsie sa to neda lebo to CURL sa mi nepaci, prilis komplikovana instalacia a vobec nevyzera zeby to robilo to co chcem...
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

robi to presne to co chces a instalacia nie je vobec taka zlozita
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

odoslat data pomodou POST nie je tazke ... ziskas v pohode stranku na ktoru sa dostanes po prihlaseni .. teda aspon mi to funguje v pripade ked sa po zalogovani nezmeni stranka ... neviem ako to bude v pripade s presmerovanim

a teraz narychlo neviem ako (a ci) z toho zistis URL tej ziskanej stranky ... mozno budu vediet ostatni

neviem koho to je fcia .. bola tu na fore

Kód: Vybrať všetko

function sendData($host, $method, $path, $data=null)
{
  $write = false;
  $fp = fsockopen($host, 80, $errno, $errstr, 30);
  if (!$fp)
  {
    $res = "chyba: $errstr ($errno)<br />\n";
  }
  else
  {
    if( "GET" == $method && isset($data) )
      $path .= "?$data";
    $out = "$method $path HTTP/1.1\r\n";
    $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Content-length: ".(("POST" == $method)?strlen($data):0)."\r\n";
    $out .= "Connection: Close\r\n\r\n";
    if( "POST" == $method && isset($data) )
      $out .= $data;
    fwrite($fp, $out);

    while (!feof($fp))
    {
        $res .= fgets($fp, 128);
    }
    fclose($fp);
  }
  return $res;
}
pouzitie napr

Kód: Vybrať všetko

$data = sendData('www.hojko.com', 'POST', '/login.php' , 'username=janko&password=mrkvicka');
SSPPYY
Medium Star
Medium Star
Príspevky: 370
Registrovaný: 28 máj 2006, 9:46

Príspevok od používateľa SSPPYY »

mastermind: akoze vobec, len skompilovat nanovo PHP co nemam ani paru ako a navise mam taky dojem ze to asi na servery poskitujucom hosting nebude mozne.

gwixt: dik vyzera to dobre no len to asi nefunguje. Teda data sa vobec nespracuju. V konkretnom pripade vobec nedojde ku loginu na hojko.com a navise je to dost neprakticke riesenie vzhladom nato ze $host moze byt v cielovej stranke iny ako v startovacej co ale toto neberie do uvahy lebo ciel sa utvori kombinaciou $host a $path.
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

ale toto primarne odosiela data stranke urcenej ako host .... a vrati OBSAH stranky ... samozrejme po spracovani tych dat odoslanych POSTom ...

a aspon v tych pripadoch co som to ja pouzival tak to fungovalo dobre .. nie je dovod preco by to fungovat nemalo ... je to len odoslanie jednoducheho HTTP requestu a nacitanie odpovede ..
Napísať odpoveď