Ajout de variable ne fonctionne pas

Eléphanteau du PHP | 22 Messages

17 avr. 2012, 15:29

Bonjour, j'ai actuellement un formulaire en ligne que je possédais il y a un moment, cependant j'aimerais rajouter une variable et cela ne marche pas et je ne comprends pas trop pourquoi.

La variable que j'ai ajouté est $montant:

<?php
session_start();

  $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"];
$montant      = $_POST["montant"];

   $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);
$montant = stripslashes($montant);

$email = stripslashes($email);
$betreff = stripslashes($betreff);
$nachricht = stripslashes($nachricht);
 

if(!$name) {
 
 $fehler['name'] = "<font color=#cc3333>S'il vous plaît, indiquez le <strong>prénom</strong> du bénéficiaire.<br /></font>";
 
}

if(!$montant) {
 
 $fehler['montant'] = "<font color=#cc3333>S'il vous plaît, indiquez le montant du <strong>chèque cadeau</strong>.<br /></font>";
 
}



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

 
if(!$betreff) {
 
 $fehler['betreff'] = '<font color=#cc3333>Indiquez , s'il vous plaît, un <strong>Objet</strong>.<br /></font>';
 
 
}
 
if(!$nachricht) {
 
 $fehler['nachricht'] = '<font color=#cc3333>Entrez, s'il vous plaît, un <strong>Message</strong>.<br /></font>';
 
 
}

if($sicherheits_eingabe != $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
   $fehler['captcha'] = "<font color=#cc3333>Le <strong>Code de sécurité</strong> est erroné.<br /></font>";
   }

    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'] = '<font color=#990000>Ces fichiers ne sont pas autorisés.<br /></font>';
      }

      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'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'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'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 .= '<strong>'.$err['name']."</strong><br/>\n- ".$err['error']."<br/><br/>\n";
              }
              $tmp = "<br/><br/>\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))
   {

 Tête d'E-Mail
   $recipient = "[email protected]";
   $betreff = "".$_POST["betreff"]."";
   $mailheaders = "From: \"".stripslashes($_POST["name"])."\" <".$_POST["email"].">\n";
   $mailheaders .= "Reply-To: <".$_POST["email"].">\n";
   $mailheaders .= "X-Mailer: PHP/" . phpversion() . "\n";

 Présentation de l'E-Mail
   $msg  = "Message envoyé le ". $date ." heure, par Formulaire de contact :\n" . "---------------------------------------------------------------------------\n\n";
   $msg .= "Prénom du bénéficaire : " . $name . "\n";
$msg .= "Montant du chèque cadeau : " . $montant . "\n";

   $msg .= "E-Mail : " . $email . "\n";
   $msg .= "Origine ou Internet : " . $herkunft . "\n";
   $msg .= "\nObjet : " . $betreff . "\n";
   $msg .= "Message :\n" . $nachricht . "\n\n";
   "-------------------------------------------------------------------------\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\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\n";
			$msg .= $encodedfile."\n\n";
		}
		$msg .= "\n\n--".$boundary."--";
	}


   $msg = strip_tags ($msg);

    E-mail de remerciement et de copie du message envoyé
   $dsubject = "Copie de votre message";  // Objet du message
   $dmailheaders = "From: <".$recipient.">\n";
   $dmailheaders .= "Reply-To: <".$recipient.">\n";
   $dmsg  = "Vous allez recevoir un e-mail très prochainement pour le règlement du chèque cadeau. Cordialement.\n\n";
   $dmsg .= "Résumé : \n" .
  "-------------------------------------------------------------------------\n\n";
   $dmsg .= "Prénom du Bénéficiaire : " . $name . "\n";
 $dmsg .= "Montant du chèque cadeau : " . $montant . "\n";

   $dmsg .= "E-Mail : " . $email . "\n";
   $dmsg .= "Origine ou Internet : " . $herkunft . "\n";
   $dmsg .= "\nObjet : " . $betreff . "\n";
   $dmsg .= "Message :\n" . $nachricht . "\n\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);

Texte de remerciement quand l'E-Mail a été envoyé
header ("location: contact.php");
exit;

// Texte quand l'email est envoyé
//print "<b><font color=#FF0000>Merci bien</b>. <font color=#008000>le message nous a été transmis avec succès.<br /> Nous vous //répondrons dans les meilleurs délais.</font></b>";
 
}
}
}
?>
<?php 
if ($fehler) {
}
   
?>





Depuis l'ajout de la variabe montant, cela ne fonctionne plus, en effet il est signalé qu'il y a un champ manquant

ViPHP
ViPHP | 2577 Messages

17 avr. 2012, 16:12

Est ce que ton problème correspond à l'affichage du message :
"<font color=#cc3333>S'il vous plaît, indiquez le montant du <strong>chèque cadeau</strong>.<br /></font>"

Dans ce cas il faudrait commencer par mettre un var_dump($_POST) en début de script pour voir ce qui est transmis par le formulaire et var_dump($montant) avant le if qui affiche le message.

Ca permettrai d'avoir une première idée :
- faute de frappe dans le formulaire (mauvais nom)
- input en dehors du formulaire

Eléphanteau du PHP | 22 Messages

23 avr. 2012, 11:29

Excusez-moi pour la réponse tardive, j'étais dans l'impossibilité de vous répondre avant.

Voici un lien pour éclaircir d'avantage la situation:

http://www.shilton.fr/cheque-cadeau-shilton.php

Cordialement.