Aider moi svp

Signaler
Messages postés
225
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
21 mai 2009
-
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
-
bonjour
j'ai pas encore trouver la réponse
aider moi je suis bloqué

voici j'ai mis ce code pour envoi mail avec piéce jointe j'ai réçu le mail mais la piece jointe ne s'affiche pas
<?
function mail_attachement($to , $sujet , $message , $fichier , $typemime , $nom , $reply , $from){
 $limite = "_parties_".md5(uniqid (rand()));
 
  $mail_mime = "Date: ".date("l j F Y, G:i")."\n";
  $mail_mime .= "MIME-Version: 1.0\n";
  $mail_mime .= "Content-Type: multipart/mixed;\n";
  $mail_mime .= " boundary="----=$limite"\n\n";
 
  //Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
  $texte = "This is a multi-part message in MIME format.\n";
  $texte .= "Ceci est un message est au format MIME.\n";
  $texte .= "------=$limite\n";
  $texte .= "Content-Type: text/plain; charset="iso-8859-1"\n";
  $texte .= "Content-Transfer-Encoding: 7bit\n\n";
  $texte .= $message;
  $texte .= "\n\n";
 
  //le fichier
  $attachement = "------=$limite\n";
  $attachement .= "Content-Type: $typemime; name="$nom"\n";
  $attachement .= "Content-Transfer-Encoding: base64\n";
  $attachement .= "Content-Disposition: attachment; filename="$nom"\n\n";
 
  $fd = fopen( $fichier, "r" );
  $contenu = fread( $fd, filesize( $fichier ) );
  fclose( $fd );
  $attachement .= chunk_split(base64_encode($contenu));
 
  $attachement .= "\n\n\n------=$limite\n";
  return mail([mailto:'essadisamia@yahoo.fr' 'essadisamia@yahoo.fr'], $sujet, $texte.$attachement, "Reply-to: $reply\nFrom:
$from\n".$mail_mime);
}
?>

merci pour tous

7 réponses

Messages postés
225
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
21 mai 2009

désolé je me suis trompé c'est ce code c'est vraiment désolé

<?
$boundary = '-----=' . md5( uniqid ( rand() ) );




$nom = $_POST['nom'];
$sujet= $_POST['sujet'];
$sujet= $_POST['sujet'];
$mail= $_POST['mail'];
 $path =$_FILES['fichier'] ; // chemin vers le fichier
  $fp = fopen($path, 'rb');
  $content = fread($fp, filesize($path));
  fclose($fp);
  $content_encode = chunk_split(base64_encode($content));


 


$message = "nom :\t$nom\n";


$headers = "From:$nom< $mail >"."\n";
  $headers .="Reply-To: $mail"."\n";
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed; boundary="$boundary"";
 $message  = "Ceci est un message au format MIME 1.0 multipart/mixed.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/plain; charset="iso-8859-1"\n";
  $message .= "Content-Transfer-Encoding: 8bit\n\n";


  
     $message .= 'Content-Type: image/jpeg; name="nom_du_fichier.jpg"'."\n";
     $message .= 'Content-Transfer-Encoding: base64'."\n";
     $message .= 'Content-Disposition:attachement; filename="nom_du_fichier.jpg"'."\n\n";


  $message .= $content_encode . "\n";
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";


 


     mail('mon adresse email', $sujet, $message, $headers) ;


?>
mai il m'affiche des erreur
Warning : fopen() expects parameter 1 to be string, array given in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 10

Notice: Array to string conversion in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 11

Warning: filesize(): Stat failed for Array (errno =2 - No such file or directory) in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 11

Warning: fread(): supplied argument is not a valid stream resource in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 11

Warning: fclose(): supplied argument is not a valid stream resource in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 12

svp corréger moi ces erreurs
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Hello,

$path =$_FILES['fichier'] ; // chemin vers le fichier << probleme ici, c'est un tableau

à remplacer par $_FILES['fichier']['tmp_name']

win
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Et pour lire un fichier entier, t'as une fonction : file_get_contents(), plus rapide =)

win
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
$path =$_FILES['fichier'] ; // chemin vers le fichier

c'est un array ca...

essaie ca :

$path =$_FILES['fichier']['tmp_name'] ; // chemin vers le fichier

au pire, fait un print_r($_FILES); pour etre sur
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
12 minutes de retard coucou747 :D

win
Messages postés
225
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
21 mai 2009

ok j'ai fai que vous m'avai di
mai maintenant il m'affiche cette erreur
malgré j'ai recu le mail mais la piece jointe ne s'affiche pas et donc quoi faire
aider moi!!!!!ca fait une semaine que je cherche mai j'ai rien trouver!!!

Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\mail_piéce jointe\envoi.php on line 42
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
set_time_limit(60); // où 60 est le temps limite d'execution de ton script

cependant, je te conseille de revoir ton code à la recherche d'une boucle infinie ou quelque chose du genre =)

win