Autor | Zpráva | ||
---|---|---|---|
RobertH Profil |
#1 · Zasláno: 23. 3. 2010, 11:34:06 · Upravil/a: RobertH
Zdravim,
mam problem pri odesilani formulare, kod nize mi ho zpracovava a odesila na email. Problem zpociva v tom, ze kdyz odeslu formular s prilohou, tak mi pride email z vyplnene adresy ve formulari (tak jak ma), ale kdyz je bez prilohy tak mi prijde z postmastru a ne z vyplneneho emailu. Nemuzu najit chybu, dokazal by mi s tim nekdo pomoct? |
||
RobertH Profil |
#2 · Zasláno: 23. 3. 2010, 11:35:34 · Upravil/a: RobertH
<?php $p = strlen($extension); if($p != 4 && $p != 5) { $valid = 0; $err_msg .= "<p>Priloha ma prilis dlouhy nazev.$p"; } if($valid == 1){ $fileatt = $_FILES['fileatt']['tmp_name']; $hlavicka = "From: $email"; if(is_uploaded_file($fileatt)) { $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; $hlavicka .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; $zprava = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/html; charset=$chrset\n" . "Content-Transfer-Encoding: 7bit\n\n" . $zprava . "\n\n"; $data = chunk_split(base64_encode($data)); $zprava .= "--{$mime_boundary}\n" . "Content-Type: {$file_type};\n" . " name=\"{$file_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; } if ($stop != 1){ $zprava = StripSlashes($zprava); $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); if($sent) header("Location: ../../../index.php?page=razitka_objednavka_potvrzeni"); else echo "<h1>Formular se nezdrilo odeslat.</h1>"; } else { header("Location: ../../../index.php?page=razitka_objednavka_alert"); } if($valid!==1) { echo "<h2>Chyba...</h2>$err_msg"; echo "<p>Kliknete zpet a zkuste znovu."; } } else { // nenĂ pĹ™Ăloha if ($stop != 1){ $zprava = StripSlashes($zprava); $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); if($sent) header("Location: ../../../index.php?page=razitka_objednavka_potvrzeni"); else echo "<h1>Formular se nezdrilo odeslat.</h1>"; } else { header("Location: ../../../index.php?page=razitka_objednavka_alert"); } } ?> |
||
AM_ Profil |
#3 · Zasláno: 23. 3. 2010, 17:49:21 · Upravil/a: AM_
Opravdu ten problém nešlo redukovat na méně řádků? Tímhle se nikomu nebude chtít probírat, zato ty bys mohl skript "osekat" tak, aby pořád docházelo ke zmiňované chybě, ale měl třeba jen 10 řádků. Víc nás nezajímá.
//jako například dlouhé výpisy HTML kódu, dlouhé seznamy těch položek formuláře, se kterými to nesouvisí, nebo seznam mime typů, popř. hromada validace v PHP atd., která s problémem také nesouvisí. |
||
nightfish Profil |
#4 · Zasláno: 23. 3. 2010, 18:14:38 · Upravil/a: nightfish
vzhledem k tomu, že adresu odesílatele (hlavičku From) nastavujete jen na řádku 46 v [#2], který je ve větvi začínající
if($att_present) { jinak budete mít rozhozené kódování v předmětu, ale to už asi víte |
||
RobertH Profil |
#5 · Zasláno: 24. 3. 2010, 10:52:42
AM:
zkráceno... nightfish: a kde to mám ještě nastavit aby se mi to odesílalo z emailu odesílatele? Kódování je špatné pouze v Outlooku, můžu se zeptat čím to je? Když mám nastavené všude UTF-8. |
||
nightfish Profil |
#6 · Zasláno: 24. 3. 2010, 10:55:38
|
||
RobertH Profil |
#7 · Zasláno: 24. 3. 2010, 14:14:47 · Upravil/a: RobertH
Takze bude vypadat ten kod takhle?
<?php else { // nenĂ pĹ™Ăloha if ($stop != 1){ $zprava = StripSlashes($zprava); $hlavicka = "From: $email"; $sent = @mail($emailadr, $predmet, $zprava, $hlavicka); if($sent) header("Location: ../../../index.php?page=razitka_objednavka_potvrzeni"); else echo "<h1>Formular se nezdrilo odeslat.</h1>"; } else { header("Location: ../../../index.php?page=razitka_objednavka_alert"); } } ?> |
||
RobertH Profil |
#8 · Zasláno: 24. 3. 2010, 15:09:55
tak takhle mi to nefunguje, sice mi to prijde z odesilajiciho emailu, ale zato ne v html, ale rozsypany
|
||
nightfish Profil |
#9 · Zasláno: 24. 3. 2010, 15:12:25
pravděpodobně už $hlavicka něco obsahuje (což se ze zkráceného [#2] zjistit nedá)
zkuste řádek 5 nahradit za $hlavicka .= "From: $email\r\n"; |
||
RobertH Profil |
#10 · Zasláno: 24. 3. 2010, 16:15:53
Super... už to funguje jak má. Díky
|
||
Časová prodleva: 14 let
|
0