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 -
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
ET VOICI MON CODE PHP
COORDIALEMENT
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
-
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> -
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-
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 !!!
-