Je n'arrive pas a inserer les donnees de mon formulaire [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
lundi 23 novembre 2015
Statut
Membre
Dernière intervention
11 novembre 2016
-
Messages postés
31076
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 janvier 2021
-
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

Messages postés
9
Date d'inscription
lundi 26 mai 2014
Statut
Membre
Dernière intervention
16 juin 2016
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>
Messages postés
31076
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 janvier 2021
3 187
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                                                                 
Messages postés
31076
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 janvier 2021
3 187
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 !!!