Autor Zpráva
Martin Kindl
Profil
Zdravím,
jsou tu již takováto témata, ale rád bych napsal přímo svůj dotaz.

Na svou stránku potřebuju "jednoduchý" formulář, který bude obsahovat klasické kolonky jako je mail, předmět atd.. ale potřeboval bych takový formulář, který bych si mohl sám doplňovat o další kolonky i v pozdější době. Nepotřebuju žádnou administraci, klidně bych to udělal i v kódu, jen by k tomu muselo být nějaké vysvětlení :D..

Všechno by se samozřejmě odeslalo na mail. Předmět by se v mailu zobrazil jako předmět, další kolonky mnou přidané by se pak normálně zobrazili v textu například tučně.

(např. přidal bych novou kolonku Bydliště: a ta by se mailu zobrazila na další řádek jako Bydliště: Text.. Ale tučně to být nemusí :D)

Momentálně bych potřeboval asi 8 kolonek, později přidat další dvě a později možná i další..

Díky všem, kteří pomůžou :)
dranel
Profil *
Framework. Třeba Nette pro PHP. Nebo pokud tomu nerozumiš ani trochu, tak nějaký CMS.
kletely
Profil
Martin Kindl
http://tvorba-webu.zdarek.com/php/email.php a trochu si to uprav.
Martin Kindl
Profil
Tenhle formulář samozřejmě znám, ale nezdál se mi vhodný.. a přidávat nové možnosti, no nevím nevím.. ani pořádně nevím, dávám-li mail na správné místo.. nic mi nepřišlo..
cipisek
Profil *
Ahoj chtěl bych poprosit o radu, našel jsem nespočet návodů na různe formulaře i hotové scripty. Bohužel netuším kde dělám chybu, protože mi po odeslani sice vypiše že mail byl odeslán ale nic se nedoručí :-(........ adresu na kterou to má přijít mám správně.
Stránky mám na webzdarma pokud mam obyčejný html formulař se skrytými poli co chcou a "action" mam nastavene na jejich php soubor tak to funguje ale nedokážu v takovém formuláři ověřit zda jsou vyplněna všechna polie.

Skusil jsem například tento už hotový script, možná mi v něm něco chybí nevím ale prostě mi to nefunguje :-(

<form action="data/mail.php" method="post">
Vaše jméno:<br />
<input name="jmeno" type="text" /><br />

Váš e-mail:<br />
<input name="mail" type="text" /><br />
Předmět zprávy:<br />
<input name="predmet" type="text" /><br />

Text zprávy:<br />
<textarea name="text"></textarea><br />>
<input type="submit" value="Odeslat" />
<input type="reset" />

</form>



<?php
$jmeno = $_POST['jmeno'];/*takto proměnné přidělíme to co bylo odesláno ve formuláři metodou POST s atributem name="jmeno"*/

$mail = $_POST['mail'];
$predmet = $_POST['predmet'];
$text = $_POST['text'];

$prijemce = "cipisek1@email.cz";
/*vyplníte mail, na který se má formulář odesílat*/

$zahlavi = "From: " . $mail . "\r\n";
/*zobrazuje pak v mailu jako kdyby vám mail přišel přímo z tohoto mailu, můžete pak tedy rovnou odpovídat na mail, který uživatel uvedl*/

/*takto zajistíme, aby se mail neodeslal, pokud nejsou všechna pole vyplněna*/

if ( !empty($jmeno) and !empty($mail) and !empty($predmet) and !empty($text)) {
mail($prijemce, $predmet, $text, $zahlavi);
echo "<h3>Děkuji. Mail byl úspěšně odeslán.</h3>";

/*toto se vypíše do dokumentu, pokud se mail odešle*/

} else {
echo "<h3>Nevyplnili jste všechna pole. Mail nebyl odeslán.</h3>"; /*toto se vypíše pokud nebudou vyplněna všechna pole, mail se neodešle*/

}
?>
Honza0000
Profil
cipisek
A co ti přesně nefunguje? To že ti nic nepřišlo nebo vyplnění polí nebo oboje? Moc to z tý otázky nechápu...

Taky nerozumím, proč je tam $jmeno když se stejně na nic nepoužije..., navíc to má fatální nedostatek v neověření mailové adresy a nakonec ke všemu tomu to ani nekontroluje zda-li se mail vůbec odeslal! Takže když se neodeslal, tak se stejně napíše že se odeslal, což je pěkná kravina!

Tady ti dávám fungující script, který sám používám a který obsahuje kontrolu polí, kontrolu mailu a kontrolu odeslání:

<?php
function kontrola ($znaky)
{
return ereg("^.+@.+\..+$",$znaky);
}
$jmeno = $_POST['jmeno'];
$prijmeni = $_POST['prijmeni'];
$informace = $_POST['zprava'];
if (!kontrola($email = $_POST['email']))
{ echo "<div>Vyplňte platnou e-mailovou adresu</div>"; }
else { $email = $_POST['email'];
$mujmail = "cipisek1@email.cz";
$predmet = "Cokoli";
$hlavicka = "From:$email";
$zprava="Jméno: $jmeno\nPříjmení: $prijmeni\nE-mail: $email\nZpráva: $informace";
if (trim($jmeno)!="" && trim($prijmeni)!="" && trim($email)!="") {
$vysledek = mail($mujmail, $predmet, $zprava, $hlavicka);
if ($vysledek) {
echo "<div>Formulář byl úspěšně odeslán.div>";
} else {
echo "<div>Formulář nebyl odeslán, nastala neznámá chyba pravděpodobně na straně serveru</div>";}
} else {
echo "<div>Vyplňte veškeré údaje</div>";
}
}
?>

Samozřejmě musíš mít patřičný formulář s názvy polí.
bohyn
Profil *
return ereg("^.+@.+\..+$",$znaky);
Takovahle kontrola je naprd. Co kdyz mas e-mail na domene tretiho radu?

Ja osobne sem kontrolu e-mail ve formulari na kontakt vzdal a udelal to jako nepovinny udaj. Kdyz nekdo neco potrebuje at zada spravny e-mail, nebo napise na muj mail kterej je na stejny strance.

Pokud potrebujes overit mail napr. pri registraci tak neexistuje jinej zpusob nez odeslani aktivacniho kodu pres mail (a ani to neni 100%).
Honza0000
Profil
Bohyn
Mýlíš se! Kontrolou projde nekonečně mnoho řádů domén. Nejdřív se nauč regy a pak něco raď.

Ja osobne sem kontrolu e-mail ve formulari na kontakt vzdal a udelal to jako nepovinny udaj. Kdyz nekdo neco potrebuje at zada spravny e-mail, nebo napise na muj mail kterej je na stejny strance.
A víš ty vůbec k čemu se ta kontrola používá? :D NE proto, aby uživatel zadal svůj či vymyšlený mail (to je totiž v jeho zájmu, jestli chce zadat spravny mail), ale aby ti do funkce mail nešoupli nákej ten kódek, protože dobrej hacker ti z toho udělá guláš.

A aktivační kod taky používám, ale při registraci a ne odesílání mailu, seš trochu mimo.
bohyn
Profil *
Mýlíš se! Kontrolou projde nekonečně mnoho řádů domén. Nejdřív se nauč regy a pak něco raď.
OK treti rad tam projde

trim($email)!=""
v ifine tam evidentne mail vyzadujes (i pres predchozi kontrolu :/ ) tak to me zmatlo :D

A víš ty vůbec k čemu se ta kontrola používá? :D NE proto, aby uživatel zadal svůj či vymyšlený mail (to je totiž v jeho zájmu, jestli chce zadat spravny mail), ale aby ti do funkce mail nešoupli nákej ten kódek, protože dobrej hacker ti z toho udělá guláš.
na to staci vyhazet odradkovani a pouzivat text/plain

A aktivační kod taky používám, ale při registraci a ne odesílání mailu, seš trochu mimo.
O ty registraci to tam pisu
Honza0000
Profil
Ok ;)
cipisek
Profil *
no právě že se odeslaný mail nedoručí ale formulář píše že byl odeslán. To co jsem tu dal byl jen přiklad co jsem naposled zkoušel jak to rozchodit. Nefunguje mi to ani od honzy0000, přepsal jsem nazvy polí ve formuláři aby odpovídaly scriptu, vyplním formulář odešlu, vypíše mi že byl úspěšně odeslán ale žádna pošta nepřijde. Mam pocit že bude asi problem u toho webuzdarma.cz nevím

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0