wixar

Inscris le 06/06/2007 à 07:04
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    12
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
wixar
le 06/06/2007 à 09:05
Mails et deux pieces jointes php
bonjour à tous
j'ai fait un formulaire pour envoyer deux pieces jointes

le seul problème c'est que la deuxième pièce jointe ne pars pas

quelqu'un aurait une idée?

[taille=grand][couleur=rouge]LA PARTIE PROG [/couleur](code tronqué)[/taille]

Code : PHP
<?php


$email= $_POST['Email'];

$destinataire = "darkcyr@hotmail.fr"; # email de destination




#----------------------------------# options de pièce jointe------------------------------------#


$rep = "upload/"; # répertoire temporaire d'upload

$taillemax = 10240000; # taille max de la pièce jointe (multiple de 1024)


$erreur = false; // pas encore d'érreur

$message = false; //pas encore de message

$focus = 0; //pour la surbrillance

#----------------------------------------------------------------------------------------------------#


if (!empty($_POST)) #si le formulaire n'est pas vide


$piecejointe = "";# pièce jointe

if(!$erreur && strlen($_FILES['Fichier']['name']))
{
$fichier = $_FILES['Fichier'];

#---------------------------------upload du fichier sur le serveur------------------------------------#

$temp = $fichier['tmp_name'];
$name = $fichier['name'];
$size = $fichier['size'];
$destination = $rep.$name;

if($size > $taillemax)
$erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";

elseif(!@is_uploaded_file($temp))
$erreur = "Téléchargement de $name impossible";

elseif(!@move_uploaded_file($temp, $destination))
$erreur = "Problème de transfert de $name";

if($erreur) $focus = 7;

else
{
#---------------------------------lecture et conversion du fichier------------------------------------#

if($openf = @fopen($destination, "rb"))
{
$fichier = fread($openf, filesize($destination));
@fclose($openf);

#--------------------------------- encodage norme RFC 2045------------------------------------#

$piecejointe = chunk_split(base64_encode($fichier));
}
else
{
$erreur = "Problème de lecture du fichier $name";
$focus = 7;
}
}

}


$piecejointe2 = "";# pièce jointe

if(!$erreur && strlen($_FILES['Fichier2']['name']))
{
$fichier2 = $_FILES['Fichier2'];

#---------------------------------upload du fichier sur le serveur------------------------------------#

$temp2 = $fichier2['tmp_name'];
$name2 = $fichier2['name'];
$size2 = $fichier2['size'];
$destination2 = $rep.$name2;

if($size2 > $taillemax)
$erreur = "Taille du fichier $name2 > ".(int)($taillemax/1024)." Ko";

elseif(!@is_uploaded_file($temp2))
$erreur = "Téléchargement de $name2 impossible";

elseif(!@move_uploaded_file($temp2, $destination2))
$erreur = "Problème de transfert de $name2";

if($erreur) $focus = 7;

else
{
#---------------------------------lecture et conversion du fichier------------------------------------#

if($openf = @fopen($destination2, "rb"))
{
$fichier2 = fread($openf, filesize($destination2));
@fclose($openf);

#--------------------------------- encodage norme RFC 2045------------------------------------#

$piecejointe2 = chunk_split(base64_encode($fichier2));
}
else
{
$erreur = "Problème de lecture du fichier $name2";
$focus = 7;
}
}

}



if(!$erreur) # pas d'erreur donc on continue
{
#--------------------------------- traitement du tableau $_POST qui contient les paires name => value-----------------------------------#

$message_final = "";

foreach($_POST as $key => $value)
{
# la deuxième partie du test passe les champs non désirés dans le mail // pour passer d'autres champs les séparer par |

if (strlen($value) && !eregi("(MAX_FILE_SIZE)", $key))
$message_final .= "$key : ".strip_tags($value)."\n";

}

# formatage du message de confirmation affiché

$message = ereg_replace("(\n|\r|\r\n)", "<br>", htmlentities($message_final)); # conversion des sauts de ligne et des caractères spéciaux


$objet = "$entete ".$_POST['Objet'];

# si l'email n'est pas renseigné on le remplace par celui du destinataire, en ajoutant une alerte au message
$final_mail = $_POST['Email'];

if(empty($_POST['Email']))
{
$final_mail = $destinataire;
$message_final .= "\nNe pas répondre par mail : email absent.\n";
}
# en-têtes
$headers = "From: ".$final_mail;
if(strlen($email_cc))
$headers .= "\nCC: ".$email_cc;
if(strlen($email_bcc))
$headers .= "\nBCC: ".$email_bcc;

# si pièce jointe on ajoute l'en-tête spécifique avec séparateurs
if(strlen($piecejointe) || strlen($piecejointe2))
{
$boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
$headers .= "\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
$message_final =
"This is a multi-part message in MIME format.\n--$boundary\n".
"Content-Type: text/plain; charset=ISO-8859-1\n".
"Content-Transfer-Encoding: 7bit\n\n".
"$message_final\n\n--$boundary\n".
"Content-Type: $mimetype; name=\"$name\"\n".
"Content-Transfer-Encoding: base64\n".
"Content-Disposition: attachment; filename=\"$name\"\n\n".
"$piecejointe\n--".
"Content-Type: $mimetype; name=\"$name2\"\n".
"Content-Transfer-Encoding: base64\n".
"Content-Disposition: attachment; filename=\"$name2\"\n\n".
"$piecejointe2\n--".

$boundary."--\n";
}

# envoi du mail
if (@mail($destinataire, stripslashes($objet), stripslashes($message_final), $headers))
{
@unlink($destination); // suppression de la pièce jointe
@unlink($destination2); // suppression de la pièce jointe

$pageName = "Le mail a été envoyé !";
}
else
{
$pageName = "Echec !";
$erreur = "Echec de l'envoi ! Merci d'essayer encore SVP";
}

}
else {

$pageName = "Erreur de saisie !";

} // if(!$erreur)

}
else {

$_POST = false;

} // if ($_POST)
?>


[taille=grand][couleur=rouge]LE FORMULAIRE (enfin juste la partie avec les pièces jointes)[/couleur](code tronqué)[/taille]



Code : PHP

<form name="formulaire" action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<?if (file_exists($rep)) { ?>
<p>
<label for="fichier">CV</label><input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>"/><input type="file" maxlength="60" id="fichier" <? if($focus == 7) echo "class=\"focus\"";?> name="Fichier"/>
<p>
<label for="fichier2">Lettre de motivation</label><input type="hidden" name="MAX_FILE_SIZE" value="<? echo $taillemax?>"/><input type="file" maxlength="60" id="fichier2" <? if($focus == 7) echo "class=\"focus\"";?> name="Fichier2"/>


<? } ?>

<input id="submit" type="submit" value="Envoyer"/><br/>

</p>
</form>

Ses derniers messages sur les forums

forum
wixar
le 19/06/2007 à 14:42
Mails et deux pieces jointes php
ba la j'essaie juste d'envoyer un mail simple avec ta classe pour voir si ca marche

et la il ne veut mm pas afficher le tableau error avec print_r, meme si je donne une valeur bidon a la variable
wixar
le 19/06/2007 à 14:06
Mails et deux pieces jointes php
excuse moi encore d'être nul en php ^^
j'essaie de faire du mieux que je peux ^^

pour afficher error, suffit de rajouter
print $error; dans test1?

sinon quoi?

merci d'avance
(le gros noob du php ^^)
wixar
le 19/06/2007 à 11:18
Mails et deux pieces jointes php
donc si je met ca dans un fichier test1.php, et que ta class je la met dans un fichier test.php, ca devrait m'envoyer un mail, c'est ca?

1. <?php
require 'test.php';
2. $mail = new send_mail();
3. $mail->importance();
4. $mail->addFrom('darkcyr@hotmail.fr <darkcyr@hotmail.fr>');
5. $mail->addTo('darkcyr@hotmail.fr <darkcyr@hotmail.fr>');
6.
7. $mail->addSubject('sujet');
8. $mail->addContent('le texte du mail', 'html');
9.
10. $mail->checkIntegrityMail();
11. if (count($mail->error) == 0) {
12. $mail->build_mail();
13. $mail->send();
14. }
15. ?>

si cest le cas, ba alors cest mon site qui a un probleme, car rien ne pard

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours