Mais dès que je saisisse un émail invalide ça me renvoie vers l'autre popup
if(email === '') {
function validateEmail(email) { var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(email); }
if(email === '' || !validateEmail(email)) {
if (myVar !== '') { $('#status2').html(myVar); $('#myform2').show(); $('#myform1').hide(); }
alert(myVar)
// PHP
session_start();
header('Content: application/json', 1);
include('db.php');
// Traitement connexion
if (isset($_POST['valider'])) {
$retour['valid'] = 0;
if (isset($_POST['email'])) {
$email = $_POST['email'];
$q = array('email'=>$email);
$sql = "SELECT count(*) AS nbr, email FROM users WHERE email = :email GROUP BY email";
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($db->errorInfo()));
$data = $req->fetch(PDO::FETCH_ASSOC);
if($data['nbr'] == 1) {
$_SESSION['auth'] = 'ok';
$_SESSION['id'] = $data ['id'];
$_SESSION['email'] = $email;
$retour["message"]= '<p class="success">Vous avez été connecté avec succès.</p>;';
$retour['valid'] = 1;
$retour['myVar']= $_SESSION['id'];
exit();
} else {
$retour["message"] = '<p class="error">Erreur lors de la connexion, veuillez vérifier votre adresse mail !</p>';
}
} else {
$retour["message"] = '<p class="error">Vous avez oublié de remplir le champ !</p>';
}
echo json_encode($retour);
}
// Ajax : traitement formulaire connexion
$(document).ready(function() {
$('#myform1').on('submit', function(e) {
e.preventDefault();
var $this = $(this);
// on sécurise les données
var email = encodeURIComponent($('#email').val());
if(email === '') {
$('#status1').html('<p class="error">Champ invalide !</p>');
} else {
$.ajax({
url: 'action1.php',
type: 'post',
data: $this.serialize(),
dataType: 'json',
success: function(data){
$resultat = $.parseJSON(data);
var myVar = $resultat['myVar'];
if ($resultat['valid']==1) {
$('#status2').html(myVar);
$('#myform2').show();
$('#myform1').hide();
}else{
$('#status1').html($resultat['message']);
}
}
});
return false;
}
});
});
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php // PHP session_start(); include('db.php'); $retour = array(); //initialisation variable de retour //Récupération PROPRE des variables AVANT de les utilser $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $valider = !empty($_POST['valider']) ? $_POST['valider'] : NULL; // Traitement connexion if ($valider) { if ($email) { $sql = "SELECT count(*) AS nbr, email FROM users WHERE email = :email GROUP BY email"; $q = array(':email'=>$email); try{ $req = $db->prepare($sql); $req->execute($q); $data = $req->fetch(PDO::FETCH_ASSOC); }catch(Exception $e){ //en cas d'erreur dans la requete $retour['valid'] = 0; $retour['message'] = $e->getMessage(); } if($data['nbr'] == 1) { $_SESSION['auth'] = 'ok'; $_SESSION['id'] = $data ['id']; $_SESSION['email'] = $email; $retour["message"]= '<p class="success">Vous avez été connecté avec succès.</p>;'; $retour['valid'] = 1; $retour['myVar']= $_SESSION['id']; } else { $retour['valid'] = 0; $retour["message"] = '<p class="error">Erreur lors de la connexion, veuillez vérifier votre adresse mail !</p>'; } } else { $retour['valid'] = 0; $retour["message"] = '<p class="error">Vous avez oublié de remplir le champ !</p>'; } }else{ $retour['valid'] = 0; $retour['message'] = "<p class='error'>valider n'existe pas !</p>"; } //on retourne le résultat echo json_encode($retour);
// Ajax : traitement formulaire connexion $(document).ready(function() { $('#myform1').on('submit', function(e) { e.preventDefault(); var $this = $(this); // on sécurise les données var email = encodeURIComponent($('#email').val()); if(email === '') { $('#status1').html('<p class="error">Champ invalide !</p>'); } else { $.ajax({ url: 'action1.php', type: 'post', data: $this.serialize(), dataType: 'json', success: function(data){ //pour debuguer au cas ou... // utilise la console de ton navigateur // et regarde ce que t'affiche l'instruction // console.log(data) if (data.valid ==1) { var myVar = data.myVar; $('#status2').html(myVar); $('#myform2').show(); $('#myform1').hide(); }else{ $('#status1').html(data.message); } }, error: function (request, status, error) { alert(request.responseText); } }); return false; } }); });
$retour["message"] = '<p class="success">Vous avez été connecté avec succès.</p>;';
$retour["message"] = '<p class="success">Vous avez été connecté avec succès.</p>;';
$retour["myVar"] = '<p class="success">Vous avez été connecté avec succès.</p>;';
$retour['myVar']= $_SESSION['id'];