Je n'arrive pas a inserer les donnees de mon formulaire

Résolu
chibozor10 Messages postés 3 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je n' arrive pas a inserer les donnees de mon formulaire dans ma base de donnees

<form class="contact-box" action="connection.php" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label>Nom*</label>
<input type="text" class="form-control" name="nom">
</div>

<div class="form-group">
<label>Adresse Email*</label>
<input type="text" class="form-control" name="adresse">
</div>

<div class="form-group">
<label>Message*</label>
<input type="text" class="form-control" name="message">
</div>

<div class="row">
<div class="col-md-12">
<a href="connection.php" class="btnbtn-default">Envoyer</a>
</div>
</div>
</form>


ET VOICI MON CODE PHP

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=monsite', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<?php

if(empty($_POST['nom']) ||empty($_POST['adresse']) ){
 ?><SCRIPT LANGUAGE="JAVASCRIPT">alert("Vous devez remplir les champs svp!"); </SCRIPT><?php
  echo '<meta http-equiv="refresh" content="0; URL=index.php">';//redirection
}else
{ $requete=$bdd->query("INSERT INTO visiteur(nom,adresse,message) VALUES('$_POST[’nom’]','$_POST[’adresse’]','$_POST[’message’]') ");
  $reponse=mysql_query($requete) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
  // on ferme la connexion à la base
mysql_close();
      ?>
  <SCRIPT LANGUAGE="JAVASCRIPT">alert(" Demande prise en compte!");</SCRIPT><?php
  echo '<meta http-equiv="refresh" content="0; URL=index.php">';
  
   }

  ?>


COORDIALEMENT

2 réponses

  1. midbird77 Messages postés 10 Statut Membre 1
     
    Bonjour,

    Je pense que ton bouton est mauvais essaye avec sa :

    <div class="row">
    <div class="col-md-12">
    <input type="submit" class="btnbtn-default" name="envoyer" value="Envoyer">
    </div>
    </div>
    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Commence par récupérer PROPREMENT les variables AVANT de les utiliser.
    Puis penses à utiliser les requetes préparées pour éviter les injections sql
    et également à utiliser des bloc TRY/Catch pour intercepter les éventuelles erreurs dans le code.

    
    //récupération "propre" des variables
    $nom = isset($_POST[’nom’]) ? $_POST[’nom’] : '';
    $addr = isset($_POST[’adresse’]) ? $_POST[’adresse’] : '';
    $msg = isset($_POST[’message’]) ? $_POST[’message’] : '';
    
    
    //Utilisation des variables :
    $sql = ("INSERT INTO visiteur(nom,adresse,message) VALUES(:nom,:addr,:msg) ";
    $datas = array(':nom'=>$nom, ':addr'=>$addr ,':msg'=>$msg);
    
    try{
      $prepare =$bdd->prepare($sql);
      $prepare->execute($datas);
    }catch(Exception $e){
      echo "Erreur !  " .$e->getMessage();
    }
    


    NB: Pour activer l'affichage des erreurs PDO, il faut ajouter l'option lors de la connexion.
    par exemple :
    
    <?php
    $host = 'localhost';
    $user = 'root';
    $pwd  = '';
    $dbname  = 'monsite';
    $charset = ";charset=UTF8"; //si tu veux avoir de l'utf8
     try{
       $pdo = new PDO("mysql:host=".$host.";dbname=".$dbname.$charset.",".$user.",".$pwd);
       $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    } 
    


    Cordialement, 
    Jordane                                                                 
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Sans oublier que....
      Attention.... tu as utilisé DEUX technos différentes .... PDO d'un côté... et du "vieux" mysql d'un autre....
      { $requete=$bdd->query("INSERT INTO visiteur(nom,adresse,message) VALUES('$_POST[’nom’]','$_POST[’adresse’]','$_POST[’message’]') ");
        $reponse=mysql_query($requete) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
        // on ferme la connexion à la base
      mysql_close();
      

      .....

      ON NE MELANGE PAS !!!
      0