Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour !
Je suis la formation << Créer son site de A à Z >>. Dans la partie 5.1 (Réaliser un formulaire d'inscription), quand j'essaie de faire une requête à la base de données, cela me ressort une erreur :
(PS: à la fin de l'erreur c'est pas on line 19 mais 21)
Voici mon code :
include_once('_data/connectData.php');
if (!empty($_POST)) {
extract($_POST);
$valid = true;
if (isset($_POST['login'])) {
$USERNAME = trim($USERNAME);
$MAIL = trim($MAIL);
$PASSWORD = trim($PASSWORD);
$CPASSWORD = trim($CPASSWORD);
if(empty($USERNAME)) {
$USERNAME_ERROR = 'Champ non renseigné.';
$valid = false;
} else {
$request = $Data2 -> prepare("SELECT id
FROM `user`
WHERE username = ?");
$request -> execute(array($USERNAME));
$request = $request->fetch();
if (isset($request['id'])) {
$valid = false;
$USERNAME_ERROR = "Ce nom d'utilisateur est déjà pris. Veuillez en choisir un autre.";
};
};
if(empty($MAIL)) {
$MAIL_ERROR = 'Champ non renseigné.';
$valid = false;
} else {
$request = $Data2 -> prepare("SELECT *
FROM id
WHERE mail = ?");
$request -> execute(array($MAIL));
$request = $request->fetch();
if (isset($request['id'])) {
$valid = false;
$MAIL_ERROR = "Un compte a déjà été créé avec cet email. Veuillez en choisir un autre";
};
};
if(empty($PASSWORD)) {
$PASSWORD_ERROR = 'Champ non renseigné.';
$valid = false;
} elseif ($PASSWORD <> $PASSWORD_ERROR) {
$PASSWORD_ERROR = "Le mot de passe ne correspond pas à la confirmation.";
$valid = false;
}
};
if ($valid) {
echo 'Valide à la requête.';
};
};
Voici connectData.php :
<?php
// Déclaration d'une nouvelle classe
class connexionDB {
private $host = 'localhost'; // nom de l'host
private $name = 'tomot'; // nom de la base de donnée
private $user = 'root'; // utilisateur
private $pass = ''; // mot de passe (il faudra peut-être mettre '' sous Windows)
private $connexion;
function __construct($host = null, $name = null, $user = null, $pass = null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
$this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8MB4',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la base de données : ' . $e;
die();
}
}
public function Data()
{
$this -> connexion;
}
}
$Data1 = new connexionDB();
$Data2 = $Data1 -> Data();
?>
Merci pour votre aide !
J'ai trouvé la solution : j'ai supprimé 'include_once('_data.connectData.php');' et j'ai rajouté
$Data2 = new PDO('mysql:host=localhost; dbname=tomot', 'root', '');