PDO formulaire d'inscription
Résolu
callum
-
callum -
callum -
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']);
?>
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:
- PDO formulaire d'inscription
- Whatsapp formulaire opposition - Guide
- Wetransfer gratuit sans inscription - Guide
- Formulaire de réclamation facebook - Guide
- Twitter inscription - Guide
- Vinted inscription - Guide
4 réponses
$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
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
bonjour, l'équivalent avec PDO :
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
$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