Autor | Zpráva | ||
---|---|---|---|
HonzaDury Profil * |
#1 · Zasláno: 16. 3. 2011, 15:04:25
Dobrý den, na netu jsem si našel jak odeslat kontaktní formulář na email. Vše mi funguje, ale v proměnných mám oslovení, jméno a příjmení. Chtěl bych aby tyto 3 proměnné se oběvili ve zprávě. Nejsem vůbec dobrý na php, tak proto prosím o radu vás. Zde mám výpis kodu.
<form action="posli.php" method="post" > Oslovení<br> <input type="text" name="osloveni" class="formular" value=""> Příjmení*<br> <input type="text" name="prijmeni" class="formular" value=""> Jméno*<br> <input type="text" name="jmeno" class="formular" value=""> E-mail*<br> <input type="text" name="email" class="formular" value=""> Text Vaší zprávy*<br> <textarea name="text" class="text_zpravy" rows="13" cols="53"></textarea> <input type="submit" value="" class="odeslat" > </form> posli.php <? $osloveni = $_POST['osloveni']; $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; $email = $_POST['email']; $text = $_POST['text']; if ($jmeno!="" and $prijmeni!="" and $email!="" and $text!="") { Mail("happy.gilmore@seznam.cz", $osloveni, $jmeno, $prijmeni, $text, "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje</p>"; } ?> předem moc děkuji za odpověď |
||
TomasJ Profil |
#2 · Zasláno: 16. 3. 2011, 15:17:58 · Upravil/a: TomasJ
Mail("happy.gilmore@seznam.cz", "predmet emailu", "$osloveni $jmeno $prijmeni\n$text", "From: " . $email); Mail("Příjemce", "předmět", "zpráva", "Od (od koho)", "další parametry"); To \n (mezi $prijmeni a $text), dělá v emailu nový řádek. |
||
HonzaDury Profil * |
#3 · Zasláno: 16. 3. 2011, 15:27:04
Moc děkuji. Vše funguje. Jen ještě jedna drobnost, špatně se mi zobrazuje diakritika. Co je třeba dát do posli.php, aby se mi zobrazovali háčky čárky apod?
|
||
panther Profil |
#4 · Zasláno: 16. 3. 2011, 15:36:01
HonzaDury:
nastav správné hlavičky mailu, více v manuálu. |
||
HonzaDury Profil * |
#5 · Zasláno: 16. 3. 2011, 16:08:42
Kurnik vůbec mi to nefunguje :-/
$ Headers = 'MIME-Version: 1.0' . "\ r \ n" ; $ Headers .= 'Content-Type: text / html; charset = iso-8859-1' . "\ r \ n" ; |
||
Ben Profil * |
#6 · Zasláno: 16. 3. 2011, 17:37:43
Anebo se podívej sem
|
||
HonzaDury Profil * |
#7 · Zasláno: 16. 3. 2011, 17:57:26
jj na to jsem se taky díval, nakopíroval jsem do zdrojového kodu ty kody, které tam jsou uveřejněné a pořád nic. Nevím co dělám špatně :-/
|
||
TomasJ Profil |
#8 · Zasláno: 16. 3. 2011, 18:05:57
posli.php
<?php function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } function cs_mail($to, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?="; $head .= "\nMIME-Version: 1.0\r\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\r\n"; $head .= "Content-Transfer-Encoding: base64\r\n"; $zprava = base64_encode(autoUTF($zprava)); return mail($to, $predmet, $zprava, $head); } $osloveni = $_POST['osloveni']; $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; $email = $_POST['email']; $text = $_POST['text']; if ($jmeno!="" and $prijmeni!="" and $email!="" and $text!="") { cs_mail("happy.gilmore@seznam.cz", "predmet emailu", "$osloveni $jmeno $prijmeni\n$text", "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje</p>"; } ?> Řešení funguje, já tuhle funkci používám též. |
||
HonzaDury Profil * |
#9 · Zasláno: 16. 3. 2011, 18:13:59
Tak až takhle jsem to nerozepisoval :-O Ale dík moc funguje bezproblému
|
||
HonzaDury Profil * |
#10 · Zasláno: 17. 3. 2011, 13:38:04
<?php
function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } function cs_mail($to, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?="; $head .= "\nMIME-Version: 1.0\r\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\r\n"; $head .= "Content-Transfer-Encoding: base64\r\n"; $zprava = base64_encode(autoUTF($zprava)); return mail($to, $predmet, $zprava, $head); } $osloveni = $_POST['osloveni']; $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; $email = $_POST['email']; $text = $_POST['text']; if ($jmeno!="" and $prijmeni!="" and $email!="" and $text!="") { cs_mail("xx@xxx.cz", "E-mail z webových stránek xxx", "Zpráva od: $osloveni $jmeno $prijmeni\n___________________________________________________________\n\nText zprávy:\n\n$text\n\n\n___________________________________________________________\nZpracoval xxxx.", "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong>. Pravděpodobně jste nevyplnili všechny údaje. Zkuste to prosím znovu.</p>"; } ?> prosím Vás ještě jedna drobnost. Jak zformátovat text v posli.php? Například fonty, tučnost atd.? Vůbec mi to nejde :-( |
||
Davex Profil |
#11 · Zasláno: 17. 3. 2011, 18:25:30
HonzaDury:
„Jak zformátovat text v posli.php? Například fonty, tučnost atd.?“ Poslat s MIME typem text/html .
|
||
HonzaDury Profil * |
#12 · Zasláno: 17. 3. 2011, 19:05:47
Wow, tak tohle slyším poprvé. Musím pozjišťovat vo co vlastně jde :-)
|
||
Davex Profil |
#13 · Zasláno: 17. 3. 2011, 19:20:35
HonzaDury:
Už to tu jednou bylo, takže jsem předpokládal, že jsi jen přehlédl $head .= "Content-Type: text/plain; charset=\"utf-8\"\r\n"; |
||
HonzaDury Profil * |
#14 · Zasláno: 17. 3. 2011, 19:24:07
Tak teďka jsem úplně zamotaný. Teď už to vůbec nechápu :-( to Co jsi poslal, tak v tom mám akorát změnit plain na html? A co tím vlastně docílím? Já byhc právě potřeboval naformátovat text.
|
||
Davex Profil |
#15 · Zasláno: 17. 3. 2011, 19:31:06
HonzaDury:
Docílíš tím toho, že se tělo zprávy bude považovat za HTML kód a ne za prostý text, takže začnou fungovat HTML tagy, které tam pak můžeš použít. |
||
HonzaDury Profil * |
#16 · Zasláno: 18. 3. 2011, 15:21:41
Super dík moc. Jen ještě jedna malá věc. Jde nějak napojit na posli.php nějaký soubor a nebo nějaký příkaz, aby ten co posílá zprávu, dostal automaticky potvrzovací email?
Jednoduše řečeno: Já pošlu nějakou zpravů přes formulář a na můj email, který jsem zadal do formuláře mi příjde potvrzovací email, že zpráva byla zaslána. |
||
HonzaDury Profil * |
#17 · Zasláno: 19. 3. 2011, 17:28:31
Nikdo neví? Zkoušel jsem i googlit ale nic jsem nenašel :-(
|
||
Alphard Profil |
#18 · Zasláno: 19. 3. 2011, 20:43:47
HonzaDury:
Můžete poslat druhý mail v závislosti na návratové hodnotě toho prvního, ale samozřejmě to není 100%. |
||
Časová prodleva: 3 měsíce
|
|||
klara.muzikova@email.cz Profil * |
#19 · Zasláno: 20. 6. 2011, 04:54:29
Zdravím,
po dlouhém hledání na netu jsem konečně objevila funkční emailový formulář, ale mám problémy s češtinou, zkoušela jsem už ledacos, ale pořád nic. A taky bych ráda hlášku po odeslání nevypisovala na novou stránku, ale třeba pod formulář nebo jako alert. Pomůže někdo? V HTML mám takto: <form action="vzkaz22.php" method="post"> Váš e-mail: <input name="email" size="25" value="@"><br> Předmět: <input name="predmet" size="25" value=""><br> Protispamová ontrola: <input name="spam" size="25"> <strong>= 1 + 1</strong><br> Zpráva: <textarea name="zprava" rows="6" cols="55"> </textarea><br> <input type="submit" value="Odeslat"> </form> V PHP takto: <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") // Pokud není políčko předmět, mail, zprava prázné a spam se rovná (==) 2, pokračuj v kódu { Mail("klara.muzikova@email.cz", $predmet, $zprava, "From: " . $email, $headers); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo nevíte kolik je 1 + 1.</p>"; } ?> Předem díky moc za odpověď, Klára |
||
Časová prodleva: 13 let
|
0