Mysql en pdo

Fermé
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 - 17 mai 2015 à 15:12
hharchi9 Messages postés 567 Date d'inscription mercredi 18 décembre 2013 Statut Membre Dernière intervention 1 juillet 2015 - 18 mai 2015 à 16:08
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 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
17 mai 2015 à 16:03
tu pourrais préciser ton problème ?
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
17 mai 2015 à 17:21
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 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
17 mai 2015 à 19:28
ça explique toujours pas le problème. Quelles erreurs as-tu ?
0
Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
17 mai 2015 à 19:52
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 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89 > Zakarya93 Messages postés 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020
17 mai 2015 à 21:34
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 984 Date d'inscription lundi 27 avril 2015 Statut Membre Dernière intervention 18 décembre 2020 10
17 mai 2015 à 21:44
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