8797 sujets

Développement web côté serveur, CMS

Bonjour.

Voilà, je suis en train de faire un formulaire et j'ai quelques petits soucis (l'ordre de saisie est nom, courriel, adresse de la personne et un grand espace texte):

1 - Dans la 3e saisie, il y a un espace qui se crée avant d'entrer le texte, mais que je peux effacer avant d'écrire. Qu'est-ce qui cause cela et comment je fais pour l'enlever?

2 - Dans Safari, il y a de petites ligne en diagonale qui apparaissent dans le coin à droite des champs textarea. Est-ce possible de les effacer(lorsque j'enlève le cadre du champ, elles restent quand même là)?

3 - Le message qu'on reçoit pour dire que le message a bel et bien été transmis provient de "Expéditeur inconnu". Comment faire pour lui mettre un intitulé?

Merci de votre aide.
Hello,

1. Tu utilises un textarea, et cette balise est pré-remplie avec le contenu texte présent entre ses deux marqueurs.

Ici des espaces :
<textarea name="son_adresse" id="son_adresse" cols="60" rows="1">		</textarea>
Qu'il te suffit de supprimer :
<textarea name="son_adresse" id="son_adresse" cols="60" rows="1"></textarea>

2. Cela permet à ton utilisateur de redimensionner la taille du textarea à son convenance, c'est plutôt sympa. Si tu souhaites limiter (voir supprimer) cette possibilité tourne toi vers CSS avec min/max-width et min/max-height ; voir directement vers resize.

3. C’est un problème côté serveur je pense, impossible de t’aider sans voir le code associé à cette partie.

Je te conseille également avant tout de lire (ou relire) les conseils d’utilisation des formulaires sur OpenWeb, tu y trouveras de quoi améliorer grandement ton code.

Bon courage ! Smiley smile
Merci pour ton aide, mais je crois que tu ne comprends pas ce que je voulais dire en parlant de l'espace en trop.

À la 3e case, lorsqu'on entre du texte, celui-ci est décalé d'environ 2 cm par rapport au côté gauche, tandis que pour toutes les autres boîtes, le texte est collé à gauche

Pour les lignes en diagonale dans le coin à droite, il faut absolument que l'espace reste le même et le client n'étirera pas cette case. J'ai testé comme tu le vois min-height et min-widht et ça ne change rien.

Désolé pour le code, j'oublie toujours de le mettre quand c'est du php.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans titre</title>
<style type="text/css">
<!--
textarea {
	min-height:200px;
	min-width:400px;
}
-->
</style>
</head>

<body>

		<?php
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    $etat = "erreur"; // On initialise notre état à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon, il reste à erreur

    // On récupère les champs du formulaire, et on arrange leur mise en forme
    if (isset($_POST["son_pseudo"])) $_POST["son_pseudo"]=trim(stripslashes($_POST["son_pseudo"])); // trim()  enlève les espaces en début et fin de chaine

    if (isset($_POST["son_courriel"])) $_POST["son_courriel"]=trim(stripslashes($_POST["son_courriel"])); // stripslashes()  retire les backslashes ==> \' devient '

	if (isset($_POST["son_adresse"])) $_POST["son_adresse"]=trim(stripslashes($_POST["son_adresse"])); // stripslashes()  retire les backslashes ==> \' devient '

    if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));

    // Après la mise en forme, on vérifie la validité des champs
    if (empty($_POST["son_pseudo"])) { // L'utilisateur n'a pas rempli le champ pseudo
        $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
        }
        elseif (empty($_POST["son_courriel"])) { // L'utilisateur n'a pas rempli le champ email
            $erreur="Nous avons besoin de votre courriel pour vous r&eacute;pondre...";
        }
        elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_courriel"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
            $erreur="Votre adresse courriel n'est pas valide...";
        }
			
        elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
            $erreur="Merci de saisir un message...";
        }
        else { // Si tous les champs sont valides, on change l'état à ok
            $etat="ok";
        }
}
else { // Sinon le formulaire n'a pas été soumis
    $etat="attente"; // On passe donc dans l'état attente
}

if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
        echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
    }
?>

<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
    <p style="text-align:left">
        <label for="son_pseudo"></label>
        <br /> <!-- Intitulé du champ pseudo -->
        <input type="text" size="40" name="son_pseudo" id="son_pseudo" value="<?php
        if (!empty($_POST["son_pseudo"])) {
        // le pseudo de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_pseudo"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
        }
        ?>" />

         <br />

        <label for="son_courriel"></label>
        <br /> <!-- Intitulé du champ courriel -->
        <input type="text" size="40" name="son_courriel" id="son_courriel" value="<?php
        if (!empty($_POST["son_courriel"])) {
        // le courriel de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_courriel"],ENT_QUOTES);
        }
        ?>" />
        <br />


        <label for="son_adresse"></label>
        <br /> <!-- Intitulé du champ adresse -->
        <textarea name="son_adresse" id="son_adresse" cols="60" rows="1"><?php
        if (isset($_POST["son_adresse"])) {
        // le message a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_adresse"],ENT_QUOTES);
        }
        ?>
		</textarea>
        <br />


        <label for="son_message"></label>
        <br /> <!-- Intitulé du champ message -->
        <textarea name="son_message" id="son_message" cols="60" rows="25"><?php
        if (isset($_POST["son_message"])) {
        // le message a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
        }
        ?>
</textarea>

        <br />

        <input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />
    </p>
</form>
<!-- FIN du formulaire HTML -->

<?php
}
else { // Sinon l'état est ok donc on envoie le mail
    $son_pseudo = $_POST["son_pseudo"]; // On stocke les variables récupérées du formulaire
    $son_courriel = $_POST["son_courriel"];
    $son_url = $_POST["son_url"];
    $son_adresse = $_POST["son_adresse"];
    $son_message = $_POST["son_message"];

    $mon_email = "lavoiro@videotron.ca"; // Mise en forme du message que vous recevrez
    $mon_pseudo = "W Y N A N D &nbsp; R U T T E N &nbsp; D E S I G N";
    $mon_url = "index.html";
    $msg_pour_moi = "- Son nom : $son_pseudo \n
    - Son courriel : $son_courriel \n
	- Son adresse : $son_adresse \n
    - Message : \n $son_message \n\n";

    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $son_pseudo,\n
    Votre message nous a bien été envoyé et nous vous répondrons le plus rapidement possible.\n\n
    - Votre courriel : $son_courriel \n
	- Votre adresse : $son_adresse \n
    - Votre message : \n $son_message \n\n
    Merci et à bientôt sur  http://academiedapprentissage.com  !";

    // Envoie du mail
    $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
    $entete .= "MIME-Version: 1.0";
	

    if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_courriel,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
        echo "<p style=\"text-align:center\">Votre message a &eacute;t&eacute; envoy&eacute;, vous recevrez une confirmation par courriel.<br /><br />\n"; // On affiche un message de confirmation
        
    }
    else { // Sinon il y a eu une erreur lors de l'envoi
        echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
        echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a></p>\n"; // On propose un lien de retour vers le formulaire
    }
}
?> 
</body>
</html>
Salut,

vincent ta donnée la solution me semble.
regarde bien entre le ?> et le </textarea> que vois-tu?

pascal