Mysql en pdo

Zakarya93 Messages postés 1026 Statut Membre -  
hharchi9 Messages postés 693 Statut Membre -
Hello !

Je n'arrive pas à faire comme cette vidéo : https://www.youtube.com/watch?v=vp5H_IpETw8

Sachant que j'utilise pdo et lui une version obsolète, qui pourrait m'apporter son aide ? Demandez moi les scripts que vous voulez je les posterai.


Merci d'avance.

1 réponse

tete0148 Messages postés 493 Statut Membre 89
 
tu pourrais préciser ton problème ?
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
en gros j'ai mis mon code en pdo dans functions.php pour éviter les doublons mais ça marche pas
0
tete0148 Messages postés 493 Statut Membre 89 > Zakarya93 Messages postés 1026 Statut Membre
 
ça explique toujours pas le problème. Quelles erreurs as-tu ?
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
En gros j'ai utilisé ce code pour mon functions.php mais il refuse pas les doublons, ça ne fonctionne pas :

<?php
try 
{
  $bdd = new PDO ('mysql:host=localhost;dbname=rs;charset=utf8', 'root', '');
}
catch(Exception $e) 
{
  die('Erreur : '.$e->getMessage());
}

function inscrire_utilisateur($pseudo,$password,$email,$sexe,$apropos)
{
  Global $bdd;
  
  $password=sha1($password);
  $sql = "INSERT INTO utilisateurs(pseudo,password,email,sexe,apropos)
          VALUES (:pseudo,:password,:email,:sexe,:apropos)";
  $result = $bdd->prepare($sql);
  $result->bindValue('pseudo', $pseudo, PDO::PARAM_STR);
  $result->bindValue('password', $password, PDO::PARAM_STR);
  $result->bindValue('email', $email, PDO::PARAM_STR);
  $result->bindValue('sexe', $sexe, PDO::PARAM_STR);
  $result->bindValue('apropos', $apropos, PDO::PARAM_STR);
  $result->execute();
}

//vérifie que les données ne sont pas en double dans la base de données
if(!function_exists('is_already_in_use')) {
 function is_already_in_use($field, $value, $table) {
  global $db;

  $q = $db->prepare("SELECT id FROM $table WHERE $field = ?");
  $q->execute([$value]);

  $count = $q->rowCount();

  $q->closeCursor();

  return $count;
 }
}
0
tete0148 Messages postés 493 Statut Membre 89 > Zakarya93 Messages postés 1026 Statut Membre
 
pourquoi faire si compliqué pour inscrire un utilisateur ?

Pour vérifier si il est déjà inscrit, tu fais une requête pour récupérer tous les champs dans la base qui ont le même pseudo ou email. Si le retour est vide, c'est que le pseudo ou le mail est unique, sinon c'est qu'il est déjà enregistré tout simplement
0
Zakarya93 Messages postés 1026 Statut Membre 10
 
Non en fait j'ai déjà fait le test en créant 2 doublons et j'ai pas eu d'"erreur, le pseudo existe déjà"... dans la vidéo, j'ai vu qu'il fallait modifier la partie register.php après avoir taper le code anti doublon dans functions.php
0