Bonjour
J'ai un petit problème lorsque je veux faire plusieurs vérifications dans mon système de création d'utilisateur.
Voila comment je procède:
$('#btn-register').click (function() {
var reg_username = $("#reg_username").val();
var reg_email = $("#reg_email").val();
var reg_password = $("#reg_password").val();
$.ajax({
url: 'process.php',
type: 'POST',
data: 'type=formul®_username='+reg_username+'®_email='+reg_email,
dataType: 'json',
success: function(response){
if(!response.chk_user){
alert ('userdejautilise');
}
if(!response.chk_mail){
alert ('maildejautilise');
}
},
error: function(){
alert('nok');
}
});
});
Mon php
if($type == 'verif'){
$path_error = "logs/debug_pdo.txt";
$reg_username = $_POST['reg_username'];
$reg_email = $_POST['reg_email'];
try {
$stmt_user = $pdo_process->prepare("SELECT * FROM members WHERE username = :username");
$stmt_user->bindParam(':username', $reg_username);
$stmt_user->execute();
$cnt_user = $stmt_user->rowCount();
if($cnt_user> 0){
$chk_user = true;
echo json_encode($chk_user);
}
}catch(PDOException $e){
file_put_contents($path_error, date("Y-m-d H:i:s") ." Error chk_start IN verif " .$e->getMessage() ."\n", FILE_APPEND);
}
try {
$stmt_mail = $pdo_process->prepare("SELECT * FROM members WHERE email = :email");
$stmt_mail->bindParam(':email', $reg_email);
$stmt_mail->execute();
$cnt_mail = $stmt_mail->rowCount();
if($cnt_mail> 0){
$chk_mail = true;
echo json_encode($chk_mail);
}
}catch(PDOException $e){
file_put_contents($path_error, date("Y-m-d H:i:s") ." Error chk_start IN verif " .$e->getMessage() ."\n", FILE_APPEND);
}
}
Voila ma procédure:
Je lance mon ajax en envoyant les infos
je fais une première verif pour le nom d'utilisateur et je l'encode (chk_user)
je fais une deuxième verif pour le mail et je l'encode (chk_mail)
Et ensuite je fait la verif dans mon ajax avec mes encode.
Cela marchait très bien lorsque javais seulement le check de l'username mais depuis que j'ai mis ce double check j'ai des problème. Je ne dois pas m'y prendre correctement.
Merci pour votre aide :D
Bonsoir.
Ton pronblème n'a rien à voir avec PDO, mais avec ce que tu renvois à ton code Javascript.
Si tu renvoyais un tableau à ton javascript au lieu de simples valeur de variables, ça fonctionnerait mieux.
Par exemple :
if ($type == 'verif') {
$json = [];
// ...
if ($cnt_user > 0) {
$json['chk_user'] == true;
}
// ...
if ($cnt_mail > 0) {
$json['chk_mail'] = true;
}
echo json_encode($json);
}
Bonjour Lartak et merci pour ta réponse.
Comment je fais pour faire mes verifs si j'encode seulement 1 fois?