PHP - formulár a email

V dnešnom článku ukážeme príklad ako si vytvoriť jednoduchý formulár v php, ktorý je ľahko zostrojiteľný z 1 alebo 2 skriptov. Celý formulár bude zostrojený s 2 súborov a to s data.php a form.php.
Náplňou článku ale nebude len naučiť vás robiť formuláre ale aj rozosielať za pomoci nich emaily. Tak sa do toho rovno môžeme pustiť. Formulár
Ako prvé čo budeme musieť vytvoriť sú 2 súbory a to form.php a data.php. V prvom súbore form.php sa bude nachádzať samotný formulár, ktorý bude odosielať dáta do súboru data.php, ktorý ich potom spracuje a vypíše. Zdrojový kód formuláru si môžete skopírovať tu:
<form action="data.php" method="post">

<fieldset><legend>Formulár a email</legend> Meno: <input name="meno" type="text" 
size="32" /><br />

Priezvisko: <input name="priezvisko" type="text" size="28" /><br />

E-mail: <input name="email" type="text" size="32" /><br />

Predmet: <input name="predmet" type="text" size="30" /><br />


<br>Text:<br>

<textarea name="text" rows="7" cols="30"></textarea><br>

<input name="odoslat" type="submit" value="Odoslať" />

</fieldset></form>


<br>

<font color="red">Všetky údaje sú povinné!</font>

Výsledok bude vyzerať takto:

Formulár a email Meno: Priezvisko: E-mail: Predmet: Text:
Všetky údaje sú povinné!
Ako vidíte nieje to ťažké. Teraz máme celý formulár hotový. Rád by som ešte ale doplnil k formuláru, že je veľmi dôležité aby tam zostali parametre name="", pretože by skript data.php nevedel rozpoznať aké dáta príma a potom by vlastne nemal ani čo spracovať.

Spracovanie dát


A teraz rovno k zdrojovému kódu data.php

<?

$prijemca = "váš@email.niečo";



if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text", 
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

elseif (($meno && $email && $predmet && $text) == false){

echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné 
<b>údaje</b>.";

}

?>

Ak si pozriete kód tak sami asi usúdite, že $prijemcu si musíte vyplniť sami resp. musíte nahradiť ten text váš@email.niečo emailom na ktorý chcete formulár odoslať. Za podmienkou "if" nasleduje text s úspešným odoslaním emailu. Všetky premenné $meno, $text... atď. sú vlastne mená tagov <input /> a <textarea> v súbore form.php (napr. meno v súbore form.php je to isté čo $meno v súbore data.php a preto som aj uvádzal dôležitosť parametru name="" ). Prvá podmienka udáva to, že ak sú každému tagu <input> a <textarea> priradené hodnoty, tak sa odošle email (tvar emailu je - mail(príjemca, predmet, obsah, odosielateľ)) a vypíše sa aj text s úspešnosťou odoslania (to zariadi echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";). Druhá podmienka "elseif" uvádza to, že keď niekto nevyplní jednu alebo všetky z položiek tak potom jeho email nebude odoslaný a zobrazí sa mu text o neúspešnom odoslaní emailu. (echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné <b>údaje</b>.";).


To by bolo o odosielaní emailu pomocou formuláru asi všetko. Samozrejme namiesto funkcie mail si tam môžete dať aj funkciu vlastnú ale to už by bolo niečo čo do tohoto článku nepatrí. Odporúčam taký článok vyhľadať na stránke v rubrike "php". Tam sa dozviete o funkciách viac.
Alternatívne verzie: Text PDF Voice
Autor: PaBi3 · Kategória: Programovanie · Dátum: 01.05.2005 22:30

Komentáre

#1 oto24 E-mail
30.01.2008 20:53
nechapem vsetko som urobil ako mam a neprisiel mi ten email

aj mi napisalo ze Váš email bol úspešne odoslaný a nič skontroloval som prijemcu a mam ta normalne svoj email poradte prosim dakuejem pekne

#2 burn E-mail
09.02.2008 00:08
[1] oto24,
neskusal som to este ale skus v data.php na zaciatku doplnit php... nech ten prvy riadok vyzera takto: <?php a vzdy predtym ako zacnes menit telo scriptu skontroluj ci mas vsade dopisane "php" vo vacsine pripadov je chyba tato...

#3 filozof
18.02.2008 14:38
[2] burn, NIE...za začiatkom (<?) je vždy výraz tj. $,echo atd...

#4 tomas.b E-mail
22.02.2008 21:47
Ja mam jednu otazku. Kedze s php neviem velmi pracovat, mozno blbu. Ale: Skript je funkcny, lenze ako ho vlozim na stranku a tu stranku otvorim, hned mi vypise ze mail neodoslal adt atd, ale ja som mail este ani nesiel posielat. P kazdom spusteni stranky to vypise. Neda sa to nejak vyriesit? Urcite je terba len niekde nieco dopisat, ale ja bohuzial neviem co.
Dakujem za odpoved!

#5 izzi Web E-mail
28.02.2008 15:50
musis ale otvorit stranku: form.php...

#6 Sue Web E-mail
26.04.2008 16:31
pozdravujem, dakujem za vzor formularu. Odosielanie funguje v poriadku, len mam jeden problem. Formular som si modifikovala podla svojich potrieb, avsak cely text, ktory sa zadal vo formulari, mi skript hodil do subjektu spravy. v tele spravy mam iba mailovu adresu odosielatela. Zial, nakolko neovladam php skript, neviem prist na to, kde to opravit.
Prikladam tu aj kod suboru data.php.
Dakujem za pomoc.<?
$prijemca = "sueweb@sueweb.sk";
if ($meno && $vek && $email && $Kraje && $požadovaný_vek && $poznamka){
mail("$prijemca", "$meno $priezvisko zadal/a tieto údaje:<br />
$Kraje, <br />
$požadovaný_vek<br />
$poznamka",
"from: $email");
echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";
}
elseif (($meno && $vek && $email && $Kraje && požadovaný_vek && $poznamka) == false){
echo "Váš <strong>email nebol odoslaný</strong>. <strong>Nezadali ste všetky</strong> povinné <strong>údaje</strong>.";
}
?>

#7 admin Web E-mail
26.04.2008 21:39
admin Používate nesprávne PHP funkciu mail(). Všimnite si, že druhým parametrom je predmet a vy tam vkladáte všetky údaje (meno, priezvisko, vek...). Tieto údaje patria až do 3. parametra, čiže správne by sa funkcia volala takto:

mail($prijemca, "Nejaký predmet", "$meno $priezvisko<br />, $vek, $text...",
"from: $email");

#8 Black1101 Web E-mail
11.03.2009 08:05
Cavte vyskusal som si to vytvorit vytvoril som dva subory ako ma byt form.php a data.php email som si nahradil mojim tak ako je pisane no ked idem skusit odoslat skusobny email ze uz chcem neco napisat vyplnim vsetky polia a vypise mi ze ,,vas email nebol odoslani zato ze ste nevyplnili vsetky polia,, dakujem za odpoved

#9 Jozef N. E-mail
17.03.2009 15:38
Prosim vas, ako mam urobit subor .php, aby v odoslanom e-maili pri nevyplnenych poliach formulara nezostali prazdne riadky.
Hodnoty jednotlivych policok sa vypisuju vzdy na novy riadok (to tak musi byt). Ked ale niektore policka zostanu nevyplnene, v doslom e-maili je vela prazdnych riadkov a je to menej prehladne.
Dakujem za radu.
Jozef

#10 adam E-mail
19.04.2009 10:53
[8] Black1101,
tiež sa pripájam, mne to tiež píše

#11 palo Web E-mail
06.05.2009 20:37
a mam taky dotaz.... mozem to napisat do jedneho suboru??? napr: mam subor s formularom (nieco.php)a action vo formulari bude (action="nieco.php")
???
dik za odpoved

#12 PANTHER E-mail
20.07.2009 23:43
(Náhodou som našiel tento článok cez Googla. Reagujem, pretože posledný komentár je dnes ešte ako-tak čerstvý.)

PHP kód je lepšie začínať znakmi <?php, pretože aj XML kód sa začína <? a môžu sa pobiť.

Veľa ľuďom vypisuje hlášku typu "Neboli vyplnené všetky potrebné polia.", pretože údaje z formulára sa musia pred dosadením do skriptu "vytiahnuť". PaBi3 napísal ten skript dobre, tuším, že na staršej verzii PHP to aj fungovalo, ale od verzie 5.x to nefahčí. Dáta z formulára sa "vyťahujú" takto: $_POST['premenna'] (vytiahnu sa dáta z pola formulára s name='premenna'). Pre uľahčenie roboty si za $prijemca prihoďte:
$meno = $_POST['meno'];
$priezvisko = $_POST['priezvisko'];
$email = $_POST['email'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];


[#4 tombas.b]: Zrejme ste prehliadačom prišli priamo na adresu skriptu. Keďže ste formulár asi ani nevideli, skript nemal odkiaľ získať potrebné dáta a preto mail neodoslal.

[#11 palo]: Samozrejme, dá sa to. V tom prípade musíte pre tlačidlo typu submit priradiť name. Potom do skriptu treba doplniť podmienku, napr.:
if (isset($_POST['submit'])) ...
Preklad: keď bola nastavená premenná $submit, pokračuj ... A skript sa v podstate buchne do podmienky. Ale neodporúčam to robiť takto, hlavne pre začiatočníkov. Je to zložitejšie zabezpečiť, preto je jednoduhšie dáta spracovávať v externých skriptoch.

#13 vehuias E-mail
31.07.2009 12:21
Prosim poradte:((( som zaciatocnik ale postupoval som podla navodu len som si upravil podla svojho

toto je subor form
<form id="form" action="data.php" method="post" enctype="multipart/form-data">
<div style="width:194px;" class="col">
<div class="inp_h">
<input type="text" name="meno" value="meno" onfocus="this.value=''" />
</div>
<div class="inp_h">
<input type="text" name="email" value="email" onfocus="this.value=''" />
</div>
<div class="inp_h">
<input type="text" name="predmet" value="predmet" onfocus="this.value=''" />
</div>
</div>
<div class="col" style="width:171px;">
<div><textarea name="text" rows="30" cols="40" onfocus="this.value=''">text</textarea></div>
</div>
<div class="clear"></div>
<div class="sep">&nbsp;</div>
<div class="right">
<input name="zmazat" type="reset" />

<label>
<input name="odoslat" type="submit" value="Odoslat" />
</label>
</div>
</form>

<br>

<font color="red">Všetky údaje sú povinné!</font>

a toto data

<?php

$prijemca = "info@imart.sk";



if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $email Vám posiela tento text $text",
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

co mam urobit aby mi to fungovalo:((((((

#14 Peter E-mail
08.11.2009 22:33
Dobry den, najskor moc dakujem za super web, ale predovsetkym za tento prispevok.
Zaroven by som sa chcel opytat, preco mi po odoslani formulara skript vypise vetu o jeho nespravnom vyplneni napriek tomu, ze vsetky polia su vyplnene.
No a php je pre mna zatial spanielskou dedinou...
formalar: http://peto.110mb.com/php/1_3.php
data: http://peto.110mb.com/php/data.php
Dakujem za pomoc!

#15 sofik
13.11.2009 14:05
posielam funkčny kod,, Ide mi to bezvadne a super je ze tam mozem doplnat polozky lubovolne.. Tak diky moc.. Ak ma niekto prooblemy, tento skript funguje na 100 pervcent..<?php
$prijemca = "penzionmanin@penzionmanin.sk";
$meno = $_POST['meno'];
$termin = $_POST['termin'];
$email = $_POST['email'];
$spam = $_POST['spam'];
$_3postele = $_POST['_3postele'];
$_5posteli = $_POST['_5posteli'];
$_4postele = $_POST['_4postele'];
$pocetosob = $_POST['pocetosob'];
$strava = $_POST['strava'];
$welness = $_POST['welness'];
$popis = $_POST['popis'];
if ($meno && $email && $termin && $spam=="4")
{
Mail("$prijemca","$meno","Ahoj, dalšia prijatá rezervácia od: $meno
Termín: $termin Noclah: $_3postele , $_5posteli, $_4postele Celkový počet osôb:
$pocetosob ,Strava: $strava + $welness ,Iné informácie: $popis","From:".
$email);
echo "<p><strong>Vaša rezervácia bola odoslaná.O jej prijatí vás budeme
informovať
e mailom. Ďakujeme a tešíme sa na vás</strong>.</p>";
}
elseif (($meno && $email && $spam ) == false){
echo "Vaša rezervácia nebola odoslaná.Vyplnte prosím všetky údaje.";}
?>



este raz diky moc...

#16 Forse Web E-mail
19.11.2009 19:11
Niektoré webhostingy zvlášt tie FREE to nemusia podporovať
Takže správny tvar data.php je:


<?php

$prijemca = "váš@email.cz";
$meno = $_POST['meno'];
$priezvisko = $_POST['priezvisko'];
$email = $_POST['email'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];


if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text",
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

elseif (($meno && $email && $predmet && $text) == false){

echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné
<b>údaje</b>.";

}

?>

#17 sofik
26.11.2009 16:06
[16] Forse, Nerozumiem, čo nemusia podporovat? Množstvo tých premenných v maily? Ako vložím viac položiak, do jednej premennej?? vdaka

#18 Peter E-mail
13.12.2009 23:30
Sofik, myslim ze Forse hovori o free webhostingoch :-).

Chcel by som sa opytat, ako zabezpecim korektne zobrazenie diakritiky v prijatych e-mailoch?

Je mozne nejakym jednoduchym sposobom kontrolovat, ci je e-mailova adresa skutocne e-mailovou adresou (teda retazcom v tvare meno(at)host(dot)sk, pripadne kontrolou zavinaca (kedze e-mailove adresy mozu byt kadejake))? Skript teraz akceptuje akykolvek retazec, ci uz obsahuje alebo neobsahuje @...

#19 Dávid E-mail
04.02.2010 21:45
V prvom rade vďaka za článok, bolo to veľmi zrozumiteľne vysvetlené. Asi najlepší aký som o formulároch čítal. Kód funguje bez problémov, ale mám ten istý problém ako Peter: správne zobrazenie diakritiky v prijatých e-mailoch a aspoň jednoduchá kontrola správnosti emailu, Ak niekto vie poradiť, tak mu budem vďačný.

#20 maros Web E-mail
31.05.2010 17:07
cawko..pocuj skopiroval som si ten tvoj formular na mail a zmenil som v data.php na svoj mail ale nechce mi odoslat mail vzdycky ma prehodi na okno s textom:Váš email nebol odoslaný. Nezadali ste všetky povinné údaje.


Prosím nevieš kde mám chybu???? Nemozem si poradit..

#21 Stano E-mail
02.07.2010 17:15
Ahojte, tento kód funguje aj s diakritikou: DATA.PHP:
<?php
$odosielatel = $_POST['meno'].' '.$_POST['priezvisko']; // odosielatel,ktory nam formular poslal
$email = $_POST['email']; // email odosielatela
$predmet = $_POST['predmet'];
$text = $_POST['text'];
$prijemca = "adresa@prijemcu.sk"; // kam ju php skript preposle

if ($odosielatel && $email && $predmet && $text)
{
$hlavicka = "From: " . $odosielatel . " <" . $email . ">\r\n"
. "Content-Type: text/plain; charset=windows-1250; format=flowed\n"
. "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 8bit\n"
. "X-Mailer: PHP\n";
ini_set("SMTP","adresa-smtp-servera.sk" ); // zmeni hodnotu premennej v subore php.ini namiesto localhostu
//ini_set("sendmail_from", "$email");
mail("$prijemca", "$predmet", "$text", "$hlavicka");
echo "Váš email bol úspešne odoslaný!";
}

elseif (($odosielatel && $email && $predmet && $text) == false)
{
echo "Váš email nebol odoslaný. Nezadali ste všetky povinné údaje.";
}
?>

A formular.html vyzerá takto:
<html><body>
<form id="form" action="data.php" method="post">
Meno:<input type="text" name="meno" value="meno"/><br/>
Priezvisko:<input type="text" name="priezvisko" value="priezvisko"/><br/>
Email:<input type="text" name="email" value="email"/><br/>
Predmet:<input type="text" name="predmet" value="predmet"/><br/>
Text:<textarea name="text" rows="30" cols="40">text</textarea><br><br/>
<input name="odoslat" type="submit" value="Odoslat"/>
<input name="zmazať" type="reset"/><br/>
</form>
</body></html>

#22 Stano
02.07.2010 18:33
Ešte ku tomu skriptu, do hlavičky emailu možno pridať okrem kódovania aj spätnú adresu v prípade nedoručenia emailu:
. "Return-Path: <" . $email . "> \n" // v prípade chyby vráti odosielateľovi oznámenie o nedoručení mailu(formulára)

#23 Stano E-mail
03.07.2010 11:49
Ahojte, tento skript funguje aj s diakritikou s EasyPHP: DATA.PHP:
<?php
$odosielatel = $_POST['meno'].' '.$_POST['priezvisko']; // odosielatel,ktory nam formular poslal
$email = $_POST['email']; // email odosielatela
$predmet = $_POST['predmet'];
$text = $_POST['text'];
$prijemca = "prijemca@server.sk"; // kam ju php skript preposle

if ($odosielatel && $email && $predmet && $text)
{
$hlavicka = "From: " . $odosielatel . " <" . $email . ">\r\n"
. "Content-Type: text/plain; charset=windows-1250; format=flowed\n"
. "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 8bit\n"
. "Return-Path: <" . $email . "> \n"
. "X-Mailer: PHP\n";
ini_set("SMTP","adresa-smtp-servera.sk" ); // alebo si to treba nastavit v subore php.ini, namiesto localhostu
//ini_set("sendmail_from", "$email");
mail("$prijemca", "$predmet", "$text", "$hlavicka");
echo "Váš email bol úspešne odoslaný!";
}

elseif (($odosielatel && $email && $predmet && $text) == false)
{
echo "Váš email nebol odoslaný. Nezadali ste všetky povinné údaje.";
}
?>

A FORMULAR.PHP vyzerá takto:
<html><body>
<form id="form" action="data.php" method="post">
Meno:<input type="text" name="meno" value="meno"/><br/>
Priezvisko:<input type="text" name="priezvisko" value="priezvisko"/><br/>
Email:<input type="text" name="email" value="email"/><br/>
Predmet:<input type="text" name="predmet" value="predmet"/><br/>
Text:<textarea name="text" rows="30" cols="40">text</textarea><br><br/>
<input name="odoslat" type="submit" value="Odoslat"/>
<input name="zmazať" type="reset"/><br/>
</form>
</body></html>

#24 mysho E-mail
20.11.2010 14:10
Vdaka ludia, tieto posledne verzie funguju, ale chcel by som sa opytat na jednu vec, a sice ak chcem mat vo formulari viac poloziek ako v tomto pripade polozku text (textarea v html), tak ako treba upravit php script? PHP neovladam, skusal som to upravovat len analogicky, ale nefungovalo mi to. Ako to spravit, aby mi odoslalo na email viacero informacii z formulara, ak tam chcem mat okrem textarea viacej inputov, checkboxov atd. ? THX

PS: Ja som skusal upravovat tento riadok: "mail("$prijemca", "$predmet", "$text", "$hlavicka");", kde som skusal menit tie premenne, ale nefungovalo mi to, kedze nepoznam syntax toho kodu. Vie mi niekto pomoct? Nechcem konkretnu radu, staci vysvetlenie co co robi a podla toho uz by som odskusal, co kde doplnit, aby to fungovalo podla mojich predstav. Vdaka.

#25 danusa E-mail
10.01.2011 15:25
Ahoj,ja som skúšala ten skript aj pre gmail.com aj pre zoznam.sk. Bohužiaľ neúspešne. Skončila som pri tomto:
Warning: mail() [function.mail]: SMTP server response: 530 d@gmail.com You must authenticate first in C:\xampp\htdocs\php\data.php on line 17
Váš email bol úspešne odoslaný!
Samozrejme,nič mi neprišlo.
Čo sa týka gmailu,po hľadaní na webe som našla,že je potrebné SSL. Ale ako to urobiť?

#26 Adam Web E-mail
10.02.2011 14:40
Dobrý deň všetkým.
Ďakujem za vaše scripty, fungujú všetky ale vedel by mi niekto do toho scriptu doplnit aj to,
aby prišlo odosielatelovi formulara potvrdenie na JEHO mail, ze ten formular odoslal?

Dakujem Vam

#27 inik Web E-mail
17.06.2011 20:24
To či to odošle zaleži od toho či je nastaveny tento subor:
"vas server"\php5\conf\php.ini
(riadky SMTP= a ;sendmail_from=)
Na hostingu bi mal byť no ale neviem čo mate.
Tu možno niečo najdte:
http://www.webdeveloper.com/forum/showthread.php?t=62316

Mne to tiež nefunguje.

#28 Jakub Janek Web E-mail
11.03.2012 19:19
Preco mi nejde data.php a napise vsetko toto
email bol úspešne odoslaný!"; } elseif (($meno && $email && $predmet && $text) == false){ echo "Váš email nebol odoslaný. Nezadali ste všetky povinné údaje."; } chapete to lebo ja nie neni to nahodou na jakpsatweb.cz?

#29 lubka E-mail
25.03.2012 21:21
php som si skopírovala od #16 Forse, používam free hosting na szm.com.
takto vyzerá php (samozrejme tam mám vlastný mail)
<?

$prijemca = "mail@niekde.com";
$meno = $_POST['meno'];
$priezvisko = $_POST['priezvisko'];
$email = $_POST['email'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];


if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text",
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

elseif (($meno && $email && $predmet && $text) == false){

echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné
<b>údaje</b>.";

}

?>


a html:
<form action="send.php" method="post" >
<fieldset>
<h2 align="center"> Formulár a email </h2>
<div align="center"> <span class="priezvisko">Meno:</span><br />
<input name="meno" type="text"
size="30" />
<br />
<span class="priezvisko">Priezvisko:</span><br />
<input name="priezvisko" type="text" size="30" />
<br />
E-mail: <br />
<input name="email" type="text" size="30" />
<br />
Predmet:<br />
<input name="predmet" type="text" size="30" />
<br />
<br>
Text:<br>
<textarea name="text" rows="7" cols="24" style="max-width:215px; max-height:112px;"></textarea>
<br>
<input name="odoslat" type="submit" value="Odoslať" /><br><img src="obalka.gif" height="49"/>
</div>
</fieldset>

</form>

po "odoslaní" sa zobrazí chybové hlásenie 404 Page not found. pritom na szm mam všetko. Kde je chyba?

#30 Milos E-mail
16.06.2012 14:29
zdravím mám na Vás jednú otázku dalo by sa cez formulár poslať aj obrazok
napr cez ... <input title="Miesto na vloženie obrázka" type="file" name="file" id="file" value="Search file..." size="30"> , ked hej bolo by to super dik za reakciu

#31 Stofo E-mail
07.07.2012 14:33
Zdravím Vás.
Taktiež mám jednu otázku, podobnú ako oto24.
Nakoľko som sa odpoveď na jeho otázku nedozvedel ani po prečítaní všetkých príspevkov, pýtam sa znova:

Po vyplnení a odoslaní formulára mi vypíše hlášku "Váš email bol úspešne odoslaný!". No aj napriek správnemu nastaveniu mailu v data.php mi dáta z vyplneného formuláru na mail neprídu.
Poradí niekto???
form.php
<form action="data.php" method="post">

<fieldset><legend>Formulár a email</legend>
Meno: <input name="meno" type="text" size="32" /><br />

Priezvisko: <input name="priezvisko" type="text" size="28" /><br />

E-mail: <input name="email" type="text" size="32" /><br />

Predmet: <input name="predmet" type="text" size="30" /><br />


<br>Text:<br>

<textarea name="text" rows="7" cols="30"></textarea><br>

<input name="odoslat" type="submit" value="Odoslať" />

</fieldset></form>


<br>

<font color="red">Všetky údaje sú povinné!</font>


data.php
<?php

$prijemca = "stofo18@gmail.com";
$meno = $_POST['meno'];
$priezvisko = $_POST['priezvisko'];
$email = $_POST['email'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];


if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text",
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

elseif (($meno && $email && $predmet && $text) == false){

echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné
<b>údaje</b>.";

}

?>


Vopred ďakujem

#32 patoj Web E-mail
18.06.2013 10:00
ahojj,
pise mi ze mail sa uspesne odoslal ale nic mi na mail nepride.Neviete kde možem mať chybu?

#33 majo E-mail
30.03.2015 16:10
dobry den mne vsetko funguje ak ma co je super jedini problem mam z tim ze hlaska sa mi otvara v novom okne a ja by som potreboval aby sa mi hlasky tipu meil bol odoslani alebo neodoslani vypisovali vo formulari niekde dole a neotvaralo sa nove okno len textom vdaka

Osobné údaje
Captcha
Odpíšte text z obrázku. Rozlišujú sa malé a veľké písmená.
Obsah
Možnosti