besoin d 'aide je suis perdu
Posté : 05 nov. 2011, 01:01
Bonsoir
Je voudrais faire sur mon site un espace d'upload, afin de permettre aux membres de mon site de m'envoyer des images directement par un formulaire d'upload et de recevoir ces images par mail
un ami m'a fait un code et le système d'envoi de mail fonctionne donc jusque là tout va bien
Toutefois, celui ci n'est pas complet " manque la limitation de taille de l'image, et l'image n'est pas renommée donc risque de doublons et comme mon ami ne sera plsu disponible durant un bout de temps me voila coincé
Par contre j'ai fini par trouver un code qui regroupe tous les critères manquant, et j'arrive à le faire fonctionner mais il n'a pas la fonction d'envoi de mail avec pièce jointe
j'ai beau tourner ce code et la partie d'envoi mail de mon ami dans tous les sens, je n'arrive pas au bout de ce que je voudrais avoir
Je reçois bien le mail mais pas la pièce jointe
Du coup je me tourne vers vous pour avoir de l'aide
je désespéré totalement
voici le code d'upload
et voici le bout de code que mon ami m'a fait pour envoyer les pièces jointes ( version brut)
pour moi cela merdouille a partir du Traitement pour attacher une PJ
mais je sais vraiment pas comment faire
Est ce que quelqu'un pourrais bien m'aider a adapter la 2eme partie en fonction de la 1ere ?
Merci de votre aide
Je voudrais faire sur mon site un espace d'upload, afin de permettre aux membres de mon site de m'envoyer des images directement par un formulaire d'upload et de recevoir ces images par mail
un ami m'a fait un code et le système d'envoi de mail fonctionne donc jusque là tout va bien
Toutefois, celui ci n'est pas complet " manque la limitation de taille de l'image, et l'image n'est pas renommée donc risque de doublons et comme mon ami ne sera plsu disponible durant un bout de temps me voila coincé
Par contre j'ai fini par trouver un code qui regroupe tous les critères manquant, et j'arrive à le faire fonctionner mais il n'a pas la fonction d'envoi de mail avec pièce jointe
j'ai beau tourner ce code et la partie d'envoi mail de mon ami dans tous les sens, je n'arrive pas au bout de ce que je voudrais avoir
Je reçois bien le mail mais pas la pièce jointe
Du coup je me tourne vers vous pour avoir de l'aide
je désespéré totalement
voici le code d'upload
Code : Tout sélectionner
<?php
$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = 'uploads/'; // Repertoire d'upload
if (isset($_FILES['fichier']))
{
// On vérifit le type du fichier
if ($_FILES['fichier']['type'] != 'image/png' && $_FILES['fichier']['type'] != 'image/jpeg' && $_FILES['fichier']['type'] != 'image/jpg' && $_FILES['fichier']['type'] != 'image/gif' && $_FILES['fichier']['type'] != 'image/bmp' && $_FILES['fichier']['type'] != 'image/jpg')
{
$erreur = 'Le fichier doit être au format *.jpeg, *.bmp, *.jpg, *.png, *.gif ou *.png .';
}
// On vérifit le poids de l'image
elseif ($_FILES['fichier']['size'] > $poids_max)
{
$erreur = 'L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
}
// On vérifit si le répertoire d'upload existe
elseif (!file_exists($repertoire))
{
$erreur = 'Erreur, le dossier d\'upload n\'existe pas.';
}
// Si il y a une erreur on l'affiche sinon on peut uploader
if(isset($erreur))
{
echo '' . $erreur . '<br><a href="javascript:history.back(1)">Retour</a>';
}
else
{
// On définit l'extention du fichier puis on le nomme par le timestamp actuel
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
if ($_FILES['fichier']['type'] == 'image/jpeg') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/png') { $extention = '.png'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.gif'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.bmp'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.jpg'; }
if ($_FILES['fichier']['type'] == 'image/gif') { $extention = '.png'; }
$nom_fichier = time().$extention;
// On upload le fichier sur le serveur.
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $repertoire.$nom_fichier))
{
$url = 'http://****************/chris/'.$repertoire.''.$nom_fichier.'';
echo '
<p align="center"><br><b><center><font color=\"#0000CC">Votre image à été uploadée sur le serveur avec succes!</b></center></font></b></p>
<div align="center"><br><br>Voici le lien:
<br />
<br/>
<img src="uploads/'.$nom_fichier.'" width="200px" height="200px" border="2px" />
<br />
<br/>
<b>URL de votre image </b> <input type="text" size="100" value="'.$url.'" /><br />
<br />
<br />
<b>BBcode img</b> = <input type="text" size="100" value="[img]' . $url . '[/img]" /><br />
<br />
<br />
<b>Voici le code pour un forum :
</b> = <input type="text" size="100" value="[url]' . $url . '[/url]" /><br />
<br />
<br />
<b>Voici le code pour votre site :</b> = <input type="text" size="200" value="<a href=' . $url . '><img src=' . $url . ' /></a>" /><br />
<br />
<br /></p></div>
';
}
else
{
echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
}
}
}
else
{
?>
<p> </p>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $poids_max; ?>">
<input type="file" name="fichier">
<input type="submit" value="Envoyer">
</form>
<?php
}
?>
et voici le bout de code que mon ami m'a fait pour envoyer les pièces jointes ( version brut)
Code : Tout sélectionner
// Envoi du mail avec le fichier
// Destinataire du mail
$destination = "[email protected]"; // A CHANGER AVEC TON ADRESSE MAIL
// Sujet du mail
$sujet = "Nouvelle image uploadée"; // A CHANGER SI TU VEUX MODIFIER L'OBJET
// Les headers pour un mail multiparts
$headers= "MIME-Version: 1.0\n";
$headers.= "From: \"hebergeur image\" <[email protected]>\n"; // A CHANGER SI TU VEUX MODIFIER L'ADRESSE D'EXPEDITEUR
$headers.= "Content-type: multipart/mixed;\n";
// Chaine permettant de différencier les différentes parties du mail
$limite = '_parties_'.md5(uniqid (rand()));
$headers.= " boundary=\"----=$limite\"\n\n";
// Première partie, corps du mail en HTML
$texte = "------=$limite\n";
$texte.= "Content-type: text/html; charset=\"iso-8859-1\"\n\n";
$texte.="<HTML><HEAD></HEAD><BODY>Une nouvelle image a été uploadée sur le site !</BODY></HTML>"; // A CHANGER SI TU VEUX CHANGER LE TEXTE DU MAIL
// Traitement pour attacher une PJ
$fichier = 'uploads/'.$name_file;
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";
// Traitement du type des images
if($type_file=='jpg')
$attachement .= "Content-Type: jpg; name=\"".$name_file."\"\n";
else if($type_file=='jpeg')
$attachement .= "Content-Type: jpeg; name=\"".$name_file."\"\n";
else if($type_file=='bmp')
$attachement .= "Content-Type: bmp; name=\"".$name_file."\"\n";
else if($type_file=='gif')
$attachement .= "Content-Type: gif; name=\"".$name_file."\"\n";
else if($type_file=='png')
$attachement .= "Content-Type: png; name=\"".$name_file."\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"".$name_file."\"\n\n";
// On joint le fichier en l'encodant en base 64
$attachement .= chunk_split(base64_encode($contenu));
// On envoie le mail
mail($destination, $sujet, $texte.$attachement, $headers);mais je sais vraiment pas comment faire
Est ce que quelqu'un pourrais bien m'aider a adapter la 2eme partie en fonction de la 1ere ?
Merci de votre aide