Dobrý den,
můj web má v současnosti 3 fáze - normální stav - obyčejné HTML,
main.php (který zpracovává QueryString odeslaný z obyčejného HTML) a
error.php (kterýžto vybírá podle kódu erroru z QueryStringu hlášku k
výpisu). Problém je, že kamkoliv se vydám z main.php potřebuji přenést
QueryString. (status akce/číslo erroru) Proto redirektuji s QueryStringem
erroru do error.php. Jenomže v main.php může také dojít k akci, která
nezkončí chybou, při které vznikne HTML kód. Pokud se to stane, tato akce
dopadla úspěšně a já potřebuji do QueryStringu dát informaci o úspěchu.
Ale asi není možné nastavit QueryString na současné stránce. Proto musím
redirectovat. (Proto při chybovém stavu redirectuji do error.php.) Chyby jsou
malé, proto stačí předat kód chyby do error.php QueryStringem. Jenže
potřebuji vypsat i výsledek výtahu z databáze. (zmíněné vygenerované
HTML) A ten již do QueryStringu nenacpu. Tudíž v main.php vygeneruji HTML,
ale nemohu ho zobrazit, jelikož do QueryStrigu musím dosadit status, že se
akce zdařila, což znamená redirectovat, což znamená ztrátu vygenerovaného
HTML. Jak tedy naložit s vygenerovaným HTML? Napadlo mne samozřejmě ukládat
jej do souboru a na přesměrované stránce jej includovat. Zde se jen ptám,
zda-li není efektivnější řešení. Ideálem by bylo nastavení QueryStringu
bez potřeby přesměrování. Pokud je však nutností, bojím se zmíněného
řešení. Jelikož každý uživatel bude mít svůj výtah...
Děkuji.
Jednoduše - potřebuji přenést HTML vygenerované v PHP kódu do stránky
s požadovaným QueryStringem. Musí to však být dynamické řešení - aby
jej mohlo používat tisíce uživatelů současně - každý s jedinečným
HTML...
Ty stránky asi nebudou každá jiná, takže bych měl pár .phtml šablon,
do kterých by se podle potřeby dosazovala data. Předal by jsi pole dat a
název(typ) šablony a natáhl ji na té požadované stránce. Nevím jestli to
je správné řešení, ale je to řešení
Já chci mít holé PHP v main.php. Toho dosáhnu jen vyřešením
problematiky předání QueryStringu do cílové stránky, bez ztrát
vygenerovaného obsahu. Tedy i errory bych vygeneroval přímo v main.php a
stejným způsobem jako u toho výtahu z databáze bych dosadil příslušný
QueryString. Takže řešení, které navrhnete by mohlo počítat i s tím, že
do něj nacpu errory. Pak budu mít jen HTML a PHP... (Naprosto
separované.)
Nechce se mi do toho plést klient. Když vymyslím serverové řešení,
budu řešit funkčnost na jednom PC, když u klienta, budu jich řešit
milióny... (I šéf by chtěl serverové řešení - klientům by to usnadnilo
používání - nejsou to lidi, co PC umí používat - 50 - 70 let...) Mám
několik řešení, ale doufal jsem, že napíšete, že není třeba
redirectovat, nebo, že se dá nějak zachovat vygenerované HTML, či prostě,
že by to šlo nějak jednoduše. Zkusím ještě předejít vygenerování a
nějak to přesměrovat ještě před tím. Ale zdá se to být
nepravděpodobné...
Psal jsem to jednoduše - potřebuji po vygenerování HTML(výtah z
DB)/Erroru nacpat do URL status. Error si alespoň mohu poslat QueryStringem,
tak jsem udělal tu error.php, ale HTML již ne... (Vycházím z toho, že
QueryString nastavím jen při přesměrování.)
Potřebuji dostat návrat do jednoho programu. Kdybych to nechal jen v HTML,
musel by si ten program poradit s HTML. S QueryStringem to bude mnohem
efektivnější... (Nehledě na to, že nebude odchytávat stráku - vycucne si
jen URL.)
Jasně - redirectuji do toho souboru a pak ho smažu. Geniální! Jen - jak
to bude náročné? (jeden záznam má asi 320znaků - záznamů bude
průměrně asi tak 5)
Nějak... Takže je to to
řešení, co jsem popisoval nahoře? Tak to už mám nápad. Vytvořím ten
soubor pod IČem a po použití ho smažu... (Nebo ho vytvořím jako cache...
Nebo jako ho vytvořit virtuálně?)
Napadl mne opačný postup. Nebudu se snažit dostat výstup do QueryStringu.
Uložím ho pod souborem s IČO v názvu a program si ho stáhne. Pak tedy bude
stačit, že vyšle URL, počká si dejme tomu 20 sekund a pokusí se stáhnout
soubor. Bude to opakovat tak dlouho, dokud tam nebude, nebo dokud to nevzdá.
Jak ho stáhne, tak ho smaže... Nechápu, proč mě to nenapadlo rovnou...
(výstupem bude jen status (kód) - postačí tedy nějaké cache)
Přesto nebudu mít request jako při čekání na Redirect. Prostě jen
vyšlu URL, ale jestli se to něco podařilo, či cokoliv jiného, se dozvím
až po vytažení cache... Takže se na serveru budu z toho programu v nějakém
intevalu dožadovat cache pojmenovaného po IČu...
Blbnu - bude to Delphi. Čily - jak to bude vypadat u Delphi? (Například
vyšlu URL, s QueryStringem pro regitraci.) Nechápu, co mám poslat ze serveru,
jelikož většinu errorů, podle kterých určuji status si vymýšlím z
podmínek. Tedy vygeneruji pouze HTML s hláškou. Ale status jsem chtěl
předávat přes QueryString. Ale jak to dát do odpovědi netuším...
QueryString musí odpovídat požadavkům serveru. Pro registraci je
nejčastěji vyžadována metoda POST. Nelépe se k tomuto účelu asi hodí
program Curl, který zvládne i dost složité a netypické požadavky. Je to i
modul v PHP.
Žádné formuláře. Pošlu QueryString. Mámto takto jednoduché -
QueryString má všechny parametry - proměnná = hodnota... Já zde řeším,
jak dát programu status... (Request na QueryString se jevil
nejjednodušeji...)
if ($user[0] == "")
mysqli_query($connection, "INSERT INTO users (ico, pcid, tel, email) VALUES ($ico, '$pcid', {$_GET["tel"]}, '{$_GET["email"]}')");
else
V else je aktuálně redirect do error.php s kódem zprávy "Nelze se znovu
registrovat!". Co mám místo toho redirectu udělat, abych po odeslání URL z
programu dostal kód této zprávy?
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.