Formulaire upload [Résolu]

spiritofmarquito 8 Messages postés samedi 27 janvier 2007Date d'inscription 1 mai 2009 Dernière intervention - 1 mai 2009 à 12:34 - Dernière réponse : spiritofmarquito 8 Messages postés samedi 27 janvier 2007Date d'inscription 1 mai 2009 Dernière intervention
- 1 mai 2009 à 13:42
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 1 mai 2009 à 12:56
3
Merci
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 -

Merci kohntark 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de kohntark
spiritofmarquito 8 Messages postés samedi 27 janvier 2007Date d'inscription 1 mai 2009 Dernière intervention - 1 mai 2009 à 13:17
0
Merci
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 !)
Commenter la réponse de spiritofmarquito
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 1 mai 2009 à 13:33
0
Merci
L'upload ?? tu veux dire envoyer une image dans le mail ?
Pourrais tu montrer ton code ?

Kohntark -
Commenter la réponse de kohntark
spiritofmarquito 8 Messages postés samedi 27 janvier 2007Date d'inscription 1 mai 2009 Dernière intervention - 1 mai 2009 à 13:42
0
Merci
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>
Commenter la réponse de spiritofmarquito

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.