Formulaire d'inscription php
RésoluBonjour, j'aurai besoin d'aide pour un formulaire d'inscription en php (j'utilise laragon pour ma base de donnée), mon programme semble marcher mais rien ne s'affiche dans ma base de donner quand je submit mes infos.
Voici mon code index.php :
<form method="POST" action="connexion.php">
<input type="text" name="prenom" placeholder="Prenom">
<input type="text" name="nom" placeholder="Nom">
<input type="text" name="telephone" placeholder="Numéro de téléphone">
<input type="email" name="email" placeholder="Adresse mail">
<input type="password" name="password" placeholder="Mot de passe">
<input type="submit" name="create" value="S'inscrire">
</form>
<?php
include("header.php");
if (isset($_POST['create'])) {
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$telephone = $_POST['telephone'];
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "INSERT INTO user (prenom, nom, telephone, email, password)
VALUES ('$prenom', '$nom', '$telephone', '$email', '$password')";
$stmt = $pdo->exec($sql);
}
?>
Voici mon code header.php :
<?php
$bdd = 'mysql:host=localhost;dbname=ycocovoit;port=3306';
try {
$pdo = new PDO($bdd, 'root' , '');
}
catch (PDOException $exception) {
//mail('***@***', 'Echec connexion bdd', $exception->getMessage());
exit('Erreur de connexion à la base de données');
}
?>
Windows / Chrome 108.0.0.0
1 réponse
-
Modérateur
Bonjour,
Commence par appliquer ce qui est marqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
-
J'ai fait ce qui était marqué mais il n'y a toujours aucune erreur qui s'affiche
INDEX.PHP <form method="POST" action="connexion.php"> <input type="text" name="prenom" placeholder="Prenom"> <input type="text" name="nom" placeholder="Nom"> <input type="tel" name="telephone" placeholder="Numéro de téléphone"> <input type="email" name="email" placeholder="Adresse mail"> <input type="password" name="password" placeholder="Mot de passe"> <input type="submit" name="create" value="S'inscrire"> </form> <?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); include("header.php"); if (isset($_POST['create'])) { $prenom = $_POST['prenom']; $nom = $_POST['nom']; $telephone = $_POST['telephone']; $email = $_POST['email']; $password = $_POST['password']; $sql = "INSERT INTO user (prenom, nom, telephone, email, password) VALUES ('$prenom', '$nom', '$telephone', '$email', '$password')"; try{ $stmt = $pdo->exec($sql); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> HEADER.PHP <?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); $bdd = 'mysql:host=localhost;dbname=ycocovoit;port=3306'; try { $pdo = new PDO($bdd, 'root' , ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?> -
-
Modérateur@Hitojaa
Oui.
si ton code php se trouve dans le même fichier que celui de ton formulaire, il ne faut pas mettre de "chemin".
Il faut le laisser vide.
PS:
par contre, regarde bien l'exemple qui se trouve dans le lien.
Il utilise les variables nommées et les requête préparées.
Cela t'évitera de nombreux problèmes et assure une certaine protection contre les risque de "piratage" via les injections sql.
PS²: pense à mettre le sujet en résolu.
-