Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 08/05/2007, 13h28   #1
Invité de passage
 
Inscription : juin 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 24
Points : 4
Points : 4
Par défaut [SQL] Envoi d'un formulaire/mail après traitement avec sql

Bonjour à tous,

J'ai pratiquement terminé un site.
Dans celui-ci je désire ajouter un formulaire qui me permettrait de traiter mes données avec une base en sql et parallèlement de les recevoir dans ma boite mail.
Toute la partie sql est écrite et fonctionne correctement.
C'est la fonction "mail" qui me pose problème :
- je ne sais pas où l'insérer dans ma page de traitement.
- je ne sais pas non plus exactement comment l'écrire, en fonction de mes variables.
Mon niveau en php me permet de bidouiller un petit peu, mais là ça devient trop compliqué pour moi. Je complique mon code, et rien ne fonctionne.
Je pense y avoir passé trop de temps et ne plus voir même les choses les plus évidentes.
Voici le code de ma page de traitement, sans la partie "mail". L'un d'entre vous saurez me dire où je dois l'insérer et m'orienter dans sa rédaction, svp?
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
 
<?php
  /* tableau de légende des champs */
  $labels = array ( "prenom" => "Prénom: ",
  		"nom" => "Nom: ",
                         "mail" => "Mail: ",
                         "secteur" => "Secteur d'activité: ",
		"ville" => "Ville: ",
		"renseignements" => "Renseignements: ");
 
/* regarde les champs reçus */
  foreach($_POST as $field => $value)
  {
    /* Charche les champs vides */
    if( $value == "" )
    {
      $blank_array[] = $field;
    }
	/* Teste le format des champs */
    elseif( ereg("(nom)",$field) )  
    {
      if(!ereg("^[A-Za-z' -]{1,50}$",$value) )
      {
          $bad_format[] = $field;
      }
    }
    elseif($field == "mail")
    {
      if(!ereg("^.+@.+\.fr$",$value) )
      {
          $bad_format[] = $field;
      }
    }
  } // Fin de foreach sur $_POST
  /* Si problème, afficher un message et revenir au formulaire */
  if(@sizeof($blank_array) > 0 or @sizeof($bad_format) > 0)
  {
    if(@sizeof($blank_array) > 0)
    {
        /* Information manquante */
        echo "<b>Un champ au moins est vide. Vous devez le remplir :</b><br>";
        /* Liste des données manquantes*/
        foreach($blank_array as $value)
        {
           echo "&nbsp;&nbsp;&nbsp;{$labels[$value]}<br>";
        }
    }
    if(@sizeof($bad_format) > 0)
    {
        /* Informations incorrectes */
        echo "<b>Un champ au moins contient une information incorrecte. Veuillez la corrigez:</b><br>";
        /* Liste des champs incorrects */
        foreach($bad_format as $value)
        {
           echo "&nbsp;&nbsp;&nbsp;{$labels[$value]}<br>";
        }
    }
    /* réaffichage du formulaire */
    echo "<p><hr />";
    echo "<h3>Remplissez le formulaire de demande de renseignement</h3>";
    echo "<form action='traitement.php' method='POST'>
          <table>";
    foreach($labels as $field => $label)
    {
      $good_data[$field]=strip_tags(trim($_POST[$field]));
      echo "<tr>
             <td style='text-align: right; font-weight: bold'>
	  	        $label</td>
             <td><input type='text' name='$field' size='65'
                 maxlength='65' value='$good_data[$field]'></td>
            </tr>";
    }
    echo "<tr>
           <td colspan='2' style='text-align: center'>
              <input type='submit' value='Envoyer le formulaire'>";
    echo "</td></tr></table>
          </form>";
    exit();
  }
  else   //Si les données sont OK. Envoyer le formulaire et se connecter à la base
  {
    $user="user";
    $host="localhost";
    $password="password";
    $database="nom_base";
    $cxn = mysqli_connect($host,$user,$password,$database)
           or die ("connexion au serveur impossible");
	//Vérifier le format du champ "mail"
    $fields_all = array_keys($labels);
    foreach($fields_all as $field)
    {
      $good_data[$field] = strip_tags(trim($_POST[$field]));
    }
	//Inserer les données du formulaire dans la table "entreprise"	   
    $query = "INSERT INTO entreprise (prenom,nom,mail,secteur,ville,renseignements) 
              VALUES ('$good_data[prenom]','$good_data[nom]','$good_data[mail]','$good_data[secteur]','$good_data[ville]','$good_data[renseignements]')";
    //message d'erreur, si l'envoi du formulaire se passe mal
	$result = mysqli_query($cxn,$query)
              or die ("L'envoi du formulaire a échoué");
 
	//Message si l'envoi du formulaire se passe bien		  
    echo "<h4>Votre demande a bien été envoyé. Nous vous remercions.</h4>";
  }
?>
</body></html>
Merci d'avance
chamoix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 15h45   #2
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Il te suffirait de balancer ta fonction mail ici :
Code php :
1
2
3
4
5
6
7
8
9
10
 
    //message d'erreur, si l'envoi du formulaire se passe mal
	$result = mysqli_query($cxn,$query)
              or die ("L'envoi du formulaire a échoué");
 
Place ici ta fonction mail....
 
	//Message si l'envoi du formulaire se passe bien		  
    echo "<h4>Votre demande a bien été envoyé. Nous vous remercions.</h4>";
  }
et si tu ne sais pas faire par ici
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 16h15   #3
Invité de passage
 
Inscription : juin 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 24
Points : 4
Points : 4
Super ,

Bon je reçois le mail dans ma boite.
Il me reste à bricoler un poil la fonction, car pour le moment elle fait des trucs pas vraiment dans le manuel, mais l'essentiel y est.
C'est mieux que tous ce que j'avais réussi à faire jusqu'a présent.

merci encore
Et le bonjour d'une Niçoise à un Niçois...
chamoix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 16h25   #4
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Il y a beaucoup plus simple que cette usine à gaz :
http://phpmailer.sourceforge.net

Permet de tout faire...
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 19h17   #5
Invité de passage
 
Inscription : juin 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 24
Points : 4
Points : 4
Bon c'est la fète, mon usine à gaz fonctionne.
J'incrèmente la base et un mail est envoyé dans la boite de mon choix.
Il me reste juste une petite demande en ce qui concerne la mise en forme du mail.
Comment je fais pour insérer un saut de ligne aprés chaque variable, stp ?
Code :
1
2
 
$message = "$prenom,$nom,$secteur,$ville,$renseignements";
J'ai regardé le lien, c'est bien, mais je m'y mettrais plus tard car je dois mettre le site en ligne ce soir.
je vais donc me contenter d'une solution imparfaite mais qui fonctionne. Plus tard je ferais des modifs.

Merci
chamoix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 19h36   #6
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Alors il faut mettre des \n :

Code :
1
2
 
$message = $prenom."\n".$nom."\n".$secteur."\n".$ville."\n".$renseignements;
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 19h46   #7
Invité de passage
 
Inscription : juin 2003
Messages : 24
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 24
Points : 4
Points : 4
Super,

C'est beau, et ça fonctionne...

Merci beaucoup
chamoix 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 10h56.


 
 
 
 
Partenaires

Hébergement Web