8791 sujets

Développement web côté serveur, CMS

Bonjour,

Voilà j'ai créer un formulaire de contact le système de soustraction/addition



J'ai rajouté un champ Societe mais lorsque je teste le formulaire et que je reçois les données dans ma boîte mail il y a une ptite erreur .



C'est-à-dire que le contenu de mon message se répète dans le corps du mail que je reçois voir lien ci-dessous

erreur

J'ai fait le test chez mon FAI pour la version du php et c'est Version 4.4.6 ....

J'ai fait également le test avec un autre site et la version PHP Version 5.0.5 et ben là j'ai pas de problèmes...

Donc ma questionau final c'est comment puis-je faire pour ne pas avoir cette répétion de mon champ message ?

Y-a-t'il une astuce pour lui dire que c'est une version 4.46...

Merci d'avance
Voilà le code de ma page contact.php


<?php 
include_once("antispam.php");
?>

<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "test@test.ch";
// Rajout alphega: Dans cette ligne remplacer example.com par le nom de votre site. Utile si vous avez plusieurs formulaires.
$titre_cache = "Contact ";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
        $etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
		if (isset($_POST["societe"])) {
				$_POST["societe"]=trim(stripslashes($_POST["societe"]));
		}
        if (isset($_POST["email_expediteur"])) {
                 $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
        }
        if (isset($_POST["titre"])) {
                 $_POST["titre"]=trim(stripslashes($_POST["titre"]));
        }
        if (isset($_POST["message"])) {
                 $_POST["message"]=trim(stripslashes($_POST["message"]));
        }
        // --- test de la validité des champs saisis ---
        if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
                 $erreur="Saisissez votre adresse email...";
        }
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
                 $erreur="Votre adresse e-mail n'est pas valide...";
        }
        elseif (empty($_POST["message"])) {
// le message est vide
                 $erreur="Saisissez un message...";
        }
		elseif (antispam_check() == false) {
// l'addition est fausse
                 $erreur="Résultat incorrect, veuillez réessayer !";
        }
        else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
                 $etat="ok";
        }
}
else {
// --- le formulaire n'a pas été soumis ---
           $etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Alphacos SA | Fabrique de machines de conditionnement pour l'industrie pharmaceutique | Courroux - Contacts</title>
<meta http-equiv="imagetoolbar" content="no"/>
<link href="../alpha.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
 </div>
<div id="menu_haut">
	<div id="haut_gauche">
		<ul>
		    <li><a href="../index.html">Accueil</a> - </li>
			<li><a href="entrepri.htm">Profil</a> - </li>
			<li><a href="produits.htm">Produits</a> - </li>
			<li><a href="foirexpo.htm">Actualités</a> - </li>
			<li ><a href="compresse.htm"> Communiqués de presse</a> - </li>
			<li class="actif"><a href="#">Contacts</a></li>
		</ul>
	</div>
	<div id="langue">
		<ul>
		<li class="drap"><a href="../es/index.html"><img src="../images/drapes.jpg" alt="Espa&ntilde;ol"/></a></li>
		<li class="drap"><a href="../en/index.html"><img src="../images/drapen.jpg" alt="English"/></a></li>
		<li class="drap"><a href="../de/index.html"><img src="../images/drapde.jpg" alt="Deutsch"/></a></li>
		<li class="drap"><a href="../index.html"><img src="../images/drapfr.jpg" alt="Fran&ccedil;ais" /></a></li>
		</ul>
	</div>
</div>
<div id="main">
	<div id="gauche">
		<h4>Sommaire</h4>
		<ul>
	      <li><a href="acces.htm">Plan d'accès</a></li>
		</ul>
		<br /><br /><br />
    <p>Alphacos SA<br />
      Rue de la Source 1<br />
      Case postale 108<br />
      2822 Courroux<br />
      Tél. + 41 (0) 32 421 45 10<br />
      Fax + 41 (0) 32 421 45 15<br />
      e-mail: <a href="mailto:contact@alphacos.ch">contact@alphacos.ch</a> </p>
		
	</div>
	
  <div id="contenu"> 
    <h1><img src="../images/flechr.gif" width="18" height="8" />Contacts</h1>
		
    <p> Pour obtenir de plus amples renseignements, n'h&eacute;sitez pas &agrave; 
      nous contacter &agrave; cette adresse ou &agrave; remplir le formulaire 
      ci-dessous : </p>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
         if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
                         echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
         }
?>
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
	
   	<p><label for="societe">Votre societe (facultatif):</label><br />
	<input type="text" size="40" name="societe" id="societe" value="<?php
	if (!empty($_POST["societe"])) {
	// le titre du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["societe"],ENT_QUOTES);
	}
	?>" />
	</p>
		<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
        <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
        if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p><label for="titre">Titre de message (facultatif):</label><br />
        <input type="text" size="40" name="titre" id="titre" value="<?php
        if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
                echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p><label for="message">Message (obligatoire):</label><br />
        <textarea name="message" id="message" cols="40" rows="5"><?php
        if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
                echo htmlspecialchars($_POST["message"],ENT_QUOTES);
        }
        ?></textarea>
        </p>
<p>Résultat du calcul:</p>
		<?php antispam_ins(); ?>
        <p><input type="submit" name="envoyer" value="Envoyer" />
			<input type="reset" value="Effacer"/>
        </p>
        </form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
        $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
        $entete .= "MIME-Version: 1.0";
		$entete .= "Return-Path: ". $email_webmaster . "\n";		
	    $message.= "Societe : ".$_POST["societe"]."\n";	
		$message.= "Message : ";		
        if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$message.$_POST["message"],$entete)){

// mail envoyé
                echo "Votre message a été envoyé.<br />\n";
                echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
        }
        else {
// erreur lors de l'envoi du mail
                echo "Un problème s'est produit lors de l'envoi du message.\n";
                echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
        }
}
?>
</div>
</div>
<div id="footer">© Alphacos SA 2001-2007</div>
</body>
</html>


Le problème c'est que je reçois un mail comme ça:
(c'est que le contenu de mon texte area est répété sur ma première ligne.

Mon messageSociete : Test
Message : Mon message

alors que je devrais le recevoir comme ça

Societe : Test
Message : Mon message
Modifié par rizoul (22 Jun 2007 - 16:20)
Salut Smiley cligne ,

remplaces :
$message.= "Societe : ".$_POST["societe"]."\n";	
$message.= "Message : ";		
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$message.$_POST["message"],$entete)){
par
$message= "Societe : ".$_POST["societe"]."\n";	
$message.= "Message : ".$_POST["message"];		
if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$message,$entete)){


A+
Modifié par Heyoan (22 Jun 2007 - 16:29)
Et je devrais corriger comment alors ?

Car sur un site qui a php 5.0.5 je reçois le mail nickel...
Mais malheureusement sur le notre qui en php 4.4.6 j'ai ce problème Smiley confus
Oui je viens de le voir...

Je suis très content j'ai testé et ça marche grace à toi Heyoan....

Merci beaucoup pour ton aide Smiley ravi
Encore une chose,

J'ai créer mon formulaire avec pas mal de champs mais je trouve la page trop longue:

Voir ci-contrehttp://www.alphacos.ch/crypt2/contact.php

Est-il possible de resserer le champs ou une autre manière:

Voilà mon code

<?php 
include_once("antispam.php");
?>

<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "thomas.martinoli@alphacos.ch";
// Rajout alphega: Dans cette ligne remplacer example.com par le nom de votre site. Utile si vous avez plusieurs formulaires.
$titre_cache = "Contact Alphacos ";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
        $etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
		if (isset($_POST["societe"])) {
				$_POST["societe"]=trim(stripslashes($_POST["societe"]));
		}
		if (isset($_POST["nom"])) {
				$_POST["nom"]=trim(stripslashes($_POST["nom"]));
		}
		if (isset($_POST["prenom"])) {
				$_POST["prenom"]=trim(stripslashes($_POST["prenom"]));
		}
		if (isset($_POST["telephone"])) {
				$_POST["telephone"]=trim(stripslashes($_POST["telephone"]));
		}
		if (isset($_POST["fax"])) {
				$_POST["fax"]=trim(stripslashes($_POST["fax"]));
		}
        if (isset($_POST["email_expediteur"])) {
                 $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
        }
        if (isset($_POST["titre"])) {
                 $_POST["titre"]=trim(stripslashes($_POST["titre"]));
        }
        if (isset($_POST["message"])) {
                 $_POST["message"]=trim(stripslashes($_POST["message"]));
        }
        // --- test de la validité des champs saisis ---
        if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
                 $erreur="Saisissez votre adresse email...";
        }
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
                 $erreur="Votre adresse e-mail n'est pas valide...";
        }
        elseif (empty($_POST["message"])) {
// le message est vide
                 $erreur="Saisissez un message...";
        }
		elseif (antispam_check() == false) {
// l'addition est fausse
                 $erreur="Résultat incorrect, veuillez réessayer !";
        }
        else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
                 $etat="ok";
        }
}
else {
// --- le formulaire n'a pas été soumis ---
           $etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Alphacos SA | Fabrique de machines de conditionnement pour l'industrie pharmaceutique | Courroux - Contacts</title>
<meta http-equiv="imagetoolbar" content="no"/>
<link href="../alpha.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
 </div>
<div id="menu_haut">
	<div id="haut_gauche">
		<ul>
		    <li><a href="../index.html">Accueil</a> - </li>
			<li><a href="entrepri.htm">Profil</a> - </li>
			<li><a href="produits.htm">Produits</a> - </li>
			<li><a href="foirexpo.htm">Actualités</a> - </li>
			<li ><a href="compresse.htm"> Communiqués de presse</a> - </li>
			<li class="actif"><a href="#">Contacts</a></li>
		</ul>
	</div>
	<div id="langue">
		<ul>
		<li class="drap"><a href="../es/index.html"><img src="../images/drapes.jpg" alt="Espa&ntilde;ol"/></a></li>
		<li class="drap"><a href="../en/index.html"><img src="../images/drapen.jpg" alt="English"/></a></li>
		<li class="drap"><a href="../de/index.html"><img src="../images/drapde.jpg" alt="Deutsch"/></a></li>
		<li class="drap"><a href="../index.html"><img src="../images/drapfr.jpg" alt="Fran&ccedil;ais" /></a></li>
		</ul>
	</div>
</div>
<div id="main">
	<div id="gauche">
		<h4>Sommaire</h4>
		<ul>
	      <li><a href="acces.htm">Plan d'accès</a></li>
		</ul>
		<br /><br /><br />
    <p>Alphacos SA<br />
      Rue de la Source 1<br />
      Case postale 108<br />
      2822 Courroux<br />
      Tél. + 41 (0) 32 421 45 10<br />
      Fax + 41 (0) 32 421 45 15<br />
      e-mail: <a href="mailto:contact@alphacos.ch">contact@alphacos.ch</a> </p>
		
	</div>
	
  <div id="contenu"> 
    <h1><img src="../images/flechr.gif" width="18" height="8" />Contacts</h1>
		
    <p> Pour obtenir de plus amples renseignements, n'h&eacute;sitez pas &agrave; 
      nous contacter &agrave; cette adresse ou &agrave; remplir le formulaire 
      ci-dessous : </p>
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
         if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
                         echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
         }
?>
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
	
   	<p><label for="societe">Votre societe (facultatif):</label><br />
	<input type="text" size="40" name="societe" id="societe" value="<?php
	if (!empty($_POST["societe"])) {
	// le titre du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["societe"],ENT_QUOTES);
	}
	?>" />
		<p><label for="nom">Nom (facultatif):</label><br />
	<input type="text" size="40" name="nom" id="nom" value="<?php
	if (!empty($_POST["nom"])) {
	// le nom du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["nom"],ENT_QUOTES);
	}
	?>" />
		<p><label for="prenom">Prénom (facultatif):</label><br />
	<input type="text" size="40" name="prenom" id="prenom" value="<?php
	if (!empty($_POST["prenom"])) {
	// le prénom du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["prenom"],ENT_QUOTES);
	}
	?>" />
		<p><label for="telephone">Téléphone (facultatif):</label><br />
	<input type="text" size="40" name="telephone" id="telephone" value="<?php
	if (!empty($_POST["telephone"])) {
	// le telephone du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["telephone"],ENT_QUOTES);
	}
	?>" />
		<p><label for="fax">Fax (facultatif):</label><br />
	<input type="text" size="40" name="fax" id="fax" value="<?php
	if (!empty($_POST["fax"])) {
	// le fax du message a été saisi: le réafficher
	echo htmlspecialchars($_POST["fax"],ENT_QUOTES);
	}
	?>" />
	</p>
		<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
        <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
        if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
                echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
        }
        ?>" />
        </p>
        <p><label for="titre">Titre de message (facultatif):</label><br />
        <input type="text" size="40" name="titre" id="titre" value="<?php
        if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
                echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
        }
        ?>" />
        <br />
        <p><label for="message">Votre message (obligatoire):</label><br />
        <textarea name="message" id="message" cols="40" rows="5"><?php
        if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
                echo htmlspecialchars($_POST["message"],ENT_QUOTES);
        }
        ?></textarea>
        </p>
      <p>Résultat du calcul (pour &eacute;viter le spam):<br />
        Pour les résultats négatifs ex: -3 et non - 3</p>
		<?php antispam_ins(); ?>
        <p><input type="submit" name="envoyer" value="Envoyer" />
			<input type="reset" value="Effacer"/>
        </p>
        </form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
        $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
        $entete .= "MIME-Version: 1.0";
		$entete .= "Return-Path: ". $email_webmaster . "\n";		
	    $message= "Societe : ".$_POST["societe"]."\n";
		$message .= "Nom : ".$_POST["nom"]."\n";
		$message .= "Prénom : ".$_POST["prenom"]."\n";	
		$message .= "Téléphone : ".$_POST["telephone"]."\n";	
		$message .= "Fax : ".$_POST["fax"]."\n";	
		$message .= "Message : ".$_POST["message"];		
		if (@mail($email_webmaster,$titre_cache." / ".$_POST["titre"],$message,$entete)){
		

// mail envoyé
                echo "Votre message a été envoyé.<br />\n";
                echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
        }
        else {
// erreur lors de l'envoi du mail
                echo "Un problème s'est produit lors de l'envoi du message.\n";
                echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
        }
}
?>
</div>
</div>
<div id="footer">© Alphacos SA 2001-2007</div>
</body>
</html>

Modifié par rizoul (25 Jun 2007 - 16:14)
rizoul a écrit :
Est-il possible de resserer le champs ou une autre manière:
Et bien ça me semble déjà bien optimisé Smiley langue .

Pourquoi veux-tu faire un code moins long ? Si c'est pour accélérer le traitement, celui-ci sera quasiment instantané Smiley cligne
Et bien le tableau est une bonne idée puisque c'est comme ça que ton premier lien est mis en page Smiley ravi . Du coup tu n'as plus qu'à copier le code...

Cela dit c'est également possible en CSS...

A+
rizoul a écrit :
Donc comme ce lien de Patidou cela serait le mieux
(...)


Non ça cétait le sujet général, pour la réponse il faut aller voir plus précisément ici.

Le posteur du sujet n'a pas encore eu le temps de mettre son formulaire à jour. Smiley cligne
Modifié par Patidou (26 Jun 2007 - 14:23)
Ah ok mais il n'y aurait pas un exemple de formulaire.php avec fichier css pour que je puisse adapter mon formuaire. Afin d'éviter de le faire en tableau puis en css après coup Smiley langue
Cedric a écrit :
ça en fait des lignes pour envoyer un mail ...


C'est le formulaire + la gestion de l'envoi + l'antispam. Je ne trouve que ça soit énorme.
Smiley cligne

P.S. : c'est un formulaire destiné au départ à dotclear mais je ne crois que ça doit très dur à modifier.
Juste encore une chose pour tester que dans le champ téléphone et fax on introduit pas du texte comment fait-on ça ? Merci à vous Smiley confused
rizoul a écrit :
Juste encore une chose pour tester que dans le champ téléphone et fax on introduit pas du texte comment fait-on ça ? Merci à vous Smiley confused


Attention, la façon d'écrire les numéros de téléphone diffère suivant les pays, il ne vaut mieux pas faire ce genre de test. A mon avis, c'est mieux de laisser comme ça, c'est à l'utilisateur à faire attention, ou alors l'autoriser à prévisualiser le résultat avant envoi définitif.