Connexion formulaire a la base de donné

Résolu
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je viens de créé mon formulaire (mais comme je suis debutant en php il doit y avoir plein de fautes), j'ai 2 problème, le premier étant que quand je complete pas tous le champs il n'y a pas le message d'erreur qui s'affiche comme quoi tous le champs doivent être remplis, et le deuxième problème est que aucune donné n'arrive sur ma base de donné.

Voici le code de ma page de formulaire
<?php
//--------------------------------------//
// Pour afficher les erreurs PHP
//--------------------------------------//
error_reporting(E_ALL);

//--------------------------------------//
//On importe la connexion à la BDD
//--------------------------------------//
require_once 'bddform.php';

//--------------------------------------//
//Récupération "propre" des variables
// AVANT de les utiliser :
//--------------------------------------//
$prénom = !empty($_POST['prénom']) ? htmlspecialchars($_POST['prénom']) : NULL ;
$nom = !empty($_POST['nom']) ? htmlspecialchars($_POST['nom']) : NULL ;
$avis = !empty($_POST['avis']) ? htmlspecialchars($_POST['avis']) : NULL ;



//--------------------------------------//
// Traitement du submit :
//--------------------------------------//
if(isset($_POST['form'])) {

if( $prénom && $nom && $avis ){

$pseudolenght = strlen($pseudo);


$sql = "INSERT INTO users (prénom,nom,avis)
VALUES (:prénom,:nom,:avis)";

$params = array(":prénom"=>$prénom,":nom"=>$nom,":avis"=>$avis);

$prepare = $bdd->prepare($sql);
$prepare->execute($params);
header('Location: connexion.php');



}else
{
$erreur = "Tous les champs doivent être complétés ";
}
}
//--------------------------------------//
?>













<html>

<head>
<title>Formulaire</title>
<link rel="stylesheet" href="styleform.css" />
</head>
<body><center>
<div>
<h2>Votre avis nous intéresse</h2>
<br /><br />
<form method="POST" action="">

<table>
<tr>
<td>
<label for="Prénom">Prénom :</label>
</td>
<td>
<input type="text"
placeholder="Votre prénom" id="prénom" name="prénom" value="<?php if(isset($prénom)) {echo $prénom;} ?> "/>
</td>
</tr>
</table>

<table>
<tr>
<td>
<label for="Nom">Nom :</label>
</td>
<td>
<input type="text"
placeholder="Votre nom" id="nom" name="nom" value="<?php if(isset($nom)) {echo $nom;} ?> "/>
</td>
</tr>
</table>

<table>
<tr>
<td>
<label for="avis">Votre avis :</label>
</td>


<td>

<input type="text"
<textarea placeholder="Votre avis" id="avis" name="avis" value="<?php if(isset($nom)) {echo $avis;} ?> "/>
</td>
</textarea>
</tr>
</table>


<tr>
<td></td>
<td>
<br />
<input type="submit" name="Envoyer" value="Envoyer" />
</td>
</tr>
</table>
</form>



</form>
<?php
if(isset($erreur))
{
echo $erreur;
}

?>
</div>
</body></center>
</html>






et voici la page nommé "bddform" qui est censé me connecter a ma base de donné


<?php
//---------------------------------------------------------------------//
//Connexion à la BDD
// (A mettre dans un fichier à part nommé par exemple : cnxBDD.php)
//---------------------------------------------------------------------//

$host = "localhost";
$dbname = "formulaire";
$user = "root";
$pwd = "root";

try{
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING);
$bdd = new PDO("mysql:host=".$host.";dbname=".$dbname.";charset=utf8", $user, $pwd ,$options);
}catch (Exception $e){
echo '<br>Erreur : ' . $e->getMessage();
exit();
}




Merci
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
commence par retirer les caractères accentués de tes noms de variable ainsi que des attributs NAME et ID de tes éléments html.....
0
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse mais je suis débutant en php et j'aurais besoin que tu me dise exactement quoi faire et à quelle endroit en te basant sur mon code

Merci d'avance
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
j'aurais besoin que tu me dise exactement quoi faire et à quelle endroit en te basant sur mon code

Tu sais ce que veux dire << Retirer les accents >> ?
==> Cela veut dire par exemple ... changer un "é" en "e"
Tu sais ce qu'est une variable ?
==> En php .. elles commencent par le signe $.... comme par exemple : $prenom ( sans accent donc ! )

Ensuite.. pour les ATTRIBUTS name et id des éléments html ...
Tu prends par exemple cette ligne de ton code :
<input type="text"
	    placeholder="Votre prénom"
             id="prénom"
             name="prénom"
             value="<?php if(isset($prénom)) {echo $prénom;} ?> "/>


... Tu peux voir .. qu'elle contient des choses nommées : ID .. et NAME ..... ce sont les ATTRIBUTS (du même nom..)
Et donc ... tu y retire les caractères accentués .....
C'est à dire .. tu écris prénom ... sans le "é" .. donc ...... "prenom"

NB: Comme tu auras également changé le nom de tes variables PHP .. il faudra donc aussi les changer partout dans ton code (là où tu les utilises....) .. cela vaudra donc aussi sur le ligne de code de ton input ..puisque tu as utilisé $prénom dans l'attribut VALUE ..... il faudra donc mettre $prenom sans accents !
0
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de remplacer tous les "prénom" par "prenom" et ca ne fonctionne toujours pas
0
dannezri Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
 
Ca y est j'ai résolu mon problème.
0