Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Invité régulier
    Homme Profil pro Mossaâb Akhazzan
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Mossaâb Akhazzan
    Localisation : Maroc

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 6
    Points
    6

    Par défaut problème mailing fichier

    salut à tous,
    j'ai un problème, quand j'envoie un fichier a un email le serveur me donne ce code :


    Warning: file_get_contents(CV_blabla.pdf) [function.file-get-contents]: failed to open stream: No such file or directory in /homepages/5/d391037984/htdocs/msb/cible.php on line 118
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    <?php
    if( isset($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message'])){
    	//valider le sujet
    	if( empty($_POST['subject'])){
    	$errors[] = "s'il vous plait entrer un sujet.";
    	}else{
    		$subject = htmlentities($_POST['subject']);
    	}
    	// valider email 
    	if( empty($_POST['email'])){
    		$errors[] = "s'il vous plait entrer un email.";
    	}elseif(strlen($_POST['email']) >347 ){
    		$errors[] = "l'adresse est long !! s'il vous plait entrer un valid email.";
    	}elseif(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false ){
    		$errors[] = "s'il vous plait entrer un valid email !!.";
    	}else{
    	$email = "<".htmlentities($_POST['email']).">";
    	}
    	//valider reception
    	$recept = "<blabla@blabla.com>";
    	//valider le msg
    	if( empty($_POST['message'])){
    		$errors[] = "s'il vous plait entrer un message.";
    	}else{
    		$message = htmlentities($_POST['message']);
    	}
    }
     
    //test de validation de fichier 
    if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
    	if( $_FILES['cv']['size'] <= 1000000 ){
    		$info = pathinfo($_FILES['cv']['name']);
    		$extention_upload = $info['extension'];
    		$extention_autoriser = array('doc', 'docx', 'pdf');
    		if( in_array($extention_upload, $extention_autoriser)){
    			$nomfichier =$_FILES['cv']['name'];
     
     
     
    			//*****************************************************
     
    function mailfichier($email, $recept, $subject, $message, $nomfichier) {
      // generation du separateur, une chaine aleatoire fait l'affaire
      $bound = '------------'.md5(uniqid('toto'));
     
      $entete = 'From: '.$email."\n"
        .'MIME-Version: 1.0'."\n"
        .'Content-Type: multipart/mixed;'."\n"
        .' boundary="'.$bound.'"';
     
      $message = 'This is a multi-part message in MIME format.'."\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
        .'Content-Transfer-Encoding: 7bit'."\n\n"
        .$message
        ."\n\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
        .'Content-Transfer-Encoding: base64'."\n"
        .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
        .chunk_split(base64_encode(file_get_contents($nomfichier)))
        .'--'.$bound.'--'."\n";
     
      return @mail($recept, $subject, $message, $entete);
    }
     
    			mailfichier($email, $recept, $subject, $message, $nomfichier);
     
    		}
     
    	}
    }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 222
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 222
    Points : 30 919
    Points
    30 919

    Par défaut

    Le fichier uploadé c'est $_FILES['cv']['tmp_name'] ; $_FILES['cv']['name'] c'est uniquement le nom du fichier d'origine.

  3. #3
    Invité régulier
    Homme Profil pro Mossaâb Akhazzan
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Mossaâb Akhazzan
    Localisation : Maroc

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 6
    Points
    6

    Par défaut merci

    oui ça marche mais le problème c'est que , moi j'envoie un pdf, et dans le message que j'ai reçu un fichier.txt avec des chiffres ?
    et quand je modifie l'extension de fichier reçu au pdf ça marche !!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 222
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 222
    Points : 30 919
    Points
    30 919

    Par défaut

    Le "name" c'est $_FILES['cv']['name']et le "filename" c'est $_FILES['cv']['tmp_name']

  5. #5
    Invité régulier
    Homme Profil pro Mossaâb Akhazzan
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Mossaâb Akhazzan
    Localisation : Maroc

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 6
    Points
    6

    Par défaut

    oui, je compris , mais ce que je veux vous dire c'est que le serveur envoi un fichier sans extension, par contre moi je remplis la formulaire avec un fichier.pdf
    le nom du fichier qu'il envoi : phpJDg1gm
    le message que j'ai reçu :
    Fichiers attachés
    Images attachées Images attachées

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    21 222
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 21 222
    Points : 30 919
    Points
    30 919

    Par défaut

    C'est justement parce que tu utilises le tmp_name à l'endroit il faudrait utiliser le name

  7. #7
    Invité régulier
    Homme Profil pro Mossaâb Akhazzan
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Mossaâb Akhazzan
    Localisation : Maroc

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 6
    Points
    6

    Par défaut

    s'il vous plait vous pouvez m'expliquer car j'ai pas bien compris ??
    voici le code :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
    	if( $_FILES['cv']['size'] <= 1000000 ){
    		$info = pathinfo($_FILES['cv']['name']);
    		$extention_upload = $info['extension'];
    		$extention_autoriser = array('doc', 'docx', 'pdf');
    		if( in_array($extention_upload, $extention_autoriser)){
    			$nomfichier =$_FILES['cv']['tmp_name'];
    function mailfichier($email, $recept, $subject, $message, $nomfichier) {
      // generation du separateur, une chaine aleatoire fait l'affaire
      $bound = '------------'.md5(uniqid('toto'));
     
      $entete = 'From: '.$email."\n"
        .'MIME-Version: 1.0'."\n"
        .'Content-Type: multipart/mixed;'."\n"
        .' boundary="'.$bound.'"';
     
      $message = 'This is a multi-part message in MIME format.'."\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
        .'Content-Transfer-Encoding: 7bit'."\n\n"
        .$message
        ."\n\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
        .'Content-Transfer-Encoding: base64'."\n"
        .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
        .chunk_split(base64_encode(file_get_contents($nomfichier)))
        .'--'.$bound.'--'."\n";
     
      return @mail($recept, $subject, $message, $entete);
    }
     
    			mailfichier($email, $recept, $subject, $message, $nomfichier);
     
     
    		}
     
    	}
    }
    c'est comme vous m'avez dit !!

  8. #8
    Invité régulier
    Homme Profil pro Mossaâb Akhazzan
    Inscrit en
    avril 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Nom : Homme Mossaâb Akhazzan
    Localisation : Maroc

    Informations forums :
    Inscription : avril 2012
    Messages : 19
    Points : 6
    Points
    6

    Par défaut merci à tous

    grâce a vous j'ai trouvé la solution, bon si quelqu'un veux la solution c'est :

    comme m'a dit
    le Modérateur
    que :
    Code :
    $_FILES['nom_fichier']['tmp_name']
    renvoi le fichier, par contre
    Code :
    $_FILES['nom_fichier']['name']
    renvoi juste le nom.
    alors la solution consiste a envoyer les deux à la fonction c'est comme ceci :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    if( isset($_FILES['cv']) AND $_FILES['cv']['error'] == 0) {
    	if( $_FILES['cv']['size'] <= 1000000 ){
    		$info = pathinfo($_FILES['cv']['name']);
    		$extention_upload = $info['extension'];
    		$extention_autoriser = array('doc', 'docx', 'pdf');
    		if( in_array($extention_upload, $extention_autoriser)){
     
    			$nomfichier =$_FILES['cv']['name'];
    			$fichiertmp = $_FILES['cv']['tmp_name'];
     
    function mailfichier($email, $recept, $subject, $message, $nomfichier, $fichiertmp) {
      // generation du separateur, une chaine aleatoire fait l'affaire
      $bound = '------------'.md5(uniqid('toto'));
     
      $entete = 'From: '.$email."\n"
        .'MIME-Version: 1.0'."\n"
        .'Content-Type: multipart/mixed;'."\n"
        .' boundary="'.$bound.'"';
     
      $message = 'This is a multi-part message in MIME format.'."\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain; charset=ISO-8859-1'."\n"
        .'Content-Transfer-Encoding: 7bit'."\n\n"
        .$message
        ."\n\n"
        .'--'.$bound."\n"
        .'Content-Type: text/plain;'."\n".' name="'.basename($nomfichier).'"'."\n"
        .'Content-Transfer-Encoding: base64'."\n"
        .'Content-Disposition: attachment;'."\n".' filename="'.basename($nomfichier).'"'."\n\n"
        .chunk_split(base64_encode(file_get_contents($fichiertmp)))
        .'--'.$bound.'--'."\n";
     
      return @mail($recept, $subject, $message, $entete);
    }
    			mailfichier($email, $recept, $subject, $message, $nomfichier, $fichiertmp);
    		}
    	}
    }
    merci groupe developpez.net !! ^^

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •