Formulaire - Problème avec le champ textarea [Résolu/Fermé]

Signaler
Messages postés
2695
Date d'inscription
jeudi 11 mars 2004
Statut
Contributeur
Dernière intervention
12 octobre 2012
-
faboons
Messages postés
262
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
26 octobre 2019
-
Bonjour,


J'ai un problème qui me fait m'arracher les cheveux depuis hier. Cela concerne un formulaire avec des vérifications en jscript et php.



Tout d'abord voici le code html:



<form name="message" action="submit.php" method="post" id="formulaire">

<div class="champsaisie">

        <div class="champ">
            <div class="label">
                <label for="name">Nom du contact</label>
            </div>
            
            <div class="field">
                <input type="text" name="name" id="name" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="email">eMail</label>
            </div>
            
            <div class="field">
                <input type="text" name="email" id="email" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="tel">Téléphone</label>
            </div>
            
            <div class="field">
                <input type="text" name="tel" id="tel" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="message"><br/>Description<br/>de votre projet</label>
            </div>
            
<textarea name="message" id="message" style="background-image:url(img/box_bg2.png); font-family:Britannic Bold,Century Gothic,Myriad Pro,Arial,Helvetica,sans-serif; color:#666666; font-size:16px; padding:4px 5px; width:350px; height:100px;" />
</textarea>
</div>
</div>

<div class="bouton">
<input type="submit" name="submit" id="submit" value="Envoyer" />
    </div> 

</form>




Le fichier php appellé, "submit.php se présente sous la forme suivante:


$sender_name = $_POST[name];
$sender_email = $_POST[email];
$telephone = $_POST[tel];
$contenu = $_POST[message];

$msg = "Nom du contact:\t$sender_name\n";
$msg .= "E-Mail du contact:\t$sender_email\n";
$msg .= "Message:\t$contenu\n\n";
$msg .= "Téléphone:\t$telephone\n\n";

$desti = "monmail@monmail.fr";
$sujet = "Titre du message";


[...]


et plus loin la commande pour envoyer le mail:

mail($desti, $sujet, $msg);






Les contrôles php sont de la forme suivante:



$errors = array();

if(!$_POST['name'] || strlen($_POST['name'])<3 || strlen($_POST['name'])>50)
{
	$errors['name']='Veuillez renseigner un nom valide. (Plus de 3 caractères)';
}

[...]



par exemple pour le nom à renseigner






Mon problème est que le champ textarea n'est pas pris en compte visiblement par la méthode POST: si je change le champ <textarea name="message" [...] ></textarea> en champ de texte classique du style <input type="text" name="message" [...] >, tout se passe à merveille et le mail est envoyé.

Dès lors que je modifie celà avec un champ textarea, le champ de texte n'est pas pris en compte et le mail ne parvient pas à l'adresse de destination.


Je n'ai peut être pas été assez clair, mais je ne coprend vraiment pas pourquoi le champ textarea n'est pas pris en compte alors que son nom est le bon.


Merci d'avance pour votre aide.





1 réponse

Messages postés
767
Date d'inscription
mercredi 5 août 2009
Statut
Membre
Dernière intervention
7 août 2014
224
Salut voila ta baise d'ouverture du textaree

<textarea name="message" id="message" style="background-image:url(img/box_bg2.png); font-family:Britannic Bold,Century Gothic,Myriad Pro,Arial,Helvetica,sans-serif; color:#666666; font-size:16px; padding:4px 5px; width:350px; height:100px;" />


Elle se termine par "/>" ce qui signifie que tu fermes la balise (en gros). Supprime le "/" et essai.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 87031 internautes nous ont dit merci ce mois-ci

faboons
Messages postés
262
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
26 octobre 2019
47
ET modifie ça dans ta fonction mail() :

     $headers = 'From: tonemail@tonFAI.com' . "\r\n" .
     'Reply-To: tonemail@tonFAI.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

mail($desti, $sujet, $msg, $headers);


C'est toujours plus propre.
faboons
Messages postés
262
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
26 octobre 2019
47
Voilà là ça marche, je en comprenais pas en fait ça marche avec Jquery :

LE CODE HTML :

<html>
<head>
</head>
<body>

<div id="carbonform">
<form name="message" action="submit.php" method="post"  id="signupForm">

<div class="champsaisie">

        <div class="champ">
            <div class="label">
                <label for="name">Nom du contact</label>
            </div>
            
            <div class="field">
                <input type="text" name="name" id="name" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="email">eMail</label>
            </div>
            
            <div class="field">
                <input type="text" name="email" id="email" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="tel">Téléphone</label>
            </div>
            
            <div class="field">
                <input type="text" name="tel" id="tel" />
            </div>
        </div>
        
        <div class="champ">
            <div class="label">
                <label for="message"><br/>Description<br/>de votre projet</label>
            </div>

       <div class="field">           
<textarea type="text" id="message" style="background-image:url(img/box_bg2.png); font-family:Britannic Bold,Century Gothic,Myriad Pro,Arial,Helvetica,sans-serif; color:#666666; font-size:16px; padding:4px 5px; width:350px; height:100px;" >
</textarea>
</div>
</div>
</div>

<div class="bouton">
<input type="submit" name="submit" id="submit" value="Envoyer" />
    </div> 


</form>
</div>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="verif.js"></script>
</body>
</html>


Le fichier submit :

<?php

error_reporting(E_ALL^E_NOTICE);


$redirectURL = 'lapageoutuveuxrediriger';

$sender_name = $_POST[name];
$sender_email = $_POST[email];
$telephone = $_POST[tel];
$contenu = $_POST[message];

$msg = "Nom du contact:\t$sender_name\n";
$msg .= "E-Mail du contact:\t$sender_email\n";
$msg .= "Message:\t$contenu\n\n";
$msg .= "Téléphone:\t$telephone\n\n";

$desti = "email@tonfai.com";
$sujet = "formulaire";



$errors = array();


if(!$_POST['name'] || strlen($_POST['name'])<3 || strlen($_POST['name'])>50)
{
    $errors['name']='Veuillez entrer votre nom';
}

if(!$_POST['email'] || !preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $_POST['email']))
{
    $errors['email']='Veuillez entrer votre email';
}

if(!$_POST['tel'] || !preg_match('/([0-9]{9,9})/', $_POST['tel']))
{
    $errors['tel']='Veuillez entrer votre téléphone';
}

if(!$_POST['message'] || strlen($_POST['message'])<20)
{
    $errors['message']='Veuillez entrer votre message';
}

if($_POST['fromAjax'])
{
    if(count($errors))
    {
        $errString = array();
        foreach($errors as $k=>$v)
        {

            $errString[]='"'.$k.'":"'.$v.'"';
        }
        

        die    ('{"status":0,'.join(',',$errString).'}');
    }


}     $headers = 'From: tonemail@tonFAI.com' . "\r\n" .
     'Reply-To: tonemail@tonFAI.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

mail($desti, $sujet, $msg, $headers);

    echo '{"status":1,"redirectURL":"'.$redirectURL.'"}';

    exit;

if(count($errors))
{
    echo '<h2>'.join('<br /><br />',$errors).'</h2>';
    exit;
}

header("Location: ".$redirectURL);
?>



LE JAVASCRIPT (dans mon exemple il s'appelle verif.js:

$(document).ready(function(){
    // $(document).ready() is executed after the page DOM id loaded
    
    
    // Binding an listener to the submit event on the form:
    $('#signupForm').submit(function(e){
 
        // If a previous submit is in progress:
        if($('#submit').hasClass('active')) return false;
        
        // Adding the active class to the button. Will show the preloader gif:
        $('#submit').addClass('active');
        
        // Removing the current error tooltips
        $('.errorTip').remove();
        
        // Issuing a POST ajax request to submit.php (the action attribute of the form):
        $.post($('#signupForm').attr('action'),$('#signupForm').serialize()+'&fromAjax=1',function(response){
            
            if(!response.status)
            {
                // Some kind of input error occured
                
                // Looping through all the input text boxes,
                // and checking whether they produced an error
                $('input[type!=submit]').each(function(){
                    var elem = $(this);
                    var id = elem.attr('id');
                    
                    if(response[id])
                        showTooltip(elem,response[id]);
                });
            }
            
            else location.replace(response.redirectURL);
        
            
            $('#submit').removeClass('active');
        },'json');
        
        e.preventDefault();
    });
    
    $(window).resize();
});
 
// Centering the form vertically on every window resize:
$(window).resize(function(){
    var cf = $('#carbonForm');
    
    $('#carbonForm').css('margin-top',($(window).height()-cf.outerHeight())/2)
});
 
// Helper function that creates an error tooltip:
function showTooltip(elem,txt)
{
    // elem is the text box, txt is the error text
    $('<div class="errorTip">').html(txt).appendTo(elem.closest('.champ'));
    
}


Tous ces fichiers doivent être au même niveau.
Tu dois changer ton email et l'URL de redirection.

@ pluche.
Fab.
faboons
Messages postés
262
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
26 octobre 2019
47
Oups erreur :

textarea name="message" id="message" style="background-image:url(img/box_bg2.png); font-family:Britannic Bold,Century Gothic,Myriad Pro,Arial,Helvetica,sans-serif; color:#666666; font-size:16px; padding:4px 5px; width:350px; height:100px;" >
</textarea>


Voilà là c'est bon !
Shakadelavierge
Messages postés
2695
Date d'inscription
jeudi 11 mars 2004
Statut
Contributeur
Dernière intervention
12 octobre 2012
127
Ça marche nickel,

je vais étudier tout ça pour me perfectionner, merci mille fois Fab !
faboons
Messages postés
262
Date d'inscription
mardi 12 février 2008
Statut
Membre
Dernière intervention
26 octobre 2019
47
De rien chevalier !