Autor Zpráva
Travis
Profil *
Ahoj. V PHP jsem naprostá lama.

Máme formulář, který pošle data na určitý email.

K tomu používám dva soubory:

formular-k-vyplneni.php
formular-hotovo.php

První se vyplní a druhý odešle data + napíše hotovo.

Jenže já ten formulář mám na hodně stránkách a nechci ty stranky stale kopirovat, jak se tohle da v PHP vyresit?

Dekuji mockrat za odpoved!
Travis
tajny spion
Profil
Funkce include, jestli jsem spravne pochopil. Hledej na internetu - je to i na JPW
souki
Profil
tajny spion
Není náhodou include spíš direktiva?
Mike8748
Profil
souki
a nebude spis nahodou include jazykovy konstrukt?
shaggy
Profil
souki, Mike8748
A nie je to k**** jedno? Zbytočne tu píšete sprostosti a zavádzate tak človeka, čo o tom nič nevie. Už sa to tu písalo viackrát, include máš aj na jakpsatweb
DoubleThink
Profil *
A nie je to k**** jedno?
Ani ne, ale je fakt, že Travisovi to asi bude úplně šumák...
souki
Profil
A jak to teda je? :o)
Mike8748
Profil
>> A jak to teda je? :o)

asi takhle

Travis: potrebujes pouzit include, tim se stranka s formularem vlozi tam kam potrebujes. vkladana stranka bude samostatny html kod toho formulare, zadny HTML hlavicky a podobny veci

include: je jazykovy konstrukt, stejne tak jako require. (viz manual)
Travis
Profil *
Aha aha, Include znám, ale používal jsem ho jenom pro hlavičku nebo menu. Ach ne, proč mě to jen nenapadlo.

Díky všem co pomohli
Travis
Profil *
No dobrá, nevím, jak to použít.

Odešlu formulář ze stránky blablabla.php na stránku takhle:
<form action="formular-k-vyplneni.php " method="post">

Jak zajistím, že se formulář vrátí na stránku blablabla.php?

Můžu to poslat na tu samou stránku?
Nějaký krátky přiklad by pomohl.
Str4wberry
Profil
Travisi
Na to slouží funkce header().
sh00ter
Profil
dej tam
echo "<meta http-equiv='refresh' content='5; URL=".$_SERVER['HTTP_REFERER'].">";

misto ty petky muzes dat cas v sekundach

pokud nefunguje dej tam http_referer
sh00ter
Profil
Na to slouží funkce header().
s tim by byl ten problem ze by nemoh vypisovat to hotovo...pokud je v tom souboru kde by byl ten header
Str4wberry
Profil
sh00tře
„pokud nefunguje dej tam http_referer“
Na ten se nedá moc spoléhat.

„s tim by byl ten problem ze by nemoh vypisovat to hotovo...pokud je v tom souboru kde by byl ten header“
Proč by nemohl? Na to jsi přišel jak?
sh00ter
Profil
tak pokud vim tak header se musi odesilat pred jakymkoliv vystupem, nemam teda zkusenosti s ob_start
Str4wberry
Profil
sh00ter
„tak pokud vim tak header se musi odesilat pred jakymkoliv vystupem, nemam teda zkusenosti s ob_start“
To je samozřejmě pravda; opak netvrdím.
Alphard
Profil
ob_start() by byl k ničemu, při přesměrování by byl výstup stejně ztracen

spíše bych se vzdal hlášky hotovo na té stránce s odesláním, přesměroval bych na hlavní stránku (jestliže jste právě něco odeslali, pravděpodobně nebudete hned chtít odesílat něco dalšího) a na ní vypsal oznámení, třeba takto: if (isset ($_GET['mail']) and $_GET['mail'] == 'odeslano') echo "<p>Email byl úspěšně odeslán, <a href="...">poslat další</a></p>
Str4wberry
Profil
Alpharde
Také řešení. Osobně bych si spíše přidal parametr do přesměrované adresy a podle něj se řídil při (ne)zobrazování formuláře/„Hotovo“.
Alphard
Profil
zobrazení formuláře / hotovo bych rozhodl ihned po odeslání mailu z návratové hodnoty (nebo dříve z kontroly vstupu)

když nastane chyba: přesměruje se zpět na formulář
když bude vše OK: přesměruje se na hlavní stránku (viz minulý příspěvek)
Str4wberry
Profil
Alpharde
Tak to myslíme asi oba skoro to samé. S tím rozdílem, že já bych všechno „vracel“ s příslušným parametrem v adrese na stránku s formulářem („formular-k-vyplneni.php“), která by rozhodovala (určovala by, jestli se zobrazí chyba, potvrzení nebo prostě jen formulář…).
Alphard
Profil
Tak to myslíme asi oba skoro to samé.
v podstatě ano, nemá smysl tento chat prodlužovat, ať se Travis rozhodne

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0