Autor Zpráva
tanagy
Profil
Zdravím.
Možná pitomý dotaz,ale chci přenášet proměnné mezi skripty tak, aby nebyly jednoduše vidět v příkazovém řádku (a nechci použít session, ani cookie) -> chci to provést pomocí POSTU.
Pokud přenáším data formuláře, tak je to jasné, tam dám method="POST", ale jak přenést proměnnou mimo formulář metodou post?
Když chci přenést proměnnou $pokus ze skriptu skript1.php do skript2.php, jaký kód mám umístit do skript1.php? Do skript2.php dám $_POST['pokus'].
Díky za odpověď
Miloš
Profil
Hádám, že by to šlo jako neviditelný formulář:
<form action="nejaky.php" method="post"><p>Odstavec obalený formem</form></p>
<p>Normální odstavec</p><p>Normální odstavec</p>


V příslušném formu přidáš skrytý input a příslušnému odkazu navěsíš na onclick potvrzení (submit).
Nevýhoda – závislost na js.
DJ Miky
Profil
a příslušnému odkazu navěsíš na onclick potvrzení (submit).
Nevýhoda – závislost na js.


Nebo tam dát input type="submit" a nastylovat ho jako odkaz.
tanagy
Profil
Nojo, ale to pořád bude chtít zmáčknout submit,ne? (nebo alespon nejakou javaudalost - onmouseover,atd...)
De mi konkretne o to, že v prvním skriptu mám formulář s údajema - to přenesu do druhýho skriptu, kde to vyhodnotím, uložím do db a pak se zase vracím do prvního skriptu - ale z druhého do prvního chci předat proměnnou (bez jakéhokoli clicku nebo něčeho podobnýho)
tiso
Profil
akú premennú? čo je v nej?
Ssob
Profil
tanagy
A kdy ji chces predat? Musi to byt prece reakce na nejakou udalost.
tanagy
Profil
V prvnim skriptu mam formular. Vyplnim ho a submitem udaje odeslu do druheho skriptu, kde ty udaje vyhodnotim , provedu SQL a chci se vratit do skriptu prvniho - redirektem (bez provedeni jakekoli akce - bez kliku, bez mouseoveru...). Proste chci jen predat zpatky do prvniho skriptu promennou, tak aby nebyla videt v prikazove radce. A nechci session, nebo cookie.
Co bude v promenne je vcelku sumafuk - treba text od 12ti znacich.
Ssob
Profil
tanagy
Nechapu co se ti nelibi na session.. V takovem pripade nevidim jinou moznost nez vygenerovat formular a pak ho hned odeslat.. Ale podle me to je blbost.
tiso
Profil
tanagy - tiež si môžem povedať že Tvoj problém je mi šum a fuk...
Vylúčil si všetky schodné cesty pre prenos premennej - $_GET, $_SESSION či $_COOKIE, ostáva Ti súbor (uloženie/načítanie), DB (čiže SELECT po návrate do prvého skriptu) a $_POST buď cez odoslanie formulára alebo sa mi zdá cez CURL (bližšie vôbec neviem).
Najjednoduchšie ale bude spracovať všetko na jednej stránke a nemusíš nič riešiť.
tanagy
Profil
chápu a rozumím

Bohužel sem to zpracovávat v tom samém skriptu nechtěl. Chtěl jsem udělat několik skriptů s formuláři, které budou posílat data na jeden společný, který je bude zpracovávat a vracet jim hodnoty. Ale všechno jde udělat a předělat.

Všechno co ste tu napsali sem už znal, ale neznám php uplně dokonale, proto sem se radši zeptal, jestli náhodou neexistuje něco jako export_variable_by_POST(variable,skript); :o))))))))

Sessions my na serveru nefungovaly - asi nebyly povolený v konfiguraci apache. Budu se snažit je nějak zprovoznit. Z uvedených možností to bude asi nejpoužitelnější.

Díky za názory a nápady

tiso - nechtěl sem se tě nějak dotknout neboco, tim že sem psal ze v promene muze byt cokoli sem chtel rict, ze presne nevim,co budu prenaset - mozna jen text o par znacich, mozna sadu parametru - to by se ukazalo pozdeji.
tiso
Profil
Tak ten spoločný skript includni do začiatku kazdej stránky s formom a bude sa starať o jeho spracovanie + nastaví nejakú tú premennú čo potrebuješ.

Do budúcna: je lepšie keď niečo vysvetlíš popredu a nie až dodatočne...
YoSarin
Profil
tiso
Tak ten spoločný skript includni do začiatku kazdej stránky s formom
Pak zase bude problém s refreshováním stránky.
tiso
Profil
YoSarin - bude, pokiaľ to neošetrí, čo pri riešení s DB nie je problém.
YoSarin
Profil
tiso
To už je pak otázka co člověk radši - jestli v DB hlídá duplicity, nebo dává přednost nepřeposílání postu. Prašť nebo uhoď :)
tiso
Profil
YoSarin - ja som s tým nezačal...
DoubleThink
Profil *
tanagy
Nezaujatým pohledem se dá prohlásit, že je koncepce tvých scriptů špatná.

POST slouží na odeslání většího množství dat. Zde si nejde představit nic jiného, než formulářová data.
Oddělení výkonných scripů od prezenčních je běžné. V takovém případě se formuláře posílají na výkonný script a ten se pak směřuje zpět s hlavičkou "303 Method".

Pokud nechceš opustit prezenční stránku, musíš použít AJAX.

Pokud chceš podržet větší množství dat delší dobu, pak použij Sessions (aby na nějakém serveru nefungovaly, jsem ještě nezažil). Druhou možností je vláčet je s sebou jako hidden inputy se serializovanými daty (často ještě prohnanými přes Base64) - tohle řešení mají občas v oblibě FrontPage Extensions.

Závěrem - není žádný důvod posílat POSTy zevnitř scriptu. Ale samožřejmě to jde - pomocí fsockopen().
Toto téma je uzamčeno. Odpověď nelze zaslat.

0