(PHP) Form
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: (PHP) Form
no pred pouzitim headeru nesmies nic vypisovat .. ta funkcia musi byt niekde na zaciatku scriptu, pred akymkolvek vystupom
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
keď to dám na začiatok warning nevipisuje lebo ma to chce hodit do zlozky i riadky...*****HERO***** napísal:no pred pouzitim headeru nesmies nic vypisovat .. ta funkcia musi byt niekde na zaciatku scriptu, pred akymkolvek vystupom
Kód: Vybrať všetko
$_SERVER = 'index.php';
header('location: ' . $_SERVER['PHP_SELF']);-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: (PHP) Form
a preco upravujes superglobalnu premennu $_SERVER?
proste na zaciatku action scriptu si odchyt formular, porob tu svoju magiu s tymi textovymi subormi a presmeruj to cez header dakam, to je vsetko. ak sa chces presmerovat na ten isty script v ktorom spracuvavas formular, tak pouzi to $_SERVER['PHP_SELF'] -> http://php.net/manual/en/language.varia ... lobals.php
proste na zaciatku action scriptu si odchyt formular, porob tu svoju magiu s tymi textovymi subormi a presmeruj to cez header dakam, to je vsetko. ak sa chces presmerovat na ten isty script v ktorom spracuvavas formular, tak pouzi to $_SERVER['PHP_SELF'] -> http://php.net/manual/en/language.varia ... lobals.php
Re: (PHP) Form
Ak používaš čisto len echo alebo printf a output_buffering nie je nastavené na "On" v php.ini, posiela sa každý výstup priamo klientovi. Ak zapneš output_buffering alebo použiješ funkciu "ob_start()", začne sa výstup zapisovať do bufferu z kadial sa finálne vypíše (príp. je možné, že sa vypíše po jeho naplnení, alebo na príkaz).
No a toto celé má dopad na hlavičku. Totiž HTTP hlavička sa nevolá "header" len tak pre nič za nič, ale pre to, lebo sa zvyčajne posiela na začiatku spolu so základnými informáciami. Čiže ak nastavíš zapneš bufferovanie výstupu, hlavička bude taktiež niekde v nejakom bufferi a bude sa dať pozmeniť cez header.
No a toto celé má dopad na hlavičku. Totiž HTTP hlavička sa nevolá "header" len tak pre nič za nič, ale pre to, lebo sa zvyčajne posiela na začiatku spolu so základnými informáciami. Čiže ak nastavíš zapneš bufferovanie výstupu, hlavička bude taktiež niekde v nejakom bufferi a bude sa dať pozmeniť cez header.
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
Ale keď dám na začiatok*****HERO***** napísal:a preco upravujes superglobalnu premennu $_SERVER?
proste na zaciatku action scriptu si odchyt formular, porob tu svoju magiu s tymi textovymi subormi a presmeruj to cez header dakam, to je vsetko. ak sa chces presmerovat na ten isty script v ktorom spracuvavas formular, tak pouzi to $_SERVER['PHP_SELF'] -> http://php.net/manual/en/language.varia ... lobals.php
Kód: Vybrať všetko
<?php
header('location: ' . $_SERVER['PHP_SELF']);?>Tak kam mám dať ten header...
Form vypadá takto
Kód: Vybrať všetko
<form name="counter" action="" method="post"><input type="text" size="8"
name="d2"><input type="submit" name="btn" id="btn" value="Ďalší web" style="display:none"/></form>//autoeditácia príspevku (16 Jan 2013, 14:57)
a nedá sa to nejako oklamať tým že by sa mi zmenili name="counter" a name="d2" na name="counter2" a name="d3" tým padom keď stlačí f5 sa nič nevykoná...
Lenže ako to spraviť?
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: (PHP) Form
je ti snad jasne, ze ten redirect musis dat do nejakej podmienky, v ktorej kontrolujes, ci bol formular odoslany, inak sa to zacykli
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
hej dal som to navrch stánky ale teraz keď kliknem na next tak mi to hned presmeruje... takto to nepojde je este nejaky iny sposob?*****HERO***** napísal:je ti snad jasne, ze ten redirect musis dat do nejakej podmienky, v ktorej kontrolujes, ci bol formular odoslany, inak sa to zacykli
Re: (PHP) Form
Ak riesis redirect, tak ja som to kedysi robil tak ze som echoval <meta>, ale bolo to z ineho dovodu. Pokial viem sa da aj vyechovat javascript.
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
Neriešim mne ide oto keď stlačím f5 nech sa nevykoná znovu príkaz(script)pcsiete napísal:Ak riesis redirect, tak ja som to kedysi robil tak ze som echoval <meta>, ale bolo to z ineho dovodu. Pokial viem sa da aj vyechovat javascript.
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: (PHP) Form
buchticka221 napísal: hej dal som to navrch stánky ale teraz keď kliknem na next tak mi to hned presmeruje... takto to nepojde je este nejaky iny sposob?
pojde to tak, ale ty to robis zle .. daj sem kod
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
[quote="*****HERO*****"]
kkk
kkk
-
*****HERO*****
Guru wannabe
- Príspevky: 2446
- Registrovaný: 08 máj 2006, 1:34
Re: (PHP) Form
no a kde je teda problem? a kde je zvysok kodu, ktory sa ma vykonat ked odosles formular?
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: (PHP) Form
keď kliknem na dalsi web tak mi to vykoná ten header co si mi poslal ( cize sa presmeruje stranka a script ide od zaciatku) cize ten kod v*****HERO***** napísal:no a kde je teda problem? a kde je zvysok kodu, ktory sa ma vykonat ked odosles formular?
if (isset($_POST['btn']) && !empty($_POST['btn'])){
sa vobec nevikoná ja to proste nemozem refreshovat stranku je neaky iny sposob?
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Odošle príkaz znovu
Mám form
keď kliknem na Ďalší web a potom stlacim f5 tak mi znovu vykona skript... Dá sa to upraviť aby po kliknuti na Ďalší web keď stlačí f5 tak sa refreshne stranka ale nevykona skript odznovu?
Kód: Vybrať všetko
<form name="counter" action="" method="post"><input type="text" size="8"
name="d2"><input type="submit" name="btn" id="btn" value="Ďalší web" style="display:none"/></form>-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Odošle príkaz znovu
subor1 - formular, action na subor2
subor2 - vykonavajuci skript, a nakonci header("Location: ./subor3.php");
subor3 - hlaska: "ok, skript vykonany"
toto myslis? pripadne pouzi method GET, a nie POST. zalezi o aky formular ide
subor2 - vykonavajuci skript, a nakonci header("Location: ./subor3.php");
subor3 - hlaska: "ok, skript vykonany"
toto myslis? pripadne pouzi method GET, a nie POST. zalezi o aky formular ide
-
harrison314
Hardcore addict
- Príspevky: 8223
- Registrovaný: 27 máj 2009, 20:42
- Bydlisko: Bratislava
- Kontaktovať používateľa:
Re: Odošle príkaz znovu
to sa riesilo uz v jeho teme http://www.hojko.com/php-form-t177276.htmlEverhard napísal:subor1 - formular, action na subor2
subor2 - vykonavajuci skript, a nakonci header("Location: ./subor3.php");
subor3 - hlaska: "ok, skript vykonany"
toto myslis? pripadne pouzi method GET, a nie POST. zalezi o aky formular ide
Re: Odošle príkaz znovu
V tej teme vidim, ze nechce pouzivat metodu GET, aby mu link hore neupravovalo. Tu nechce pouzivat metodu POST, koli F5.
Potom ostava obnovovat obsah webu cez JQuery.
Potom ostava obnovovat obsah webu cez JQuery.
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: (PHP) Form
témy spojené
-
buchticka221
Medium Expert
- Príspevky: 120
- Registrovaný: 09 jan 2013, 13:14
- Bydlisko: Galanta
Re: Odošle príkaz znovu
JQuery a to už ako ja proste potrebujem aby sa vymazali tie data po odoslaní formulára a to tak že čo bude vEverhard napísal:V tej teme vidim, ze nechce pouzivat metodu GET, aby mu link hore neupravovalo. Tu nechce pouzivat metodu POST, koli F5.
Potom ostava obnovovat obsah webu cez JQuery.
if (isset($_POST['btn']) && !empty($_POST['btn'])){
ostane zobrazené... Keby tam dam echo"som idiot"; a pouzil by som
header('location: ' . $_SERVER['PHP_SELF']);
tak mi to ten echo "som idiot"; nezobrazí lebo sa hneď stránka presmeruje...