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ářů(23)
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
Haroreab - 2017-10-29  12:39:16
 Levitra 10 Mg Dosaggio [url=http://cheaplevi.com]levitra 20mg[/url] Tadalis
Haroreab - 2017-10-29  12:39:15
 Levitra 10 Mg Dosaggio [url=http://cheaplevi.com]levitra 20mg[/url] Tadalis
Haroreab - 2017-10-29  12:39:14
 Levitra 10 Mg Dosaggio [url=http://cheaplevi.com]levitra 20mg[/url] Tadalis
Haroreab - 2017-10-25  23:50:43
 Rhine Inc India [url=http://levibuying.com]levitra pro pas cher[/url] Ridaq 25mg Online Dosage Of Livitra For 250 Lb Male
Haroreab - 2017-10-25  23:50:42
 Rhine Inc India [url=http://levibuying.com]levitra pro pas cher[/url] Ridaq 25mg Online Dosage Of Livitra For 250 Lb Male
Haroreab - 2017-10-25  23:50:39
 Rhine Inc India [url=http://levibuying.com]levitra pro pas cher[/url] Ridaq 25mg Online Dosage Of Livitra For 250 Lb Male
Haroreab - 2017-10-25  23:50:37
 Rhine Inc India [url=http://levibuying.com]levitra pro pas cher[/url] Ridaq 25mg Online Dosage Of Livitra For 250 Lb Male
Haroreab - 2017-10-12  10:55:16
 Adalat Azithromycin Vs Keflex For Cellulitis Viagra Generica Baratas [url=http://ordercheapvia.com]viagra online prescription[/url] No Prescription Needed Cealis Cialis 10 Opiniones
Haroreab - 2017-10-12  10:55:15
 Adalat Azithromycin Vs Keflex For Cellulitis Viagra Generica Baratas [url=http://ordercheapvia.com]viagra online prescription[/url] No Prescription Needed Cealis Cialis 10 Opiniones
Haroreab - 2017-10-12  10:55:14
 Adalat Azithromycin Vs Keflex For Cellulitis Viagra Generica Baratas [url=http://ordercheapvia.com]viagra online prescription[/url] No Prescription Needed Cealis Cialis 10 Opiniones
Haroreab - 2017-10-12  10:55:13
 Adalat Azithromycin Vs Keflex For Cellulitis Viagra Generica Baratas [url=http://ordercheapvia.com]viagra online prescription[/url] No Prescription Needed Cealis Cialis 10 Opiniones
Haroreab - 2017-10-01  12:06:24
 Comparatif Prix Viagra Viagra Pharmacy Reviews Zithromax And Insomnia [url=http://cheapestcial.com ]online pharmacy[/url] Does Generic Viagra Really Exist Viagra Avec Ou Sans Ordonnance
Haroreab - 2017-10-01  12:06:23
 Comparatif Prix Viagra Viagra Pharmacy Reviews Zithromax And Insomnia [url=http://cheapestcial.com ]online pharmacy[/url] Does Generic Viagra Really Exist Viagra Avec Ou Sans Ordonnance
Haroreab - 2017-10-01  12:06:22
 Comparatif Prix Viagra Viagra Pharmacy Reviews Zithromax And Insomnia [url=http://cheapestcial.com ]online pharmacy[/url] Does Generic Viagra Really Exist Viagra Avec Ou Sans Ordonnance
Haroreab - 2017-10-01  12:06:21
 Comparatif Prix Viagra Viagra Pharmacy Reviews Zithromax And Insomnia [url=http://cheapestcial.com ]online pharmacy[/url] Does Generic Viagra Really Exist Viagra Avec Ou Sans Ordonnance
[1] [2] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.