Információkat elküldi de a mellékletet nem csatolja a php

Információkat elküldi de a mellékletet nem csatolja a php
2015-05-15T20:35:43+02:00
2015-05-16T10:39:14+02:00
2022-12-02T12:40:40+01:00
nucleus
Sziasztok

Dolgozok egy melléklet küldő php-n. Az oldal hibát nem jelez nekem. Program mikor lefut ki irja hogy a levelem postázva de viszont mikor kinyitom a fiókomat látom hogy nem csatolt hozzá semmit csak az infókat küldte el ilyen formába:

--==Multipart_Boundary_x8606a0b491572293986122695ff1595ax
Content-Type: {"application/octet-stream"};
 name="/mail/1150804_568404796550559_280128410_n.jpg"
Content-Disposition: attachment;
 filename="/mail/1150804_568404796550559_280128410_n.jpg"
Content-Transfer-Encoding: base64

melleklet_kuld.php:

<?

// Kapott fáljokat küldi? (did files get sent)

if(isset($_FILES) && (bool) $_FILES) {





// Meghatározzák engedélyezett kiterjesztések (define allowed extensions)

$allowedExtensions = array("rar","zip","pdf","doc","docx","gif","jpeg","jpg","npg","bmp");
$files = array();




// Végigjárjuk az összes fájlt (loop through all the files)

foreach($_FILES as $name=>$file) {





// Meghatározzák megengedett változók (define allowed variables)

$file_name = $file['name'];
$temp_name = $file['tmp_name'];





// Ellenőriz ha a fálj tipus engedélyezet (check if this file type is allowed)

$path_parts = pathinfo($file_name);
$ext = $path_parts['extension'];
if(!in_array($ext,$allowedExtensions)) {
die("Kiterjesztés nem engedélyezet");
}




// Mozgatjuk a file-t a szerverre (move this file to the server YOU HAVE TO DO THIS)

$server_files = "/mail/$path_parts[basename]";
move_uploaded_file($temp_name,$server_file);





// Fájl hozzáadása a tömb fájlok (add this file to the array of files)
array_push($files,$server_files);
}





// Meghatározni néhány mail változók (define some mail variables)

// kinek
$to = "enmailcimem@gmail.com";
$from = "akikuldi@hotmail.com";
$subject = "teszt melléklet";
$msg = "üzenet tőlem";
$headers = "from: $from";





// Meghatározzuk a határ (define our boundary)

$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";





// Mondd el a fejléc a határ (tell the header about the boundary)

$headers .= "\nMIME-Version 1.0\n";
$headers .= "Content-Type: multipart/mixed\n";
$headers .= " boundary="{$mime_boundary}"";





// 1. RÉSZ: Határozzák meg a sima szöveges e-mail (define the plain text email)

$message ="\n\n--{$mime_boundary}\n";
$message .="Content-Type:text/plain; charstet="iso-8859-1"\n";
$message .="Content-Transfer-Encoding: 7bit\n\n" . $msg . "\n\n";
$message .="--{$mime_boundary}\n";





// 2. RÉSZ: Vissza és határozza mail mellékletek(loop and define mail attachments)

foreach($files as $file) {
$aFile = fopen($file,"rb");
$data = fread($aFile,filesize($file));
fclose($afile);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: {"application/octet-stream"};\n";
$message .= "name="$file"\n";
$message .= "Content-Disposition: attachment;\n";
$message .= "filename="$file"\n";
$message .= "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
$message .= "--{$mime_boundary}\n";
}





// Küldjön E-MAILT (send the email)

$ok = mail($to, $subject, $message, $headers);
if ($ok) {
print "<script> alert('Leveled postázva. Köszi, hogy írtál.')</script>" ;
}
else
{
print "<script> alert('A levél elküldése sikertelen.')</script>" ;
}
die();
}


?>

válaszotokat előre is köszönöm!
Mutasd a teljes hozzászólást!
Notice: Undefined variable: server_file in ... on line 60

$server_file helyett $server_files

Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File() is not within the allowed path(s): (/tmp:/var/www/dnacelszerkezet.hu) in ... on line 60

rendben, hogy beraktad a fenti kódot amit küldtem, de bent hagytad a régit így mindig felülírod a rosszal .

Notice: Undefined variable: afile in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122

$afile helyett $aFile

próbáld meg így:
. . . // IRÁSJOGADÁS // Mozgatjuk a file-t a szerverre (move this file to the server YOU HAVE TO DO THIS) // $server_files = "/mail/$path_parts[basename]"; $server_files = dirname(__FILE__) . DIRECTORY_SEPARATOR . "mail" . DIRECTORY_SEPARATOR . $path_parts['basename']; move_uploaded_file($temp_name, $server_files); // Fájl hozzáadása a tömb fájlok (add this file to the array of files) array_push($files,$server_files); . . .
Mutasd a teljes hozzászólást!

  • Lehet az új sorral van gondja - próbáld meg \n helyett \r\n-nel - pl:
    $headers .= "\nMIME-Version 1.0\n"; // helyett $headers .= "\r\nMIME-Version 1.0\r\n";
    és így tovább a többi 19 helyen.

    Forráskód gombot érdemes használni - sokkal olvashatóbb lesz úgy a kód

    ui:
    $message .= "Content-Type: {"application/octet-stream"};\n";
    $message .= "name="$file"\n";
    $message .= "Content-Disposition: attachment;\n";
    $message .= "filename="$file"\n";

    a name és filename előtt mintha nem lenne szóköz - itt bemutatja, hogy milyen galibát okozhat.
    Mutasd a teljes hozzászólást!
  • kijavitottam mind a 2 hibát amit emlitettél de a probléma még mindig fent áll ugyan abba a formába

    /r/n - uj sor kocsi vissza ezen én is gondolkoztam miért nem igy csinálta azt hittem ez valami ujfajta szabvány
    Mutasd a teljes hozzászólást!
  • PHP: mail - Manual
    additional_headers (optional)
    String to be inserted at the end of the email header.

    This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n). If outside data are used to compose this header, the data should be sanitized so that no unwanted headers could be injected.
    ...
    If messages are not received, try using a LF (\n) only. Some Unix mail transfer agents (most notably » qmail) replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with » RFC 2822.


    a tutorial készítője OSX alatt csinálta a kódot - lehet emiatt használta a \n-t.

    Be tudod másolni az átírt kódot ide (forráskódként) - de lehet jobb lenne csatolni (prog.hu motorja hajlamos rá, hogy a \"-ből "-t csináljon, így lesznek az olyan érdekes részek mint a $headers .= " boundary="{$mime_boundary}"";)
    Mutasd a teljes hozzászólást!
  • En a // Mozgatjuk a file-t a szervere - reszre gyanakszok :
    $Server_file= mailmappat en szerkeztettem es csinaltam egy ilyenmapat az ftpre is mert gondoltam magamba h hasznalni fogja de megse.....
    Mutasd a teljes hozzászólást!
  • Video tuttorialok helyett, nem lenne jobb első lépésben web/txt alapú tuttorial?

    Ráadásul tele van a net hasonlókkal: php send email with attachment
    Mutasd a teljes hozzászólást!
  • Nem tudom miert de a videotutorialok valahogy jobban bejönnek autodidakta modon foleg ha angolra vagyok ra kenyszeritve ez az anyag meg azert fogot meg mert nagyabol atlathatonak talaltam az anyagat elso ranezesre
    Mutasd a teljes hozzászólást!
  • Lehet benne valami - hozz létre egy mail mappát a php mellé - adj neki jogot, hogy írni tudja, majd próbáld meg ezzel:
    $server_files = dirname(__FILE__) . DIRECTORY_SEPARATOR . "mail" . DIRECTORY_SEPARATOR . $path_parts['basename'];

    Illetve ha még nincs, akkor rakj egy
    error_reporting(E_ALL); ini_set("display_errors", 1);
    párost a php elejére - ha van valamilyen hibaüzenet, akkor így ki fogja írni a képernyőre és egy fokkal könnyebb lesz debugolni.
    Mutasd a teljes hozzászólást!
  • bekapcsoltam a hibakijelzés és már látok is valami konkrétat:

    Notice: Undefined variable: server_file in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 60

    Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File() is not within the allowed path(s): (/tmp:/var/www/dnacelszerkezet.hu) in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 60

    Notice: Undefined variable: server_file in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 60

    Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File() is not within the allowed path(s): (/tmp:/var/www/dnacelszerkezet.hu) in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 60

    Warning: fopen(/mail/1150804_568404796550559_280128410_n.jpg) [function.fopen]: failed to open stream: No such file or directory in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 120

    Warning: filesize() [function.filesize]: stat failed for /mail/1150804_568404796550559_280128410_n.jpg in/var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 121

    Warning: fread() expects parameter 1 to be resource, boolean given in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line121

    Notice: Undefined variable: afile in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122

    Warning: fclose() expects parameter 1 to be resource, null given in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122

    Warning: fopen(/mail/10408995_833622590028777_4184236440592733480_n.jpg) [function.fopen]: failed to open stream: No such file or directory in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 120

    Warning: filesize() [function.filesize]: stat failed for /mail/10408995_833622590028777_4184236440592733480_n.jpg in/var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 121

    Warning: fread() expects parameter 1 to be resource, boolean given in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line121

    Notice: Undefined variable: afile in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122

    Warning: fclose() expects parameter 1 to be resource, null given in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Notice: Undefined variable: server_file in ... on line 60

    $server_file helyett $server_files

    Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File() is not within the allowed path(s): (/tmp:/var/www/dnacelszerkezet.hu) in ... on line 60

    rendben, hogy beraktad a fenti kódot amit küldtem, de bent hagytad a régit így mindig felülírod a rosszal .

    Notice: Undefined variable: afile in /var/www/dnacelszerkezet.hu/melleklet_kuld.php on line 122

    $afile helyett $aFile

    próbáld meg így:
    . . . // IRÁSJOGADÁS // Mozgatjuk a file-t a szerverre (move this file to the server YOU HAVE TO DO THIS) // $server_files = "/mail/$path_parts[basename]"; $server_files = dirname(__FILE__) . DIRECTORY_SEPARATOR . "mail" . DIRECTORY_SEPARATOR . $path_parts['basename']; move_uploaded_file($temp_name, $server_files); // Fájl hozzáadása a tömb fájlok (add this file to the array of files) array_push($files,$server_files); . . .
    Mutasd a teljes hozzászólást!
  • Sikerült csatolmányt feltette a program az ftpre és egy hiperhivatkozással elérhetővé is tette...

    kicsit még finomítani kell a programon mert a mail tartalma pár kilométer karaktert tárol és ez így nem néz ki valami jól de úgy ítélem ez egy másik kérdés lesz....NAGYON SZÉPEN KÖSZÖNÖM A TÜRELMED ÉS SEGITSÉGGED Frostech0
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd