Autor | Zpráva | ||
---|---|---|---|
martinpechy Profil |
#1 · Zasláno: 10. 7. 2012, 12:10:01
Zdravim,
ma nekdo funkcni skript kterym propojim prilohu pridanou ve formulari v phpmaileru v addatachment() ? Vyzkousel jsem uz nekolik skriptu, nahravani souboru na web, nebo nastaveni opravneni a porad mi nic nefunguje, bud to pise could not acces the file anebo to nenapise nic ale soubor to neodesle. Samozrejme ze kdyz zadam cestu do skriptu rovnou tak to jde, ale z toho formulare mi to proste nejde. Dekuji za odpoved |
||
Taps Profil |
#2 · Zasláno: 10. 7. 2012, 12:56:08
martinpechy:
já jsem s odesíláním přílohy v phpmaileru neměl nikdy problém..ukáž kod |
||
martinpechy Profil |
#3 · Zasláno: 10. 7. 2012, 13:14:48
formular:
<body> <FORM ACTION="index.php" METHOD="post" ENCTYPE="application/x-www-form-urlencoded"> Odesílatel: <INPUT TYPE="text" NAME="odesilatel" VALUE="" SIZE=50 MAXLENGTH=50><BR> Jmeno odesilatele: <INPUT TYPE="text" NAME="jmenoodesilatele" VALUE="" SIZE=50 MAXLENGTH=50><BR> Příjemce: <INPUT TYPE="text" NAME="prijemce" VALUE="" SIZE=50 MAXLENGTH=50><BR> Predmet: <INPUT TYPE="text" NAME="predmet" VALUE="" SIZE=50 MAXLENGTH=50><BR> Text:<BR><TEXTAREA NAME="dopis" COLS="50" ROWS="10"></TEXTAREA><BR> Soubor: <INPUT TYPE="file" NAME="soubor"> <BR> <INPUT TYPE="submit" NAME="akce" VALUE="Odeslat"><BR> </FORM> </body> </html> a index: <body> <?php require("class.phpmailer.php"); // voláme súbor $mail = new PHPMailer(); //instancia PHPMaileru $mail->Charset = "utf-8"; $mail->AddAttachment($_FILES['soubor']['tmp_name']); // sem nevim co vlozit aby to fungovalo!! $mail->From = $_POST['odesilatel']; //odesilatel $mail->FromName = $_POST['jmenoodesilatele']; //jmeno odesilatele $mnohoAdres = $_POST['prijemce']; //data z formulare $adresy = preg_split('/[;,]/', $mnohoAdres); //vytvori ze zadanych adres pole foreach($adresy as $adresa){ if(trim($adresa) == '') continue; $mail->addAddress(trim($adresa)); } $mail->WordWrap = 50; // po 50 znaku slova rozdel slovo $mail->IsHTML(true); $mail->Subject = $_POST['predmet']; $mail->Body = $_POST['dopis']; if (!empty($_POST['akce'])) { $mail = new PHPMailer(); //instancia PHPMaileru $mail->Charset = "utf-8"; $mail->From = $_POST['odesilatel']; //odesilatel $mail->FromName = $_POST['jmenoodesilatele']; //jmeno odesilatele $mail->AddAttachment($_FILES['soubor']['tmp_name']); // sem nevim co mam vlozit aby to fungovalo!!!!!!! $mnohoAdres = $_POST['prijemce']; //data z formulare $adresy = preg_split('/[;,]/', $mnohoAdres); //vytvori ze zadanych adres pole foreach($adresy as $adresa){ if(trim($adresa) == '') continue; $mail->addAddress(trim($adresa)); } $mail->WordWrap = 50; // po 50 znaku slova rozdel slovo $mail->IsHTML(true); $mail->Subject = $_POST['predmet']; $mail->Body = $_POST['dopis']; } if(!$mail->Send()) { echo "Správa nebola zaslaná. <p>"; echo "Nastala chyba: " . $mail->ErrorInfo; exit; } echo "Správa úspešne zaslaná"; ?> </body> </html> |
||
Ugo Profil |
#4 · Zasláno: 10. 7. 2012, 13:23:36
a máš ten soubor? tenhle enctype vidim prvně a po shlédnutí na google to vypadá že je defaultní zkus multipart/form-data
|
||
martinpechy Profil |
#5 · Zasláno: 10. 7. 2012, 13:32:53
no jasne ze jo! zakladni vec a ja to nezkontroluju, diky moc! priloha prijde ale je to nejak divne zakodovany a ma to i divny nazev..ale aspon jsem se posunul
|
||
Ugo Profil |
#6 · Zasláno: 10. 7. 2012, 13:50:29 · Upravil/a: Ugo
divný název mít bude, jelikož to tomu dává ten název z tmpu což je něco vygenerovaného, tuším ale že to jde nastavit více parametrama - koukni do dokuemtnace, divně zakódované? :-P
doplním ještě, že není $Charset ale $CharSet ... $mail->CharSet = "utf-8"; to by mohlo být to kódování |
||
martinpechy Profil |
#7 · Zasláno: 10. 7. 2012, 13:55:56
no poslu treba obrazek a prijde to v nejakym divnym formatu a ten je aplication/octet stream
|
||
Ugo Profil |
#8 · Zasláno: 10. 7. 2012, 13:57:37
aha, kdoví odkud to bere ty další parametry jako content-type, možná mu to budeš muset nastavit ručně, ale zkus dát druhá parametr $mail->AddAttachment($_FILES['soubor']['tmp_name'], $_FILES['soubor']['name']);
|
||
martinpechy Profil |
#9 · Zasláno: 10. 7. 2012, 14:02:12
Vyborny, uz to bezi jak ma. moc dekuji!
|
||
Časová prodleva: 4 měsíce
|
|||
xxx9955 Profil |
#10 · Zasláno: 27. 10. 2012, 21:43:34
Ahojte. Inšpiroval som sa horeuvedeným kodom + dodatočnými úpravami, ale nefunguje to. Napíše, že mail, bol odoslaný, ale nič nepríde + chyba: Could not access file. Kody sú: index:
<form id="form" name="form" action="mail.php" METHOD="post" ENCTYPE="multipart/form-data"> <table width="535px"> <tr><td colspan="2"><h3>Cenová ponuka</h3></td></tr> <tr><td>Dĺžka:</td><td><input name="dlzka" type="text" size="20" value=""></td></tr> <tr><td>Šírka:</td><td><input name="sirka" type="text" size="20" value=""></td></tr> <tr><td>Priestor za:</td><td><input name="za" type="text" size="20" value=""></td></tr> <tr><td>Vaše priezvisko:</td><td><input name="meno" type="text" size="20" value=""></td></tr> <tr><td>Telefónne číslo:</td><td><input name="tel" type="text" size="20" value=""></td></tr> <tr><td>Obec:</td><td><input name="obec" type="text" size="20" value=""></td></tr> <tr><td>E-mail:</td><td><input name="email" type="text" size="20" value=""></td></tr> <tr><td>Fotografia:</td><td><input name="files" type="file" size="20" value=""></td></tr> <tr><td colspan="2"><input type="submit" class="button" value="Odošli" /></td></tr> </table></form> mail.php: <?php $prijemca = "xxx9955@gmail.com"; $predmet = "Calderaspa"; $text = " <b>Bazén:</b><br> džka - $dlzka<br> šírka - $sirka<br> priestor za bazénom - $za<br><br> <b>Kontakt:</b><br> meno - $meno<br> obec - $obec<br> telefonne číslo - $tel<br> e-mail - $email<br> "; require "class.phpmailer.php"; $mail = new PHPMailer(); $mail->IsHTML(true); $mail->CharSet = "utf-8"; // nastavíme kódování, ve kterém odesíláme e-mail $mail->From = $_POST[email]; // adresa odesílatele skriptu $mail->FromName = $_POST[email]; // jméno odesílatele skriptu (zobrazí se vedle adresy odesílatele) $mail->AddAddress("xxx9955@gmail.com"); // a klidně i druhého, včetně jména $mail->AddAttachment($_FILES['$files']['tmp_name'], $_FILES['$files']['name']); $mail->Subject = $_POST[predmet]; // nastavíme předmět e-mailu $mail->Body = $_POST[text]; // nastavíme tělo e-mailu $mail->WordWrap = 50; // je vhodné taky nastavit zalomení (po 50 znacích) if(!$mail->Send()) { // odešleme e-mail echo 'Došlo k chybe pri odoslaný e-mailu.'; echo 'Chybová hláška: ' . $mail->ErrorInfo; } else { echo 'E-mail bol odoslananý.'; } ?> |
||
Časová prodleva: 13 let
|
0