Posíláme obrázek a soubor prostřednictvím PHP - část 2.

 2012-04-04 00:00:00
 Dmitry Burobin
Série článků:
1) Jak poslat e-mail prostřednictvím PHP - část 1.
2) Posíláme obrázek a soubor prostřednictvím PHP - část 2.

Toto už je trochu složitější, ale taky zajímavější příklad. Dnes Vám ukážu, jak se dá poslat nejen dopis, ale i obrázek či soubor. Taky uděláme z dopisu html šablonu, t.z., že dostaneme nástroj, pomocí kterého budeme moci generovat jakékoliv potřebné dopisy.

Pro zpracování dopisů jsem použíl zdroje, které jsem našel na Internetu před nějakou dobou, proto bohužel nemůžu uvést původní zdroj třídy, kterou Vám teď ukážu. Zde je odkaz: class.phpmailer.php. Na některých hostingech pro správnou úpravu obrázků je třeba do složky se skriptem přidat soubor .htaccess s následujícím obsahem:

<IfModule mod_charset.c
CharsetRecodeMultipartForms off 
</IfModule>

Jak vlastně použíjeme tuto třídu:
<?php
function show_form() 

?>
<form action="" method=post enctype="multipart/form-data"
<
div align="center"
              <
br />Jméno:*<br /> 
              <
input type="text" name="name" size="40"
              <
br />Telefonní číslo:<br /> 
              <
input type="text" name="tel" size="40"
              <
br />E-mail:*<br /> 
              <
input type="text" name="email" size="40"
              <
br />Téma:<br /> 
              <
input type="text" name="title" size="40"
              <
br />Zpráva:*<br /> 
              <
textarea rows="10" name="mess" cols="30"></textarea
              <
br />Soubor:<br /> 
              <
input name="attachfile" type="file" size="28"
              <
br />Obrázek:<br /> 
              <
input name="attachimage" type="file" size="28"
              <
br /><br /><input type="submit" value="Odeslat" name="submit"
</
div
</
form
Musíte vyplňit.
<?php 


function 
complete_mail() { 
        
// $_POST['title'] data z inputu Přemět, trim() - odstraňuje zbytečné 
        //mezery a řádky, htmlspecialchars() - převádí specifické symboly 
        //do HTML entit, proto, aby jsme zabránili nejjednoduššímu pokusu o 
        //hacknutí stránky a substr($_POST['title'], 0, 1000) -  
        //omezujeme text do 1000 znaků. Pro proměnné  
        //$_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] 
        //uděláme to samé. 
    
$_POST['title'] =  substr(htmlspecialchars(trim($_POST['title'])), 01000); 
        
$_POST['mess'] =  substr(htmlspecialchars(trim($_POST['mess'])), 01000000); 
        
$_POST['name'] =  substr(htmlspecialchars(trim($_POST['name'])), 030); 
        
$_POST['tel'] =  substr(htmlspecialchars(trim($_POST['tel'])), 030); 
        
$_POST['email'] =  substr(htmlspecialchars(trim($_POST['email'])), 050); 
        
// Jestli není vyplněno pole "Jméno" - chyba 0 
        
if (empty($_POST['name'])) 
             
output_err(0); 
        
// Jestli pole email vyplněno špatně - chyba 1 
        
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$_POST['email'])) 
             
output_err(1); 
        
// Jestli není vyplněno pole "Zpráva" - chyba 2
        
if(empty($_POST['mess'])) 
             
output_err(2); 
        
// Všiměte si, teď můžeme udělat hezký dopis pomocí html značek 
        
$mess 
<strong>Jméno odesílatele:</strong>'
.$_POST['name'].'<br /> 
<strong>Telefonní číslo:</strong>'
.$_POST['tel'].'<br /> 
<strong>E-mail:</strong>'
.$_POST['email'].'<br /> 
'
.$_POST['mess']; 

        
// zahrnujeme soubor s třídou pro odesílani emailů 
        
require 'class.phpmailer.php'

        
$mail = new PHPMailer(); 
        
$mail->From 'test@test.cz';      // email odesílatele 
        
$mail->FromName 'www.koding.cz';   // jméno odesílatele 
        
$mail->AddAddress('to@seznam.cz''Jméno'); // příjemce - email, jméno 
        
$mail->IsHTML(true);        // formát dopisu HTML 
        
$mail->Subject $_POST['title'];  // Předmět 

        // Jestli byl přidán soubor, pak ho přiložíme k emailu  
        
if(isset($_FILES['attachfile'])) { 
                 if(
$_FILES['attachfile']['error'] == 0){ 
                    
$mail->AddAttachment($_FILES['attachfile']['tmp_name'], $_FILES['attachfile']['name']); 
                 } 
        } 
        
// Jestli obrázek, pak ho přiložíme v podobě obrázku k emailu  
        
if(isset($_FILES['attachimage'])) { 
                 if(
$_FILES['attachimage']['error'] == 0){ 
                    if (!
$mail->AddEmbeddedImage($_FILES['attachimage']['tmp_name'], 'my-attach''image.gif''base64'$_FILES['attachimage']['type'])) 
                         die (
$mail->ErrorInfo); 
                    
$mess .= 'Máme tady náš obrázek:<br /><img src="cid:my-attach" border=0><br />ukázal jsem Vám jak se dá přiložit obrázek, teď už jenom potřebujete vložit obrázek do správného místa ve zprávě.'
                 } 
        } 
        
$mail->Body $mess

        
// posílame email 
        
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo); 
        echo 
'Děkuji! Váš dopis odeslán.'


function 
output_err($num

    
$err[0] = 'Chyba! Zadejte jméno.'
    
$err[1] = 'Chyba! Špatný e-mail.'
    
$err[2] = 'Chyba! Zadejte zprávu.'
    echo 
'<p>'.$err[$num].'</p>'
    
show_form(); 
    exit(); 

 

if (!empty(
$_POST['submit'])) complete_mail(); 
else 
show_form();  
?>

Děkuji za pozornost, těšte se na další články.

Systém Orphus
Napište komentář.
Celkem komenrářů(38)
GlennZem - 2018-10-21  01:56:02
 cialis 5 mg price costco
cialis professional reviews
onhoxte@mail.ru
walmart price for cialis 20mg tablets
Charlesmah - 2018-07-16  12:01:05
 viagra bula preГ§o
[url=http://viagrapipls.com/]generic viagra[/url]
viagra bestellen nederland
viagra generic
viagra generico brasileiro
http://viagrapipls.com/
viagra generic
Robertevodo - 2018-07-14  08:29:27
 kamagra shop erfahrungen 2014
kamagra oral jelly
erfahrungsbericht kamagra shop deutschland
[url=https://www.kamagrapos.com/]kamagra jelly[/url]
kamagra 100mg chewable lifesavers
Haroldwok - 2018-07-13  18:37:42
 kamagra dosage
buy kamagra
kamagra oral jelly how to use
[url=https://www.kamagradax.com/]kamagra[/url]
kamagra kopen amsterdam
DavidTix - 2018-07-13  06:49:44
 kamagra oral jelly kaufen deutschland
kamagra 100mg
kamagra 100mg oral jelly price in egypt
[url=https://www.kamagrajellyk.com/]kamagra oral jelly[/url]
kamagra london reviews
Kamagra oral jelly india online - 2018-03-31  20:28:31
 come si usa il kamagra oral jelly
buy kamagra 100 mg
kamagra 100mg tablets side effects
[url=http://kamagradxt.com/]kamagra 100[/url]
kamagra 100mg oral jelly for sale
http://kamagradxt.com/
come usare kamagra oral jelly
Kamagra oral jelly keine wirkung - 2018-03-29  01:47:09
 kamagra reviews users
[url=http://kamagradxt.com/]buy kamagra online[/url]
kamagra oral jelly kaufen deutschland
buy kamagra 100 mg oral jelly
kamagra 100mg oral jelly kako se uzima
http://kamagradxt.com/
kamagra 100mg 7 tablets
Jeffpoonia - 2017-12-03  05:27:50
 Nolvadex Homme [url=http://costofcial.com ]cialis price[/url] Pays Tadalis Sx Soft Vente Libre Buy Cailas In Uk Levitra Ohne Rezept Verkaufen
Jeffpoonia - 2017-12-03  05:27:48
 Nolvadex Homme [url=http://costofcial.com ]cialis price[/url] Pays Tadalis Sx Soft Vente Libre Buy Cailas In Uk Levitra Ohne Rezept Verkaufen
Jeffpoonia - 2017-12-03  05:27:47
 Nolvadex Homme [url=http://costofcial.com ]cialis price[/url] Pays Tadalis Sx Soft Vente Libre Buy Cailas In Uk Levitra Ohne Rezept Verkaufen
Jeffpoonia - 2017-12-03  05:27:45
 Nolvadex Homme [url=http://costofcial.com ]cialis price[/url] Pays Tadalis Sx Soft Vente Libre Buy Cailas In Uk Levitra Ohne Rezept Verkaufen
Haroreab - 2017-11-27  18:35:25
 Canine Uti Cephalexin Mod156 [url=http://via75mg.com]viagra[/url] Zithromax Yahoo Answers
Haroreab - 2017-11-27  18:35:24
 Canine Uti Cephalexin Mod156 [url=http://via75mg.com]viagra[/url] Zithromax Yahoo Answers
Haroreab - 2017-11-27  18:35:23
 Canine Uti Cephalexin Mod156 [url=http://via75mg.com]viagra[/url] Zithromax Yahoo Answers
Haroreab - 2017-11-27  18:35:22
 Canine Uti Cephalexin Mod156 [url=http://via75mg.com]viagra[/url] Zithromax Yahoo Answers
Haroreab - 2017-11-07  15:28:33
 Cialis Kosten Schweiz Honeymoon Cystitis Keflex [url=http://cheapviapills.com]viagra[/url] Cialis Omeopatico Viagra Bestellen Auf Nachnahme Mentat
Haroreab - 2017-11-07  15:28:32
 Cialis Kosten Schweiz Honeymoon Cystitis Keflex [url=http://cheapviapills.com]viagra[/url] Cialis Omeopatico Viagra Bestellen Auf Nachnahme Mentat
Haroreab - 2017-11-07  15:28:31
 Cialis Kosten Schweiz Honeymoon Cystitis Keflex [url=http://cheapviapills.com]viagra[/url] Cialis Omeopatico Viagra Bestellen Auf Nachnahme Mentat
Haroreab - 2017-11-07  15:28:30
 Cialis Kosten Schweiz Honeymoon Cystitis Keflex [url=http://cheapviapills.com]viagra[/url] Cialis Omeopatico Viagra Bestellen Auf Nachnahme Mentat
Haroreab - 2017-11-04  00:43:32
 Stomatitis Treated With Keflex And Clotrimazole Cialis Ou Viagra Prix [url=http://buygenericvia.com]viagra[/url] Propecia Spermatogenesis Viagra Vergleich Test
[1] [2] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.