Formulaire upload

Résolu
Signaler
Messages postés
8
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
1 mai 2009
-
Messages postés
8
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
1 mai 2009
-
Bonjour, je suis chez infomaniak et j'ai un message
Warning: mail() [function.mail]: Permission denied: headers injection (empty line) in /home/www/


J'ai lus cet article
http://hosting.infomaniak.ch/support/faq/faq_home.php

Mais je pige pas j'ai que des \n pas de \r, pas de \n\n et pas de \n\r


Et une erreur concernant cette ligne

if (mail($recipient,$betreff,$msg,$mailheaders)) {


mail($email, $dsubject, $dmsg, $dmailheaders);


Si vous avez une piste pour moi ça serai super cool merci

4 réponses

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

As tu essayé la solution proposé sur le lien (moyennant recherche) que tu as donné ?
$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));

Ca te permettrait d'être certain de ce que tu dis ("j'ai que des ...")

Cordialement,

Kohntark -
Messages postés
8
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
1 mai 2009

Salut oui j'ai essayé mais c pareil en fait je reçois bien les mail si je ne fais pas l'upload (c'est en faisant l'upload d'une image que j'ai le message !)
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
L'upload ?? tu veux dire envoyer une image dans le mail ?
Pourrais tu montrer ton code ?

Kohntark -
Messages postés
8
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
1 mai 2009

il porte presque le même nom que toi ^^

<?php
session_start();
############################################################################
# Version Française de mt Formulaire de contact                            #
# Auteur de la traduction : Patrick Hamy - 16 mars 2009                    #
# Licence de distribution de la version Française accordée à :Patrick Hamy #
# © Copyright of french translation : Patrick Hamy                         #
# Site web : http://www.codes-scripts.com                                  #
############################################################################
#    mt Kontaktformular                                                       #
#    http://www.michatronic.de                                               #
#    All rights by Michael Knothe                                              #
#--------------------------------------------------------------------------#
#    Info: michatronix@gmx.net                                               #
#    I-Net: http://www.michatronic.de                                          #
############################################################################
// Dieses Copyright darf NICHT entfernt werden!
// Ce Copyright ne doit pas être enlevé!

  $script_root = substr(__FILE__, 0,
                        strrpos(__FILE__,
                                DIRECTORY_SEPARATOR)
                       ).DIRECTORY_SEPARATOR;

  require_once $script_root.'upload.php';

$remote = getenv("REMOTE_ADDR");
// Sicherheitscode // Code de sécurité (captcha)
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "8h384ls94");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);

// Um das Formular zu leeren // Pour vider le formulaire (ne pas toucher)
if ($_POST['delete'])
{
unset($_POST);
}

// Übernahme der Daten aus den Formular // Envoi des données par le formulaire
if ($_POST["sendKontakt"]) {

// Variablen der Datenfelder // Variables des champs du formulaire
   $name      = $_POST["name"];
   $email      = $_POST["email"];
   $herkunft   = $_POST["herkunft"];
   $betreff   = $_POST["betreff"];
   $nachricht   = $_POST["nachricht"];
   $sicherheitscode   = $_POST["sicherheitscode"];
   $date = date("d.m.Y | H:i");
   $ip = $_SERVER['REMOTE_ADDR'];
   $UserAgent = $_SERVER["HTTP_USER_AGENT"];
   $host = getHostByAddr($remote);

// Überprüfung der Datenfelder // Contrôle des champs de données
$name = stripslashes($name);
$email = stripslashes($email);
$betreff = stripslashes($betreff);
$nachricht = stripslashes($nachricht);
 

if(!$name) {
 
 $fehler['name'] = "S'il vous plaît, indiquez votre nom .
";
 
}

if (!preg_match("/^[0-9a-zA-ZÄÜÖ_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$/", $email)) {
   $fehler['email'] = "S'il vous plaît, indiquez une adresse E-Mail correcte.\n
";
}

 
if(!$betreff) {
 
 $fehler['betreff'] = 'Indiquez , s&#39;il vous plaît, un Objet .
';
 
 
}
 
if(!$nachricht) {
 
 $fehler['nachricht'] = 'Entrez, s&#39;il vous plaît, un Message.
';
 
 
}

if($sicherheits_eingabe != $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
   $fehler['captcha'] = "Le Code de sécurité est erroné.
";
   }

    if (!isset($fehler) || count($fehler) == 0) {
      $error             = false;
      $errorMessage      = '';
      $uploadErrors      = array();
      $uploadedFiles     = array();
      $totalUploadSize   = 0;

      if ($cfg['UPLOAD_ACTIVE'] && in_array($_SERVER['REMOTE_ADDR'], $cfg['BLACKLIST_IP']) === true) {
          $error = true;
          $fehler['upload'] = 'Ces fichiers ne sont pas autorisés.
';
      }

      if (!$error) {
          for ($i=0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) {
              if ($_FILES['f']['error'][$i] == UPLOAD_ERR_NO_FILE) {
                  continue;
              }

              $extension = explode('.', $_FILES['f']['name'][$i]);
              $extension = strtolower($extension[count($extension)-1]);
              $totalUploadSize += $_FILES['f']['size'][$i];

              if ($_FILES['f']['error'][$i] != UPLOAD_ERR_OK) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  switch ($_FILES['f']['error'][$i]) {
                      case UPLOAD_ERR_INI_SIZE :
                          $uploadErrors[$j]['error'] = 'Le fichier est trop grand (PHP-Ini).';
                      break;
                      case UPLOAD_ERR_FORM_SIZE :
                          $uploadErrors[$j]['error'] = 'Le fichier est trop grand (dans le formulaire HTML).';
                      break;
                      case UPLOAD_ERR_PARTIAL :
                          if ($cfg['UPLOAD_ACTIVE']) {
                                $uploadErrors[$j]['error'] = 'Le fichier est partiellement trop chargé.';
                          } else {
                              $uploadErrors[$j]['error'] = 'Le fichier est partiellement expédié.';
                            }
                      break;
                      case UPLOAD_ERR_NO_TMP_DIR :
                          $uploadErrors[$j]['error'] = 'Aucun organisateur temporaire n&#39;a été trouvé.';
                      break;
                      case UPLOAD_ERR_CANT_WRITE :
                          $uploadErrors[$j]['error'] = 'Erreur aux stockage du fichier.';
                      break;
                      case UPLOAD_ERR_EXTENSION  :
                          $uploadErrors[$j]['error'] = 'Erreur inconnue par une extension.';
                      break;
                      default :
                          if ($cfg['UPLOAD_ACTIVE']) {
                                $uploadErrors[$j]['error'] = 'Erreur inconnue à un haut niveau.';
                          } else {
                              $uploadErrors[$j]['error'] = 'Erreur inconnue en expédiant la pièce jointe a l&#39;e-mail.';
                          }
                  }

                  $j++;
                  $error = true;
              }
              else if ($totalUploadSize > $cfg['MAX_ATTACHMENT_SIZE']*1024) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  $uploadErrors[$j]['error'] = 'Le téléchargement maximum est atteint. ('.$cfg['MAX_ATTACHMENT_SIZE'].' KB).';
                  $j++;
                  $error = true;
              }
              else if ($_FILES['f']['size'][$i] > $cfg['MAX_FILE_SIZE']*1024) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  $uploadErrors[$j]['error'] = 'Le fichier est trop grand. (max. '.$cfg['MAX_FILE_SIZE'].' KB).';
                  $j++;
                  $error = true;
              }
              else if (!empty($cfg['BLACKLIST_EXT']) && strpos($cfg['BLACKLIST_EXT'], $extension) !== false) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  $uploadErrors[$j]['error'] = 'La terminaison de fichier n&#39;est pas permise.';
                  $j++;
                  $error = true;
              }
              else if (preg_match("=^[\\:*?<>|/]+$=", $_FILES['f']['name'][$i])) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  $uploadErrors[$j]['error'] = 'Caractères non valables dans le nom des fichiers. (\/:*?<>|).';
                  $j++;
                  $error = true;
              }
              else if ($cfg['UPLOAD_ACTIVE'] && file_exists($cfg['UPLOAD_FOLDER'].'/'.$_FILES['f']['name'][$i])) {
                  $uploadErrors[$j]['name'] = $_FILES['f']['name'][$i];
                  $uploadErrors[$j]['error'] = 'Le fichier existe déjà.';
                  $j++;
                  $error = true;
              }
              else {
                  if ($cfg['UPLOAD_ACTIVE']) {
                     move_uploaded_file($_FILES['f']['tmp_name'][$i], $cfg['UPLOAD_FOLDER'].'/'.$_FILES['f']['name'][$i]);   
                  }
                  $uploadedFiles[] = $_FILES['f']['name'][$i];
              }
          }
      }

      if ($error) {
          $errorMessage = 'Les erreurs suivantes se sont produites, en expédiant le formulaire de contact :'."\n";
          if (count($uploadErrors) > 0) {
              foreach ($uploadErrors as $err) {
                  $tmp .= ' '.$err['name']."
\n- ".$err['error']."

\n";
              }
              $tmp = "

\n".$tmp;
          }
          $errorMessage .= $tmp.'';
          $fehler['upload'] = $errorMessage;
      }
  }

// wenn kein Fehler, wird eine E-Mail versendet // S'il n'y a pas de fautes, un E-Mail est envoyé
   if (!isset($fehler))
   {

// Kopf der E-Mail ==> Tête d'E-Mail   $recipient "mail@mail.com"; // Hier den Empfänger der Nachricht eintragen. (zwischen den Anführungszeichen)> Ici vous entrez l'adresse E-Mail du destinataire (La vôtre). (Entre les guillemets) Exemple : ($recipient = "votre.mail@fail.fr";).
   $betreff = "".$_POST["betreff"]."";
   $mailheaders = "From: "".stripslashes($_POST["name"])."" <".$_POST["email"]."> \n";
   $mailheaders .= "Reply-To: <".$_POST["email"]."> \n";
   $mailheaders .= "X-Mailer: PHP/" . phpversion() . " \n";

// Darstellung der E-Mail // Présentation de l'E-Mail
   $msg  = "Message envoyé le ". $date ." heure, par Formulaire de contact :\n" . "---------------------------------------------------------------------------\n";
   $msg .= "Nom : " . $name . "\n";
   $msg .= "E-Mail : " . $email . "\n";
   $msg .= "Origine ou Internet : " . $herkunft . "\n";
   $msg .= "\nObjet : " . $betreff . "\n";
   $msg .= "Message :\n" . $nachricht . "\n";
   "-------------------------------------------------------------------------\n";
 if (count($uploadedFiles) > 0) {
       if ($cfg['UPLOAD_ACTIVE']) {
              $msg .= 'Les fichiers suivants étaient trop chargés :'."\n";
           foreach ($uploadedFiles as $file) {
               $msg .= ' - '.$cfg['DOWNLOAD_URL'].'/'.$cfg['UPLOAD_FOLDER'].'/'.$file."\n";
           }
       } else {
           $msg .= 'Les fichiers suivants étaient ajoutés comme pièce jointe :'."\n";
           foreach ($uploadedFiles as $file) {
               $msg .= ' - '.$file."\n";
           }
       }
   }
   $msg .= "\nIP Adresse : " . $ip . "\n";
   $msg .= "Serveur : " . $host . "\n";
   $msg .= "Navigateur et système d'exploitation : " . $UserAgent . "\n";

  
    // Zusammenstellen der Email-Attachments // Construction de l'attachement des pièces jointes
    // Wird nur benötigt, wenn kein Upload erwünscht ist // Nécessaire lorsqu'aucun Upload n'est activé
    if (!$cfg['UPLOAD_ACTIVE'] && count($uploadedFiles) > 0) {
        $attachments = array();
        for ($i = 0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) {
               if ($_FILES['f']['name'][$i] == UPLOAD_ERR_NO_FILE) {
                continue;
            }
            $attachments[] = $_FILES['f']['tmp_name'][$i];
        }
        $boundary = md5(uniqid(rand(), true));
        $mailheaders .= "MIME-Version: 1.0 \n";
        $mailheaders .= "Content-Transfer-Encoding: 8bit \n";
        $mailheaders .= "Content-Type: multipart/mixed;\n\tboundary="".$boundary.""\n";
        $mailheaders .= "\n--".$boundary."\n";
        $mailheaders .= "Content-Type: text/plain;\n\tcharset="iso-8859-1"\n";
        $mailheaders .= "Content-Transfer-Encoding: 8bit\n";
        for ($i = 0; $i < count($uploadedFiles); $i++) {
            $file = fopen($attachments[$i],'r');
            $content = fread($file,filesize($attachments[$i]));
            fclose($file);
            $encodedfile = chunk_split(base64_encode($content));
            $msg .= "\n--".$boundary."\n";
            $msg .= "Content-Type: application/octet-stream;\n\tname="".$uploadedFiles[$i].""\n";
            $msg .= "Content-Transfer-Encoding: base64 \n";
            $msg .= "Content-Disposition: attachment;\n\tfilename="".$uploadedFiles[$i].""\n";
            $msg .= $encodedfile."\n";
        }
        $msg .= "\n--".$boundary."--";
    }

   $msg = strip_tags ($msg);

   // Dankes E-Mail  // E-mail de remerciement et de copie du message envoyé
   $dsubject = "Copie de votre message"; // Betreff der Nachricht // Objet du message
   $dmailheaders = "From: <".$recipient.">\n";
   $dmailheaders .= "Reply-To: <".$recipient."> \n";
   $dmsg  = "Merci bien de votre E-Mail. Nous y répondrons le plus vite possible.\n";
   $dmsg .= "Résumé : \n" .
  "-------------------------------------------------------------------------\n";
   $dmsg .= "Nom : " . $name . "\n";
   $dmsg .= "E-Mail : " . $email . "\n";
   $dmsg .= "Origine ou Internet : " . $herkunft . "\n";
   $dmsg .= "\nObjet : " . $betreff . "\n";
   $dmsg .= "Message :\n" . $nachricht . "\n";
  
   if (count($uploadedFiles) > 0) {
       $dmsg .= 'Les fichiers suivants, ont été transmis :'."\n";
       foreach ($uploadedFiles as $file) {
           $dmsg .= ' - '.$file."\n";
       }
   }
   $dmsg .= "\nIP Adresse : " . $ip . "\n";
   $dmsg .= "Serveur : " . $host . "\n";
   $dmsg .= "Navigateur et système d'exploitation : " . $UserAgent . "\n";

   $dmsg = strip_tags ($dmsg);

if (mail($recipient,$betreff,$msg,$mailheaders)) {
mail($email, $dsubject, $dmsg, $dmailheaders);

// Danke-Seite, wenn E-Mail versendet wurde // Texte de remerciement quand l'E-Mail a été envoyé
header ("location: danke.php");
exit;

// Texte quand l'email est envoyé
//print " Merci bien . le message nous a été transmis avec succès.
Nous vous //répondrons dans les meilleurs délais.";
 
}
}
}
?>
<?php // Schleife, um Formular-Überschrift bei Fehler nicht zu zeigen // Par défaut on ne montre jamais l'entête
if ($fehler) {
}
  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns ="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta name="language"             content="fr"/>
<meta  name="title"           content="http://www.michatronic.de, michatronic, michatronic.de, www.michatronic.de"/>
<meta name="keywords"         content="http://www.michatronic.de, michatronic, michatronic.de, www.michatronic.de"/>
<meta name="description"      content="http://www.michatronic.de, michatronic, michatronic.de, www.michatronic.de"/>
<meta name="author"           content="http://www.michatronic.de, michatronic, michatronic.de, www.michatronic.de"/>
<meta name="revisit"          content="After 7 days"/>
<meta name="robots"           content="INDEX,FOLLOW"/>
<meta http-equiv="Content-Style-Type" content="text/css" />  
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>codes-scripts.com-mt-formulaire-contact</title>

<style type="text/css">

.kontaktformular  {
     width:  400px;
     margin: 10px 0;
     padding: 10px;
     font-size: 11px;
     font-family: Tahoma, Verdana, Arial;
     border: 1px solid #666666;
     background: #F5F5F5;
     float: left;
     clear: both;
     }

.kontaktformular fieldset {margin: 10px 0;}
.kontaktformular a {color: #990000; text-decoration: none;}
.kontaktformular a:hover {color: #483D8A;}
 
.kontaktformular legend {
     background: #483D8B;
     color: #fff;
     padding: 3px 5px;
     border: 1px solid #ddd;
     text-transform: uppercase;
     }
     
.kontaktformular label {
     width: 100px;
     float: left;
     clear: both;
     padding: 3px 10px;
     margin: 3px 0;
     }
         
.kontaktformular input, .kontaktformular textarea {
     border-right: 1px solid #ddd;
     border-bottom: 1px solid #ddd;
     border-left: 1px solid #666666;
     border-top: 1px solid #666666;
     background: #ddc;
     padding: 0px 3px;
     margin: 3px 0;
     width: 250px;
}

.kontaktformular input:active, .kontaktformular input:focus, .kontaktformular input:hover { background: #ffff88;}
.kontaktformular textarea:active, .kontaktformular textarea:focus, .kontaktformular textarea:hover { background: #ffff88;}

.kontaktdaten table, .anfrage table, .captcha table { border-spacing:0px; width:370px; border:0px solid;}
.label { width:100px; padding:0px;}
.field { width:250px; padding:0px;}
.error { width:200px; padding:0px 0px 0px 5px;}
.captchareload { padding-left:10px;}
input.errordesignfields, textarea.errordesignfields { background-color:#cc3333;}

.buttons { text-align: center;}
.buttons input { width:80px;}
.buttons input, .captchareload img { background: #555555; color: #fff; border-top:2px solid #fff; border-left:2px solid #fff; border-bottom:2px solid #666666; border-right:2px solid #666666;}
.buttons input:hover, .captchareload img:hover { background: #555555; color: #fff; border-top:2px solid #ddd; border-left:2px solid #ddd; border-bottom:2px solid #fff; border-right:2px solid #fff;}

</style>

</head>

<form action="<?php $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">

 <fieldset class="kontaktdaten">
    <legend>Données de contact</legend>
            ----

            <label>Nom*</label>,
            <?php if ($fehler["name"] != "") { echo $fehler["name"]; } ?>" size="20" <?php if ($fehler["name"] != "") { echo 'class="errordesignfields"'; } ?>/>,
       
       
        ----

            <label>Origine ou Internet</label>,
            " size="20"/>,
            ,
       
        ----

            <label>E-Mail*</label>,
            <?php if ($fehler["email"] != "") { echo $fehler["email"]; } ?>" size="20" <?php if ($fehler["email"] != "") { echo 'class="errordesignfields"'; } ?>/>,
       
   

 </fieldset>

 <fieldset class="anfrage">
    <legend>Annexe</legend>
            ----

            <label>Objet*</label>,
            <?php if ($fehler["betreff"] != "") { echo $fehler["betreff"]; } ?>" size="20" <?php if ($fehler["betreff"] != "") { echo 'class="errordesignfields"'; } ?>/>,
       
        ----
   
            <label>Message*</label>,
            <?php if ($fehler["nachricht"] != "") { echo $fehler["nachricht"]; } ?><textarea name="nachricht" cols="30" rows="8" <?php if ($fehler["nachricht"] != "") { echo 'class="errordesignfields"'; } ?>><?php echo $_POST[nachricht]; ?></textarea>,
           
   

 </fieldset>
 
 <?php
      for ($i=0; $i < $cfg['NUM_ATTACHMENT_FIELDS']; $i++) {
          echo '<fieldset class="upload">';
          echo '<legend>Annexe</legend>';
          echo '<label>Fichier</label>
';
          echo '</fieldset>';
      }
?>

 <fieldset class="captcha">
    <legend>Code de sécurité</legend>
            ----

            <label>Code de sécurité</label>,
            ,
            &copy; by michatronic.de

</html>