PDO formulaire d'inscription

Résolu/Fermé
callum - Modifié par callum le 11/09/2014 à 18:35
 callum - 11 sept. 2014 à 22:11
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']);
?>
A voir également:

4 réponses

mister-benoit Messages postés 4 Date d'inscription jeudi 11 septembre 2014 Statut Membre Dernière intervention 1 mars 2016
11 sept. 2014 à 18:36
$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
0
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
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par totodunet le 11/09/2014 à 22:05
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
0
Super merci beaucoup !
0