Transférer les champs d'un formulaire dans une base de donnée [Fermé]

Signaler
Messages postés
11
Date d'inscription
dimanche 5 juin 2016
Statut
Membre
Dernière intervention
28 novembre 2016
-
Messages postés
11
Date d'inscription
dimanche 5 juin 2016
Statut
Membre
Dernière intervention
28 novembre 2016
-
Bonjour,
J'aimerai transférer les informations d'un formulaire dans une ma table :"formulaire" dans une base de donné. Ma table est constitué de 4 rangé :

Ma table :"formulaire"
Nom                 Type                      Interclassement

id int(11)
nom varchar(255) utf8_unicode_ci
email varchar(255) utf8_unicode_ci
message text utf8_unicode_ci

-----------------------------------------------------------------------------------------------

Le code du formulaire qui se trouve dans index.php :

-----------------------------------------------------------------------------------------------
<section>
    <form method="post" action="traitement.php">
 <div class="row 50%">
     <div class="6u 12u(mobile)">
  <input type="text" name="name" id="contact-name" placeholder="Prénom" />
     </div>
     <div class="6u 12u(mobile)">
  <input type="text" name="email" id="contact-email" placeholder="Email" />
     </div>
 </div>
 <div class="row 50%">
     <div class="12u">
  <textarea name="message" id="contact-message" placeholder="Présente toi juste ici !  (Age, pseudo, jeux auquel tu joue etc..)" rows="4"></textarea>
      </div>
         </div>
  <div class="row">
  <div class="12u">
       <ul class="actions">
             <li><input type="submit" class="style1" value="Envoyé" /></li>
             <li><input type="reset" class="style2" value="Recommencer" /></li>
       </ul>
   </div>
     </div>
     </form>
</section>


-----------------------------------------------------------------------------------------------

J'aimerai donc pouvoir consulter les résultats que le visiteurs rentre et les avoir directement dans ma base de donnée j'ai prévu un fichier :"traitement.php" pour accueillir le code de traitement des donnés.
Voilà donc deux jour que j'essaye tout les code possible et imaginable, en vint. Je me tourne donc vers vous.
Merci de votre aide.

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
30360
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
3 032
Bonjour,


j'ai prévu un fichier :"traitement.php" pour accueillir le code de traitement des donnés.
[...] Voilà donc deux jour que j'essaye tout les code possible et imaginable

Et bien... montre les nous.
Sur quoi bloques tu ?

- Tu arrives à récupérer tes variables dans ton fichier traitement.php ? (fais donc un
print_r($_POST);
pour voir )

- Tu as pu te connecter à ta bdd ? Avec quoi ? Mysqli ? Pdo ?? (si tu n'as pas encore choisi.. je te conseille PDO )

- Tu sais faire une requête de type INSERT ?



Messages postés
11
Date d'inscription
dimanche 5 juin 2016
Statut
Membre
Dernière intervention
28 novembre 2016

A vrai dire tout, j'ai regarder sur un site un tutoriel qui apprenez à traiter les donné d'un formulaire, j'ai copier le code sources et tenter de changer les différent "paramètre" sauf que quand je remplissez mon formulaire en ligne un message d'erreur apparaissaient.

Comment ça ?

Oui avec PhpMyAdmin

Non pas du tout, je ne connait pratiquement rien en PHP, si ce n'est rien.

Merci de votre aide,
Messages postés
30360
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2020
3 032
Oui avec PhpMyAdmin

La question était : as tu pu connecter ton code PHP avec ta BDD;.. pas si tu avais pu y accéder toi même via phpmyadmin......

Non pas du tout, je ne connait pratiquement rien en PHP, si ce n'est rien.

La bonne réponse (ou attitude devrais-je dire) aurait été :
<<Ah. il me parle de requête INSERT ... si je ne connais pas... je regarde sur le net... et ....hooo..miracle... y'a plein d'exemples.....>>

Bref...
Voici un code qui devrait fonctionner :

<?php
//affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors','on');

//Connexion à la BDD (l'dieal serait de placer le code de connexion à la BDD dans un fichier à part)
// puis d'en faire un INCLUDE là où tu en as besoin.
$bddName = "nom_de_ta_bdd";
$user = "root";
$pwd = "";
try{
  $bdd = new PDO('mysql:host=localhost;dbname='.$bddName.';charset=utf8', $user, $pwd);
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
   echo  'Erreur : ' . $e->getMessage();
   exit();
}



//Recuperadion "propre" des variables
$name = isset($_POST['name']) ? $_POST['name'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : '';
$message = isset($_POST['message']) ? $_POST['message'] : '';


//Preparation de la requete
 $sql = 'INSERT INTO tatable (name,email,message) VALUES(:name,:email,:message)';
 $datas = array(":name"=>$name , ":email"=>$email , ":message"=>$message);
 if($name){ 
  try{
   $req = $bdd->prepare($sql);
   $req->execute($datas);
  }catch(Exception $a){
    //en cas d'erreur dans la requete
    echo "<br>Erreur ! ".$e->getMessage();
	echo " <br>Requete : " . $sql;
	echo "Variables : <pre>";
	print_r($datas);
	echo "</pre>";
	exit();
  }  
}else{
  echo "<br>Le champ 'name' n'est pas renseigné";
}
  
?>


Ce code fonctionne à condition que tu modifies les valeurs de connexion à la BDD et un peu la requête d'insertion.

NB: Une requête ... ce n'est pas du PHP ..mais du SQL (le langage qui sert à manipuler les bases de données )
INSERT INTO tatable (name,email,message) VALUES(:name,:email,:message)

(ici tu devras modifier le nom de "tatable" )


NB² :
sauf que quand je remplissez mon formulaire en ligne un message d'erreur apparaissaient.

A l'avenir.. montre nous le code en question et dis nous exactement quel est le message d'erreur.
Je ne prendrais pas toujours le temps de t'écrire un code complet (et ce n'est pas mon rôle.... )

Messages postés
11
Date d'inscription
dimanche 5 juin 2016
Statut
Membre
Dernière intervention
28 novembre 2016

Bonsoir,
Je tenait vraiment à vous remercier, en i repensant c'est vrai que mon message n'était pas très claire j'en suis d'ailleurs désoler. Je tacherait d'i faire attention la prochaine fois.
Merci encore, bonne soirée.
Messages postés
11
Date d'inscription
dimanche 5 juin 2016
Statut
Membre
Dernière intervention
28 novembre 2016

Dernière petite questions,
Faut il que je mette l'include a un endroit précis dans le code de :"index.php" ou ece que je peut le mettre " n'importe ou " c'est a dire juste après le formulaire ?