Autor | Zpráva | ||
---|---|---|---|
mistig Profil |
Mám dva soubory:
1) index.html 2) prehled.php Na stránce index.html je formulář s action, odkazujícím na jiný soubor prehled.php. Ten odešle přes metodu POST údaje na emailové adresy a zároveň zobrazí přehled v HTML, kde je zobrazeno, co uživatel ve formuláři vyplnil + další věci jako čas objednávky, vygenerovaný variabilní symbol atd. Při refreshnutí stránky se vše provede znovu a přijde tolik emailů, kolikrát se to refreshne. Což není moc dobré. Stejně tak pokud uživatel v prohlížeči dá šipku zpět a opět klikne na tlačítko odeslat. Pokud bych nechtěl mít tu stránku s HTML přehledem, tak bych ze stránky prehled.php použil pouze tu PHP část, která odešle údaje na email a použil header('Location: http://www.mojeadresa.cz/') pro přesměrování na index.html a tím by to asi bylo vyřešené. Jak to ale udělat i s tím přehledem o objednávce? Díky moc za případné odpovědi. |
||
Alphard Profil |
#2 · Zasláno: 20. 8. 2015, 03:29:34
Přesměrování je správné řešení, data pro zobrazení je třeba někam uložit. Někdy je možné je zpětně vytáhnout z databáze, pokud to nejde, uložte si je do session.
Kdyby vást to zajímalo víc, tak konceptu zobrazení obecných zpráv (Objednávka byla uložena, Soubor byl smazán, ...) se říká flash messages. |
||
mistig Profil |
#3 · Zasláno: 20. 8. 2015, 04:27:18
Alphard:
Tak o session si budu muset ještě něco přečíst... zatím o tom vím jen to, že existuje :) Databázi nepoužívám, bohatě mi stačí to poslání na email. Takže řešení je že budu mít ty soubory 3? - index.html s formulářem a action odkazující na čistý PHP kód - neco.php který odešle ty údaje na email a do něj strčím ten header('Location: prehled.html'); který po odeslání údajů na email přesměruje na novou HTML stránku - prehled.html to je ta HTML stránka které už refresh vadit nebude A k tomu abych mohl ty PHP proměnné zobrazit na té posladní stránce mi pomůže session? PS: Zatím jsem to nestudoval, jen si to snažím sedláckým rozumem ujasnit :) |
||
mimochodec Profil |
#4 · Zasláno: 20. 8. 2015, 06:24:43
mistig:
> Takže řešení je že budu mít ty soubory 3? > - index.html s formulářem a action odkazující na čistý PHP kód > - neco.php který odešle ty údaje na email a do něj strčím ten header('Location: prehled.html'); který po odeslání údajů na email přesměruje na novou HTML stránku > - prehled.html to je ta HTML stránka které už refresh vadit nebude Ano. „A k tomu abych mohl ty PHP proměnné zobrazit na té posladní stránce mi pomůže session?“ Session se dá použít k předání informace ze stránky na stránku, aniž by se to vezlo jako součást adresy. Kdyby šlo jen o informaci, jestli mail v pořádku odešel nebo ne, by to potřeba nebylo - po vyhodnocení odeslání lze přesměrovat třeba na stránku odeslanook.html / odeslanochyba.html. Zajímavější je to ale od momentu, kdy si uvědomím, že když mail neodešel, může být příčina ve špatně vyplněném formuláři, tudíž by se hodilo přesměrovat ne na stránku s informací "chyba", ale na původní formulář, kde by bylo velmi záhodno předvyplnit ho tím, co tam uživatel napsal. A pro přenos informací do toho formuláře se session hodí výtečně. Ještě bych dodal z praxe, že html stránky vůbec nepoužívám, všechno pojmenovávám .php. Člověk nikdy neví, kdy se mu kde bude hodit nějaká php funkce. |
||
mistig Profil |
#5 · Zasláno: 20. 8. 2015, 11:46:04
Děkuji za Váš čas. Zkusím si s tím pohrát.
|
||
Časová prodleva: 10 let
|
0