IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Pour les sources
        Créer un diaporama avec les images d'un dossier
        Comment envoyer plusieurs pièce jointe dans un mail ?

rechercher
precedent    sommaire       telechargermiroir


Créer un diaporama avec les images d'un dossier
auteur :berceker united
<?php
$arrFichier = array();
$i=0;
$directory='images/';
//Ouvre un dossier, et liste tous les fichiers
if (is_dir($directory)) {
  if($dh = opendir($directory)) {
    while (($file = readdir($dh)) !== false) {
     $extension = pathinfo($directory.$file);
      if($file!='..' && $file!='.' && strtolower($extension['extension'])=='jpg'){//N'affiche pas le . et ..
        $arrFichier[$i] = $file; //PLace les fichier dans un tableau
        $i++;
      }
    }
  }
  closedir($dh); //Il est conseillé de fermer la ressource lorsqu'on en a plus besoin
}

//Initalisation.
if($_GET['index']!=''){
  $index = $_GET['index'];
}else{
  $index = 0;
}

//Affichage des liens précédent et suivant.
if($index > 0){ //N'affiche pas le boutton au premier
  echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index-1).'\'" type="button" name="precedent" value="<<">';
}

echo '<img src="'.$directory.'/'.$arrFichier[$index].'">'; //Affichage de l'image

if($index < (count($arrFichier)-1)){ //N'affiche pas le boutton suivant lorsqu'il y a pas d'image apres
  echo '<input onClick="window.location=\''.$_SERVER['SCRIPT_NAME'].'?index='.($index+1).'\'" type="button" name="suivant" value=">>">';
}
?>

Comment envoyer plusieurs pièce jointe dans un mail ?
auteur :berceker united
Il faut créer un répertoire "tmpimg" 1 - Upload de tous les fichiers 2 - Contrôle les extensions. 3 - Construction de l'entête pour le mail. 4 - Envoi du mail 5 - Suppresion des fichiers.
PREMIER FICHIER
<? $nbFile = 3; ?>
<html>
<body>
<form action="mail.php" method="POST" enctype="multipart/form-data" name="formulaire">
   <br><br>
   <table style="border:1px solid #000000" align="center">
     <tr>
       <td colspan="2" class="en-tete">Envoyer vos informations concernant le produit</td>
     </tr>
     <tr>
       <td colspan="2">
         <textarea name="message"></textarea>
       </td>
     </tr>
<? for($i=0;$i<$nbFile;$i++){ ?>
     <tr>
       <td>Fichier image <? echo $i+1; ?> :</td>
       <td><input type="file" name="fichier<? echo $i; ?>" value="">
     </tr>
<? } ?>
     <tr>
       <td align="center" colspan="2"><input type="submit" name="action" value="Envoyer"></td>
     </tr>
   </table>
   <input type="hidden" name="nbfile" value="<? echo $nbFile; ?>">
</form>
</body>
</html>
FICHIER MAIL
//$filename : chemin du fichier.
function get_extension($filename){
   $parts = explode('.',$filename);
   $last = count($parts) - 1;
   $ext = $parts[$last];
   return $ext;
}


if($_SERVER['REQUEST_METHOD'] == 'POST'){  //Détecte si c'est le post provient d'un POST.
  $isConform        = false;
  $attachment       = array();
  $arrNameFile      = array();
  $arrSource        = array();
  $arrExtension     = array();
  $arrType          = array();
  $arrInfoManu      = array();
  $arrExtensionCTRL = array('jpg','jpeg','bmp','psd','png','gif','tif','tiff');
  $boundary = "-----=".md5(uniqid(rand()));
  $extensionTemp    = '';
  $file             = '';
  $attachment       = '';

  $destinataire     = 'mail destinataire';
  $from             = 'votre mail';
  $reponse          = 'votre mail réponse';
  $sujet            = 'Votre sujet';
  $repertoire       = 'tmpimg'; //Répertoire ou ce trouverons les fichiers attachées.
  $fp               = null;
  $type             = 'text/plain';
  $message          = trim($_POST['message']);

  if($_POST['action'] == 'Envoyer'){
    for($i=0;$i<$_POST['nbfile'];$i++){ //Boucle sur le nombre de champs de type file
      $extensionTemp = get_extension($_FILES['fichier'.$i]['name']); // Récupère l extension du fichier
      if($_FILES['fichier'.$i]['name'] != ''){  //Détecte si il y a eu un fichier d'envoyé.
        if(in_array(strtolower($extensionTemp), $arrExtensionCTRL)){ //Regarde si l'extension est valide.
          $arrNameFile[$i] = $_FILES['fichier'.$i]['name'];  //Nom du fichier
          $arrSource[$i]   = $_FILES['fichier'.$i]['tmp_name']; //Fichier temporaire :: contenu.
          $isConform = true;  //Il est donc conforme.
        }else{
          $isConform = false; //Il n'est pas conforme
        }
      }
    }
  }

  //Redirection dans le cas ou il y a une extension non valide.
  if($isConform == false){
    header('Location:page_erreur.php?erreur=true');
    exit();
  }
  //Boucle sur le nombre de fichier valide.
  for($i=0;$i<count($arrNameFile);$i++){
    copy($arrSource[$i], $repertoire.'/'.$arrNameFile[$i]); //Copie le fichier dans une zone précise du disque
    $arrExtension[$i] = strtolower(get_extension($arrNameFile[$i])); //récupère l'extension
    if($arrExtension[$i] == 'gif')                                     $arrType[$i] = 'image/gif';  //gif
    else if($arrExtension[$i] == 'bmp')                                $arrType[$i] = 'image/bmp';  //bmp
    else if($arrExtension[$i] == 'png')                                $arrType[$i] = 'image/png';  //png
    else if($arrExtension[$i] == 'psd')                                $arrType[$i] = 'image/psd';  //psd
    else if($arrExtension[$i] == 'jpg' || $arrExtension[$i] == 'jpeg') $arrType[$i] = 'image/jpeg'; //jpg
    else if($arrExtension[$i] == 'tif' || $arrExtension[$i] == 'tiff')  $arrType[$i] = 'image/tiff'; //tif
  }

//----------------------------------
// Construction de l entête
//----------------------------------

  $header = "MIME-Version: 1.0\r\n";
  $header .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $header .= "\r\n";

  $msg = "Je vous informe que ceci est un message au format MIME 1.0.\r\n";

  $msg .= "--$boundary\r\n";

  $msg .= "Content-Type: $type; charset=\"iso-8859-1\"\r\n";

  $msg .= "Content-Transfer-Encoding:8bit\r\n";
  $msg .= "\r\n";
  $msg .="===================VOTRE MESSAGE===================\r\n\r\n";
  $msg .= $message;
  $msg .= "\r\n";

  for($i=0;$i<count($arrNameFile);$i++){
    $file = $repertoire.'/'.$arrNameFile[$i];

    $fp = fopen($file, 'rb');
    $attachment = fread($fp, filesize($file));
    fclose($fp);
    $attachment = chunk_split(base64_encode($attachment));

    $msg .= "--$boundary\r\n";
    $msg .= "Content-Type: ".$arrType[$i]."; \r";
    $msg .= "name=\"".$arrNameFile[$i]."\"\r\n";
    $msg .= "Content-Transfer-Encoding: base64\r\n";
    $msg .= "Content-Disposition: inline;\r\n filename=\"".$arrNameFile[$i]."\"\r\n";
    $msg .= $attachment . "\r\n";

    $msg .= "\r\n";
    $msg .= "\r\n\r\n";
    unlink($file);
  }
  $msg .= "--$boundary--\r\n";
  if(mail($destinataire, $sujet , $msg,"Reply-to: $reponse\r\nFrom: $from\r\n".$header)){
    echo "OK";
  }else{
    echo "ERREUR";
  }
}
?>

rechercher
precedent    sommaire       telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!