PDO formulaire d'inscription

Résolu
Bonjour,

j'essaie de créer un formulaire d'inscription en PDO, et j'ai quelques erreurs :
-Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\Projet3\insertion.php on line 2

-Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Projet3\insertion.php on line 22

-Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Projet3\insertion.php on line 26

Voici le formulaire :
<FORM method="post" action="traitement.php">
<label for="inslogin">Login</label><input type="text" name="inslogin">
<label for="inspass">Password</label><input type="password" name="inspass">
<label for="insverifpass">Password</label><input type="password" name="insverifpass">
<label for="insemail">Mail</label><input type="email" name="insemail">
<label for="insdate">Anniversaire</label><input type="date" name="insdate">
<label for="instype">Sexe</label><input type="text" name="instype"><br/>
<input class="submit" type="submit" name="inssubmit">
</FORM>
=======================================================================================================================
La page pour insérer :
<?php
class Insertion
{
public $login;
public $pass;
public $mail;
public $date;
public $type;

public function EnvoiDonneeVerifie ($login,$pass,$mail,$date,$type)
{
include('database.php');
$this->login = htmlentities($_POST["inslogin"], ENT_QUOTES);
$this->pass = htmlentities($_POST["inspass"], ENT_QUOTES);
$this->mail = htmlentities($_POST["insemail"], ENT_QUOTES);
$this->date = htmlentities($_POST["insdate"], ENT_QUOTES);
$this->type = htmlentities($_POST["instype"], ENT_QUOTES);

$log = "SELECT login FROM users WHERE login = '".$_POST["inslogin"]."' ";
$log = mysql_query($log);
$log = mysql_fetch_assoc($log);

$email = "SELECT mail FROM users WHERE mail = '".$_POST["insemail"]."' ";
$email = mysql_query($email);
$email = mysql_fetch_assoc($email);

if ($login == $pass){
echo "Votre login et votre mot de passe doivent être différent !";
}
else if($log != 0){
echo "Login déjà prit !";
}
else if($email != 0){
echo "Mail déjà utilisé !";
}
else if($_POST['inspass'] != $_POST['insverifpass']){
echo "MDP différents !";
}
else {
$pass = md5($pass);
$req = $bdd->prepare('INSERT INTO users(login,password,mail,date,type) VALUES (:login,:password,:mail,:date,:type)');
$req->execute(array('login'=>$login,'password'=>$pass,'mail'=>$mail,'date'=>$date,'type'=>$type));
echo "Vous êtes bien inscrit ! Connectez-vous !";
}
}
}
?>
==================================================================================================================
et la page qui traite tout ceci :
<?php

include 'Insertion.php';

$host = 'localhost';
$user = 'root';
$password = '';
$database = 'projet3';

$insertionObj = new insertion($host, $user, $password, $database);

$insertionObj->EnvoiDonneeVerifie($_POST['inslogin'], $_POST['inspass'],$_POST['insverifpass'],$_POST['insemail'],$_POST['insdate'],$_POST['instype']);
?>

4 réponses

  1. bonjour, l'équivalent avec PDO :

    $requete = "SELECT mail FROM users WHERE mail = '".$_POST["insemail"]."' "; 
    $email = $connexionbdd->query($requete); 
    $tableau = $email->fetch(PDO::FETCH_ASSOC); 


    en sachant que $connexionbdd c'est l'objet PDO de connexion de ta BDD

    https://www.php.net/manual/fr/book.pdo.php pour toutes les méthodes, fonctions de PDO

    Qui ne tente rien n'a rien
    1. Merci soucis résolu, mais du coup comment faire pour vérifier dans la bdd si il n'existe bien qu'un seul utilisateur avec ce nom ? je ne savais procéder qu'avec query et assoc
      1. $log = "SELECT login FROM users WHERE login = '".$_POST["inslogin"]."' "; 
        $log = mysql_query($log);
        $log = mysql_fetch_assoc($log);

        $email = "SELECT mail FROM users WHERE mail = '".$_POST["insemail"]."' ";
        $email = mysql_query($email);
        $email = mysql_fetch_assoc($email);

        n'utilise pas mysql_query et mysql_fetch_assoc