Connexion formulaire a la base de donné

Résolu/Fermé
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017 - 5 août 2015 à 21:26
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017 - 7 août 2015 à 10:23
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
5 août 2015 à 21:53
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 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
6 août 2015 à 10:14
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 août 2015 à 12:03
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 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
7 août 2015 à 10:20
Je viens de remplacer tous les "prénom" par "prenom" et ca ne fonctionne toujours pas
0
dannezri Messages postés 53 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 8 août 2017
7 août 2015 à 10:23
Ca y est j'ai résolu mon problème.
0