Bonjour,

je n'arrive pas à finaliser une inscription vers base de données mysql avec formulaire et je n'ai aucun message d'erreur. Donc, je ne sais meme pas si ma connexion fonctionne dans un premier temps.

le fichier config.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
<?php
try{
   $bdd = new PDO('mysql:host=rdbms.strato.de;dbname=XXXXXX;user=UUUUUU;password=PPPPPPP;$pdo_options');
   $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
    die('Erreur de connexion : ' . $e->getMessage());
} 
?>
le fichier register.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
//affichage des erreurs pHP
error_reporting(E_ALL);
/* Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)*/
header('Content-type: text/html; charset=UTF-8');
if (!session_id()){
 session_start();
}
//connexion à la bdd (on inclus le fichier de connexion)
require_once "config.php"; 
/* Initialisation de la variable du message de réponse*/
$message = null;
/* Récupération des variables issues du formulaire par la méthode post*/
$username = filter_input(INPUT_POST, 'username');
$password = filter_input(INPUT_POST, 'password');
$email = filter_input(INPUT_POST, 'email');
$age = filter_input(INPUT_POST, 'age');
$sexe = filter_input(INPUT_POST, 'sexe');
$race = filter_input(INPUT_POST, 'race');
/* Teste que les valeurs ne sont pas vides ou composées uniquement d'espaces */  
  $username = !empty(trim($username)) ? trim($username) : null;
  $password = !empty(trim($password)) ? trim($password) : null;
  $email = !empty(trim($email)) ? trim($email) : null;
  $age = !empty(trim($age)) ? trim($age) : null;
  $sexe = !empty(trim($sexe)) ? trim($sexe) : null;
  $race = !empty(trim($race)) ? trim($race) : null;
if ($username,$password,$email,$age,$sexe,$race)){  /* Si le formulaire est envoyé et Si $pseudo etc sont différents de null */
 
    /* Requête pour récupérer les enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire */
    //* Préparation de la requête*/
 $requete = "SELECT count(*) as NB FROM membres WHERE username = :username AND password = :password AND email = :email AND age = :age AND sexe = :sexe AND race = :race";  
    $datas = array(':username'=>$username,':password'=>$password,':email'=>$email,':age'=>$age,':sexe'=>$sexe,':race'=>$age);
    try {
      //execution de la requete
      $req_prep = $bdd->prepare($requete);
      $req_prep->execute($datas);
      $resultat = $req_prep->fetchAll(); /* Création du tableau du résultat avec fetchAll qui récupère tout le tableau en une seule fois*/
 
    } catch (PDOException $e){
      $message = 'Problème dans la requête de sélection  :' . $e->getMessage();
    } 
 
 $nb_result =!empty($resultat) ? $resultat[0]['NB'] : 0;
 
 if ($nb_result == 1) {
 
  $_SESSION['username'] = $username;
 
  //$message = 'Bonjour '.htmlspecialchars($_SESSION['username']).', vous êtes connecté';
  /*ou redirection vers une page en cas de succès ex : menu.php*/
     header("Location: ./blabla.php");
  exit();
  /* Si vous voulez récupérer les données elles se trouvent dans la première et unique ligne du tableau $resultat par exemple */
   /**$result = $resultat[0];
  echo $result['pseudo'];
  //echo $result['date_enregistrement'];
        ***/
 } else if ($nb_result > 1) {
   /* Par sécurité si plusieurs réponses de la requête mais si la table est bien construite on ne devrait jamais rentrer dans cette condition */
   $message = 'Problème de d\'unicité dans la table';
 } else {   /* Le pseudo ou le mot de passe sont incorrect */
   $message = 'pseudo ou autre champs est incorrect';
 }
}else {/*au moins un des champs n'a pas été rempli*/
    $message = 'TOUS LES CHAMPS DOIVENT ETRE REMPLIS.';
}
 
?>