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,
Alors voila j'ai suivi le tuto inscription.php mais j'ai cette erreur qui s'affiche : Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUESÂ ('mon_adresse_mail', '$1$KE/.L45.$ZV2EICF1TvtII47ZXsBNN1')' at line 1 in C:\UwAmp\www\monprojet.dev\Projet SI6\class\bd.php on line 35
<?php
include('ajax/verifsignup.php');
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Inscription</title>
<link href="../css/style.css" rel="stylesheet">
</head>
<body>
<nav class="navbar navbar-expand-sm bg-primary navbar-dark">
<a class="navbar-brand" href="../index.php">
<img class="logo" src="../images/téléchargement.jpg" alt="Logo" style="width:40px;">
</a>
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="signup/signup.php">Inscription</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Connexion</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Espace membre</a>
</li>
</ul>
</nav>
<div class="container">
<br/>
<div class
"row">
<div class="col-lg-offset-4 col-lg-4 col-lg-offset-4">
<form action="signup.php" method="post" class="well">
<h4 class="head">Créer votre compte</h4>
<div class="form-group">
<label for="email">Email : </label>
<input type="text" name="email" value="<?php if(isset($email)){echo $email;}?>" class="form-control input-sm" required>
<?php
if (isset($er_email)) {
?>
<div><?= $er_email ?></div>
<?php
}
?>
</div>
<div class="form-group">
<label for="password">Mot de passe : </label>
<input type="password" name="mot_de_passe" value="<?php if (isset($mot_de_passe)) {
echo $mot_de_passe;
} ?>" class="form-control input-sm" required>
<?php
if (isset($er_mot_de_passe)) {
?>
<div><?= $er_mot_de_passe ?></div>
<?php
}
?>
</div>
<div class="form-group">
<label for="confirm_password">Confirmation de mot de passe : </label>
<input type="password" name="conf_mot_de_passe" value="" class="form-control input-sm" required>
</div>
<div class="form-group">
<input type="submit" name="inscription" value="Valider" class="btn btn-sm btn-primary btn-block">
</div>
</form>
</div>
</div>
</body>
</html>
<?php
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
include('../class/bd.php');
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: ../index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
// On se place sur le bon formulaire grâce au "name" de la balise "input"
if (isset($_POST['inscription'])){
$email = htmlentities(strtolower(trim($email))); // On récupère le mail
$mot_de_passe = trim($mot_de_passe); // On récupère le mot de passe
$conf_mot_de_passe = trim($conf_mot_de_passe); // On récupère la confirmation du mot de passe
// Vérification du mail
if(empty($email)){
$valid = false;
$er_email = "L'email ne peut pas être vide";
// On vérifit que le mail est dans le bon format
}elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $email)){
$valid = false;
$er_email = "L'email n'est pas valide";
}else{
// On vérifit que l'email est disponible
$req_email = $DB->query("SELECT email FROM utilisateur WHERE email = ?",array($email));
$req_email = $req_email->fetch();
if ($req_email['email'] <> ""){
$valid = false;
$er_email = "Cet email existe déjà";
}
}
// Vérification du mot de passe
if(empty($mot_de_passe)) {
$valid = false;
$er_mot_de_passe = "Le mot de passe ne peut pas être vide";
}elseif($mot_de_passe != $conf_mot_de_passe){
$valid = false;
$er_mot_de_passe = "La confirmation du mot de passe ne correspond pas";
}
// Si toutes les conditions sont remplies alors on fait le traitement
if($valid){
$mot_de_passe = crypt($mot_de_passe);
// On insert nos données dans la table utilisateur
echo 1; // Les echo vont te permettre de savoir si tu arrives jusque la
$DB->insert("INSERT INTO utilisateur (email, mot_de_passe) VALUES (?, ?)",
array($email, $mot_de_passe));
echo 2;
exit;
}
}
}
?>
<?php
class connexionDB{
private $host = 'localhost'; // nom de l'host
private $name = 'espace membre'; // nom de la base de donnée
private $user = 'root'; // utilisateur
private $pass = ''; // mot de passe
//private $pass = ''; // Ne rien mettre si on est 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 UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la BDD !';
die();
}
}
public function query($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req;
}
public function insert($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
}
$DB = new connexionDB();
?>
SQL:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Client : localhost
-- Généré le : Ven 27 Mars 2020 à 17:48
-- Version du serveur : 5.6.20-log
-- Version de PHP : 5.4.31
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données : `espace membre`
--
-- --------------------------------------------------------
--
-- Structure de la table `utilisateur`
--
CREATE TABLE IF NOT EXISTS `utilisateur` (
`id` int(11) NOT NULL,
`email` varchar(255) NOT NULL,
`mot_de_passe` text NOT NULL,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`dateNaissance` date NOT NULL,
`adresse` varchar(100) NOT NULL,
`ville` varchar(50) NOT NULL,
`code_postal` varchar(5) NOT NULL,
`avatar` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Index pour les tables exportées
--
--
-- Index pour la table `utilisateur`
--
ALTER TABLE `utilisateur`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT pour la table `utilisateur`
--
ALTER TABLE `utilisateur`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Merci d'avance pour votre aide, cordialement.
Hello @parxdoxe,
Attention a bien utiliser les balises (j'ai réédité le sujet de ton topic) 😉
Quand tu as récupéré le code, as-tu effectuer un copier/coller, ou as-tu télécharger directement en cliquant sur le bouton ? 🤔
En programmation, il ne faut pas utiliser les accents... Les noms de tes fichiers ne doivent pas avoir d'accents... 🙅♂️
Vérifie également les informations de connexion de ta base de données, sont-elles correctes et correspondent-elles ? 🤔