Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2011, 16h16   #1
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Par défaut Formulaire de contact sans recharger la page

Bonjour,
J'ai un formulaire de contact qui fonctionne très bien :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!-- formulaire HTML -->
<form onsubmit="return validateFormOnSubmit(this)" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<ul>
    <li>
        <label for="pseudo">Nom</label>
        <input type="text" name="pseudo" id="pseudo" />
    </li>
    <li>
        <label for="email">Email</label>
        <input type="text" name="email" id="email" />
    </li>
    <li>
        <label for="objet">Objet</label>
        <input type="text" name="objet" id="objet" />
    </li>
    <li>
        <label for="message">Message</label>
        <textarea name="message" id="message"  cols="" rows="10"></textarea>
    </li>
    <li style="text-align:center">
        <button type="submit" id="envoyer" name="envoyer" value="Envoyer">Envoyer</button>
    </li>
</ul>
</form>
<!-- // formulaire HTML -->
 
<?php
if (isset($_POST['envoyer'])) // Si le formulaire a été soumis
{
  // On sécurise les données avant de les récupérer */
  $pseudo = htmlentities(stripslashes($_POST['pseudo'])); // pseudo
  $email = htmlentities(stripslashes($_POST['email'])); // email
  $objet = htmlentities(stripslashes($_POST['objet'])); // objet
  $message = htmlentities(stripslashes($_POST['message'])); // message
// Formattage du mail à envoyer avec la syntaxe Heredoc dans $html
$html = <<<EOD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
 
<head>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
  *{margin:0;padding:0}
  body{background:#f2f2f2}
  #wrapper{-moz-border-radius:10px;background:#fff;border:1px solid #9c9c9c;margin:10px auto;padding:10px;position:relative;width:500px}
</style>
 
</head>
 
<body>
<div id="wrapper">
<p style="background-color:#424242;color:#fff;margin:0 0 15px;padding:0">
  Pseudo : {$pseudo} 
  Objet : {$objet} 
  De : {$email}
 
 
{$message}
</div>
<p style="text-align:center">
Ce message vous a été envoyé depuis monsite
 
</body>
 
</html>
EOD;
  $destEmail = "mail@mail.fr"; // Email du destinataire
 
  $entete  = 'MIME-Version: 1.0' . "\r\n"; // Format de données standard MIME
  $entete .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // Message au format HTML encodé en utf-8
  $entete .= 'From: Prenom Nom <expediteur@example.com>' . "\r\n"; // Personnalisation de l'expéditeur
 
  if ( @mail($destEmail,$objet,$html,$entete) ) // Si le mail a bien été envoyé
  {
    echo "
<p style=\"text-align:center;font-weight:700;color:green\">Votre message a bien été envoyé !
 
 
";
  }
  else  // Sinon erreur d'envoi
  {
    echo "
<p style=\"text-align:center;font-weight:700;color:red\">Un problème s'est produit lors de l'envoi du message.\n";
    echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>
 
\n";
  }
}
?>
Je voudrais par contre que lorsqu'on clique sur "envoyer" la page ne se recharge pas car sur des page du style index.php?id=5 cela me renvoie à la page index.php

Merci de votre aide !
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h53   #2
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Comment répondre, tu utilises de l' heredoc je crois que cela reste un peut
compliqué a maitriser! Je n'en vois aucune utilitée ici.

Bref pour ton FORM c'est toi qui lui impose ce retour en figeant ACTION non

Va voir http://www.php.net/manual/fr/languag...syntax.heredoc
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h56   #3
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Merci de votre réponse.
En faites j'ai trouvé ce bout de code sur un site donc je m'en servais car il fonctionne bien.
Par contre sur le faite que ACTION soit figé je ne comprend pas très bien même avec la doc ce que je dois changer.
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 16h58   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Citation:
Je voudrais par contre que lorsqu'on clique sur "envoyer" la page ne se recharge pas car sur des page du style index.php?id=5 cela me renvoie à la page index.php
Tu ne peux pas faire ça uniquement en PHP. L'envoi d'un formulaire change nécéssairement la page à moins d'utiliser du JavaScript et de l'Ajax.

Je te suggère donc d'aller poser ta question sur le forum JavaScript.

Pour ce qui est de PHP je marque en résolu car c'est effectivement impossible à résoudre.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h25.


 
 
 
 
Partenaires

Hébergement Web