problème formulaire / mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème formulaire / mail

Re: problème formulaire / mail

par moogli » 25 mai 2011, 14:03

bref je pense que de toute façon personne ne veut m'aidez.
En fait, ici on aide a obtenir un résultat, on ne fait pas tout.

en cherchant un peu sur les forum on trouve plein de chose comme par exemple post357373.html#p357373 avec un code fonctionnel :)


@+

Re: problème formulaire / mail

par marjo » 25 mai 2011, 13:57

parce que là les mots "syntaxe des variables" c'est du chinois pour moi.
Sans vouloir t'offenser le souci c'est que cette notion en programmation c'est comme la notion de respirer ou de marcher...
Voilà pourquoi nos commentaires peuvent paraître assez cru, on sent fondamentalement que tu n'y connais rien au langage (en programmation en général) et que tu n'as aucunement l'intention de t'investir, tout ce qui t'intéresse est d'obtenir un code qui fonctionne et ce même si tu ne sais pas ce qu'il fait.
heu... tu ne sait pas de quoi tu parle là ! bien sûre que si que je veut m'investir mais je le répète pas en PHP ! là je me concentre sur le html et CSS. seulement comme je voulait un bon formulaire une grande aide pour un unique formulaire n'aurais tué personne je pense.... bref je pense que de toute façon personne ne veut m'aidez.

Re: problème formulaire / mail

par xTG » 24 mai 2011, 17:57

parce que là les mots "syntaxe des variables" c'est du chinois pour moi.
Sans vouloir t'offenser le souci c'est que cette notion en programmation c'est comme la notion de respirer ou de marcher...
Voilà pourquoi nos commentaires peuvent paraître assez cru, on sent fondamentalement que tu n'y connais rien au langage (en programmation en général) et que tu n'as aucunement l'intention de t'investir, tout ce qui t'intéresse est d'obtenir un code qui fonctionne et ce même si tu ne sais pas ce qu'il fait.

Re: problème formulaire / mail

par Invité » 24 mai 2011, 16:29

salut,

Si tu souhaite que l'on te fasse le code, ce n'est pas le bon forum, il y en a un pour les demandes de code tout cuit.

ce que tu souhaite faire est assez simple, le dernier code fournit montre que tu ne respecte même pas la syntaxe des variables, ce qui fait que ton code ne risque pas de fonctionner.

@+
le dernier code fournit est un copier coller d'un code trouvé sur le net tout comme celui ci :
est-il bon ? car il ne fonctionne pas chez moi.
et puis même si on me donne pas le code "tout cuit" comme tu dit, la moindre des choses serait de me dire "la c'est pas bon parce que .... tu devrais essayer ça : ...."

parce que là les mots "syntaxe des variables" c'est du chinois pour moi.

jenn',
n'ont pas de solution pour le moment.
 
<?php
/* Si le formulaire est envoyé alors on fait les traitements */
if (isset($_POST['envoye']))
{
    /* Récupération des valeurs des champs du formulaire */
    if (get_magic_quotes_gpc())
    {
      $civilite		= stripslashes(trim($_POST['civilite']));
      $nom	     	= stripslashes(trim($_POST['nom']));
      $expediteur	= stripslashes(trim($_POST['email']));
      $sujet		= stripslashes(trim($_POST['sujet']));
      $message		= stripslashes(trim($_POST['message']));
    }
    else
    {
      $civilite		= trim($_POST['civilite']);
      $nom		    = trim($_POST['nom']);
      $expediteur	= trim($_POST['email']);
      $sujet		= trim($_POST['sujet']);
      $message		= trim($_POST['message']);
    }
    
    /* Expression régulière permettant de vérifier si le 
    * format d'une adresse e-mail est correct */
    $regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    
    /* Expression régulière permettant de vérifier qu'aucun 
    * en-tête n'est inséré dans nos champs */
    $regex_head = '/[\n\r]/';
    
    /* Si le formulaire n'est pas posté de notre site on renvoie 
    * vers la page d'accueil */
    if($_SERVER['HTTP_REFERER'] != 'http://www.marjorie.laforest.voila.net/traitement.php')
    {
      header('Location: http://marjorie.laforest.voila.net/');
    }
    /* On vérifie que tous les champs sont remplis */
    elseif (empty($civilite) 
           || empty($nom) 
           || empty($expediteur) 
           || empty($sujet) 
           || empty($message))
    {
      $alert = 'Tous les champs doivent être renseignés';
    }
    /* On vérifie que le format de l'e-mail est correct */
    elseif (!preg_match($regex_mail, $expediteur))
    {
      $alert = 'L\'adresse '.$expediteur.' n\'est pas valide';
    }
    /* On vérifie qu'il n'y a aucun header dans les champs */
    elseif (preg_match($regex_head, $expediteur) 
            || preg_match($regex_head, $nom) 
            || preg_match($regex_head, $sujet))
    {
        $alert = 'En-têtes interdites dans les champs du formulaire';
    }
    /* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
    elseif (!isset($_COOKIE['sent']))
    {
        /* Destinataire (votre adresse e-mail) */
        $to = '[email protected]';
      
        /* Construction du message */
        $msg  = 'Bonjour,'."\r\n\r\n";
        $msg .= 'Ce mail a été envoyé depuis marjorie.laforest.voila.net par '.$civilite.' '.$nom."\r\n\r\n";
        $msg .= 'Voici le message qui vous est adressé :'."\r\n";
        $msg .= '***************************'."\r\n";
        $msg .= $message."\r\n";
        $msg .= '***************************'."\r\n";
        
        /* En-têtes de l'e-mail */
        $headers = 'From: '.$nom.' <'.$expediteur.'>'."\r\n\r\n";
        
        /* Envoi de l'e-mail */
        if (mail($to, $sujet, $msg, $headers))
        {
            $alert = 'E-mail envoyé avec succès';
            
            /* On créé un cookie de courte durée (ici 120 secondes) pour éviter de 
            * renvoyer un mail en rafraichissant la page */
            setcookie("sent", "1", time() + 120);
            
            /* On détruit la variable $_POST */
            unset($_POST);
        }
        else
        {
            $alert = 'Erreur d\'envoi de l\'e-mail';
        }
          
    }
    /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
    else
    {
        unset($_POST);
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<head>
    <title>Contactez moi</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
 
<?php
if (!empty($alert))
{
    echo '<p style="color:red">'.$alert.'</p>';
}
?>
 
<form action="index.php" method="post">
    <p>
        <label for="civilite">Civilite :</label>
        <select id="civilite" name="civilite">
            <option 
                value="mr"
                <?php 
                    if (!isset($_POST['civilite']) || $_POST['civilite'] == 'mr')
                    {
                        echo ' selected="selected"';
                    }
                ?>
            >
                Monsieur
            </option>
            <option 
                value="mme"
                <?php 
                    if (isset($_POST['civilite']) && $_POST['civilite'] == 'mme')
                    {
                        echo ' selected="selected"';
                    }
                ?>
            >
                Madame
            </option>
            <option 
                value="mlle"
                <?php 
                    if (isset($_POST['civilite']) && $_POST['civilite'] == 'mlle')
                    {
                        echo ' selected="selected"';
                    }
                ?>
            >
                Mademoiselle
            </option>
        </select>
    </p>
    <p>
        <label for="nom">Nom/Prenom :</label>
        <input type="text" id="nom" name="nom" 
        	value="<?php echo (isset($_POST['nom'])) ? $nom : '' ?>" 
        />
    </p>
    <p>
        <label for="email">E-mail :</label>
        <input type="text" id="email" name="email" 
        	value="<?php echo (isset($_POST['email'])) ? $expediteur : '' ?>"
        />
    </p>
    <p>
        <label for="sujet">Sujet :</label>
        <input type="text" id="sujet" name="sujet" 
        	value="<?php echo (isset($_POST['sujet'])) ? $sujet : '' ?>"
        />
    </p>
    <p>
        <label for="message">Message :</label>
        <textarea id="message" name="message" cols="40" rows="4">
			<?php echo (isset($_POST['message'])) ? $message : '' ?>
        </textarea>
    </p>
    <p>
        <input type="submit" name="envoye" value="Envoyer" />
    </p>
</form>
 
</body>
</html>

Re: problème formulaire / mail

par Jenn » 24 mai 2011, 10:47

Je suis dans le même cas que toi, as-tu trouvé une solution ? merci

Re: problème formulaire / mail

par moogli » 24 mai 2011, 00:03

salut,

Si tu souhaite que l'on te fasse le code, ce n'est pas le bon forum, il y en a un pour les demandes de code tout cuit.

ce que tu souhaite faire est assez simple, le dernier code fournit montre que tu ne respecte même pas la syntaxe des variables, ce qui fait que ton code ne risque pas de fonctionner.

@+

Re: problème formulaire / mail

par marjo » 23 mai 2011, 13:31

j'ai pour hebergeur voila.net
peut-être qu'il ne prennent pas en charge le php ? je ne sais pas ...
voici mon site pour que vous puissiez voir http://marjorie.laforest.voila.net/

Re: problème formulaire / mail

par marjo » 23 mai 2011, 13:30

heu... j'ai rien pondue j'ai juste recopier ce qui avait dans le tuto.
je n'ai pas le temps d'apprendre le php à vrai dire je doit finir mon site demain ou mercredi au plus tard
je voudrais juste qu'on me donne le bon code. merci d'avance ;)

Re: problème formulaire / mail

par xTG » 23 mai 2011, 12:59

Quand je vois le code que tu nous ponds...
J'ai qu'un site qui me vient à l'esprit pour t'aider : http://phpdebutant.org/article118.php (lire tous les articles)

Re: problème formulaire / mail

par marjo » 23 mai 2011, 12:56

SKW33D,

merci pour le tuto,
j'ai essayer mais hélas ça ne marche pas. peut tu me dire si je me suis trompé dans le code ? c'est possible car je ne voyait pas très bien les signes utilisé sur la vidéo, l'image est un peu flou malheureusement
<?php

if(isset($_POST) && isset($_POST['civilite']) && isset($_POST['nom'] && isset($_POST['prenom'] && isset($_POST['mail'] && isset($_POST['message'])) {
	extract ($_POST);
	if (!empty(&civilite) && !empty(&nom) && !empty(&prenom) && !empty(&mail) !empty(&message)) {
		$message=str_replace("\'",'","'",$message);
		$destinataire="[email protected]";
		$sujet="Formulaire de contact";
		$msg="Un nouveau message est arrivé \n
		Civilite : $civilite \n
		Nom : $nom \n
		Prenom : $prenom \n
		Mail : $mail \n
		Message : $message";
		$entete="From: $nom $prenom \n Reply-to: $mail";
		mail($destinataire, $sujet, $msg, $entete);
		echo "Le mail a bien été envoyé."
    }
    else{
    	 echo "Vous n'avez pas rempli tout les champs";
    }
}
?>

Re: problème formulaire / mail

par Skw33d » 22 mai 2011, 20:08

Tiens un petit tutoriel que j'ai suivi quand j'ai commencé à faire du PHP :

http://www.grafikart.fr/tutoriels/formulaire-php-21

Tout y est expliqué pour faire ce que tu recherches.

Re: problème formulaire / mail

par xTG » 22 mai 2011, 20:07

Je parlais d'essayer ceci :
$h  = "From: $TO\r\n";

Re: problème formulaire / mail

par marjorie laforest » 22 mai 2011, 13:05

Un formulaire en mailto rappatrie bien les données du formulaire dans le mail.
Mais cela ne permet pas de faire de mise en forme.

Essayes de rajouter un \r\n à la fin de ta variable d'header du mail.
Et enlèves le header("Location pour voir s'il n'y a pas d'erreur PHP.
Puis testes le retour de la fonction mail() pour vérifier que l'email est bien transmis à ton serveur SMTP.

merci mais je n'ai pas compris ce que tu entend par le "r"
mais en faite pour je ne veut pas que la boite mail "outlook" s'ouvre je veut juste que lorsque le visiteur clique sur "soumettre" ça s'envoie directement à mon mail.

merci de me noter le php exacte que je devrais avoir car je n'y connais rien en php.
merci d'avance.
marjo

Re: problème formulaire / mail

par xTG » 22 mai 2011, 10:08

Un formulaire en mailto rappatrie bien les données du formulaire dans le mail.
Mais cela ne permet pas de faire de mise en forme.

Essayes de rajouter un \r\n à la fin de ta variable d'header du mail.
Et enlèves le header("Location pour voir s'il n'y a pas d'erreur PHP.
Puis testes le retour de la fonction mail() pour vérifier que l'email est bien transmis à ton serveur SMTP.

Re: problème formulaire / mail

par marjo » 21 mai 2011, 19:46

Re !
je viens d'essayer ton système avec "mailto"
ce n'est pas ça que je veut moi je veut que les champs de mon formulaire : "M., Mme, Melle" / "nom" / "prenom" / "mail" / "message"
et lorsqu'on clique sur "soumettre" je veut que le tout soit envoyé sur mon mail.

car le mailto ne fait que ouvrir une boîte de mail genre "outlook" et ne rapporte pas les donné du formulaire.

merci pour votre réponse ;)