Connexion formulaire a la base de donné [Résolu/Fermé]

Signaler
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017
-
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017
-
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

1 réponse

Messages postés
29558
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 779
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.....
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

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
Messages postés
29558
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 779
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 !
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

Je viens de remplacer tous les "prénom" par "prenom" et ca ne fonctionne toujours pas
Messages postés
53
Date d'inscription
vendredi 24 juillet 2015
Statut
Membre
Dernière intervention
8 août 2017

Ca y est j'ai résolu mon problème.