NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 10 - Vylepšení kontaktního formuláře v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
hrncal.junior:15.3.2018 17:06

No chci docílit toho, aby kromě příjemncům přišel e-mail i tomu, co vyplní formulář.i

 
Odpovědět
15.3.2018 17:06
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na hrncal.junior
Jan Lupčík:15.3.2018 17:35

Tak použij něco takového:

$prijemci = "[email protected], [email protected], ";
$prijemci .= $_POST["email"];
mb_send_mail($prijemci, $predmet, $textZpravy, $hlavicka);
Odpovědět
15.3.2018 17:35
TruckersMP vývojář
Avatar
Odpovídá na Jan Lupčík
hrncal.junior:15.3.2018 18:15

Díky moc, jsem úplný blb. Cpal jsem jabka z hruškama a divím se, že to nefunguje. Už mi to frčí jak má.

 
Odpovědět
15.3.2018 18:15
Avatar
Roman Duchoň:16.4.2018 16:47

Nějaké základy už jsem pochytal jinde, jedu si tu kurzy, abych si ty základy rozšířil a tenhle díl nemá chybu! :-)
XSS (jsem nevěděl, že se to tak jmenuje) už mi samo o sobě vrtalo hlavou a přemýšlel jsem, jak mu zabránit, takže htmlspecialchars() se hodí.
header('Location: stranka.php'); s použítím GET je pro mě taky suprová novinka.
Až jsem z toho zaražen a mám obavy, že víc takových informací a budu muset celé doposud vytvořené stránky smazat a udělat odznova...
Ale jednu otázku bych přece jen měl - co se stane, když při "přesměrování" nepoužiji ve funkci exit?

Odpovědět
16.4.2018 16:47
RD
Avatar
Jiřina Trojánková:29.4.2018 19:25

Ahoj, poraďte prosím, když napíšu: header('Location: #message'); tak mě to po odeslání hodí na správné místo, ale nevypíše hlášku. Když napíšu: header('Location: #message?uspech=a­no'); tak mě to ani nehodí na správnou sekci, ani nevypíše hlášku, ale vypise se uspech=ano v url.. Nedava mi to smysl..
<code> <?php
mb_internal_en­coding("UTF-8");
$hlaska = '';
if (isset($_GET['us­pech']))
$hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
if ($_POST)
{
if (isset($_POST['fir­stname']) && $_POST['firstname'] &&
isset($_POST['las­tname']) && $_POST['lastname'] &&
isset($_POST['e­mail']) && $_POST['email'] &&
isset($_POST['pho­ne']) && $_POST['phone'] &&
isset($_POST['mes­sage']) && $_POST['message'])
{
$hlavicka = 'From:' . $_POST['email'];
$hlavicka .= "\nMIME-Version: 1.0\n";
$hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n";
$adresa = 'jirina.trojan­[email protected]';
$predmet = 'Nová zpráva z mailformu';
$uspech = mb_send_mail($a­dresa, $predmet, $_POST['message'], $hlavicka);
if ($uspech)
{
$hlaska = 'Email byl úspěšně odeslán, brzy vám odpovíme.';
header('Location: #message');
//http://www.tes­t.com/index.htm?na­me1=value1&na­me2=value2
exit;
}
else
$hlaska = 'Email se nepodařilo odeslat. Zkontrolujte adresu.';
}
else
$hlaska = 'Formulář není správně vyplněný!';
}
?></code>

 
Odpovědět
29.4.2018 19:25
Avatar
Pavel Kvasil
Člen
Avatar
Pavel Kvasil:21.5.2018 16:45

Zdravím,
super návod, jako .php laikovi velmi přínosný. Mám, prosím, dva dotazy.

/1/ jak mohu řádkovat text v emailu, pokud to jeho těla vložím více položek formuláře? Např.:

$textzpravy = 'jmeno : ' . $_POST['jmeno'];
$textzpravy .= '; prijmeni : ' . $_POST['prijmeni'];
$textzpravy .= '; zprava : ' . $_POST['zprava'];
$uspech = mb_send_mail($a­dresa, $predmet, $textzpravy, $hlavicka);

jde mi o to, aby v mailu byli jednotlivé položky formuláře na samostatném řádku.

/2/ hláška o úspěšném odeslání mi zůstává viditelná i po obnovení stránky?! Jak mohu script upravit tak, aby se hláška zobrazila třeba jako systémová hláška Windows? Nebo aby byla otevřena samostatná stránka, kterou bych mohl upravit de vzhledu původních stránek s formulářem? Načetl jsem tady u vás, že je možné použít běžné html tagy, ale to bylo pořád v rámci stránky s formulářem?!

Díky moc a hezký den.
Pavel K.

Editováno 21.5.2018 16:46
 
Odpovědět
21.5.2018 16:45
Avatar
Ivo Silber
Člen
Avatar
Ivo Silber:24.5.2018 16:40

Tyto stránky jsou super :)

 
Odpovědět
24.5.2018 16:40
Avatar
Pavel Janda
Člen
Avatar
Pavel Janda:28.5.2018 22:35

Ahoj, celkem mi to funguje - mailuje, leč podstatný problém.
Jako SMTP mám v ini souborech nastaven smtp.google.com a jako mailový účet svůj gmail.účet, takže to posílá maily přes google. Nicméně ať už je v $hlavicka přítomno cokoli (tj mail zadaný z formuláře), vždy je v mailu jako odesílatel uveden můj mail. Tj. absolutně nefunguje ona záměna zobrazeného odesílatele pomocí "From:" v příkazu mb_send_mail. Provozuji na lokálně nainstalovaném XAMPP, na Win7.
Zkusil jsem si na jednoduchém webhostingu - ale tam nemám možnost nastavení PHP, takže tam to samozřejmě nelze.
Pokud místo gmailu použiji seznam (tj. smtp.seznam.cz a svůj seznam účet, tak dokonce ani nemohu uvést v From něco jiného než vlastní seznam účet - pokud parametr "From" vynechám tak můj seznam účet musí být v sendmail.ini jako "Force sender", jinak v obou případech se v error logu dozvím , že mám smůlu, že jiného odesílatele než vlastní účet použít nesmím....

Dotaz tedy zní zda nedělám nějakou blbinu (jakou asi), či zda je to tak jak se zdá, že zkrátka zaměnit odesílatele mailu zkrátka asi nelze ... ?

Díky za případný komentář.

 
Odpovědět
28.5.2018 22:35
Avatar
Odpovídá na Pavel Janda
Michal Štěpánek:28.5.2018 23:56

Odesílatel podle mě musí být ten, jehož službu k odeslání používáš, protože tě "něco" musí autentifikovat. Nelze nijak jednoduše poslat z webu mail z adresy "email@tojemu­jemail.cz" a k odeslání použít účet na google...

Odpovědět
28.5.2018 23:56
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Pavel Janda
Člen
Avatar
Odpovídá na Michal Štěpánek
Pavel Janda:29.5.2018 11:57

Díky za reakci, to jasné, jenže !

  • celý příklad (lekce 8 - 9 ) je postaven právě na tom, že na mou adresu (... adresu "tvůrce" webu" ) přijdou maily s "odesílateli" (tj. From...) zadanými v poli "email" kontaktního formuláře.

Přímo ve výkladu je také jasně uvedeno, že pomoci parametru From v mb_send_mail se přesně tohoto má dosáhnout a že, cituji "Email potom vypadá jako že přišel z této adresy, i když ho odeslalo PHP z vašich stránek".

No a celý problém je, že takto to nefunguje a že logicky maily chodí z mého mailu, přes který se to celé honí...
Uvedenou záměnu adres zkrátka nedocílím. I když bych rád a ostatně logika existence parametru From by tomu napovídala...

Tak zatím stále nevím. Asi by pomohlo vyjádření autora - to by ale pak nedělal nic jiného a už takhle si s tím seriálem dal opravdu hodně práce.

 
Odpovědět
29.5.2018 11:57
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.

Zobrazeno 10 zpráv z 149.