formulaire de connexion ajax

mabtan
Invité n'ayant pas de compte PHPfrance

01 oct. 2015, 23:31

Bonsoir, je tente de réaliser un formulaire de connexion avec la gestion en ajax, lorsque je teste je suis toujours redirigé vers le message d'erreur que j'ai intégré.

voici le code :

<form name="login_form" id="login_form" action="#">

<span id="msg-err"></span>
<div><img src="images/idbook logo.png" height="50px" align="left" style="margin-top:15px;margin-left:15px"/></div>
<div id="rgstr"> Pas de compte ID Book ? <a href="#"> Inscrivez vous ici </a></div>
<h3 class="stl-h3" align="left">COMPTE ID BOOK</h3>
<input type="text" id="email" class="prpt-input" name="email" value="Email" maxlength="60" size="40" align="left" style="margin-left:-25px"><br>
<input type="password" class="prpt-input" id="mdp" name="mdp" value="Mot de passe" maxlength="60" size="20" style="margin-top:10px;margin-left:-165px"><br>
<div class="mdp"><a href="#" style="margin-left:20px">Mot de passe oublie ?</a></div>


<center><p>
<input type="submit" name="submit" id="style-btn" value="Se connecter"/>

</p></center>
</form>


voici la fonction ajax qui appele le formulaire de verification :

$(document).ready( function ()
{
$("#login_form").submit( function()
{
var mail = $("#email").val();
var mdp = $("#mdp").val();
// à la soumission du formulaire
$.ajax({ // fonction permettant de faire de l'ajax
type: "POST", // methode de transmission des données au fichier php
url: "connexion.php", // url du fichier php
data: "email="+mail+"&mdp="+mdp, // données à transmettre
success: function(msg)
{
if(msg=='success')
{
$("div#box").html("<span id=\"confirmMsg\">Vous &ecirc;tes maintenant connect&eacute;.</span>");
// on désactive l'affichage du formulaire et on affiche un message de bienvenue à la place
window.location.href = 'index.php';
}
else
{
$("span#msg-err").html("Erreur lors de la connexion, veuillez v&eacute;rifier votre login et votre mot de passe.");
}
},

error: function(msg)
{
// si la connexion en php n'a pas fonctionnée
//$("span#msg-err").html("Erreur lors de la connexion, veuillez v&eacute;rifier votre login et votre mot de passe.");
// on affiche un message d'erreur dans le span prévu à cet effet
}
});
return false; // permet de rester sur la même page à la soumission du formulaire
});
});

et voici le formulaire de verif

<?
session_start();
?>


<!DOCTYPE html>
<html>
<head>
<title>Connexion </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link type="text/css" rel="stylesheet" href="connexion.css">

<script src="connexion.js" type="text/javascript"></script>

</head>
<?
$DB_HOST="localhost";
$DB_USER="a";
$DB_PW="b";
$link=mysql_connect($DB_HOST,$DB_USER,$DB_PW) or die ('<strong>$FWNAME Error:</strong>Database connection - ' . mysql_error());
$DB_DATA="c";
mysql_select_db($DB_DATA);
if((isset($_POST['email']))&&(isset($_POST['mdp'])))
{
$resultat = mysql_query('select * from clients wheremel = "'.$_POST['email'].'" and password = "'.$_POST['mdp'].'"') or die ('Erreur '.$resultat.' '.mysql_error());
$ligne = mysql_num_rows($resultat);

if($ligne==1)
{
$_SESSION['user'] = $ligne['clt_firstname'].' '.$ligne['clt_lastname'];
echo 'success';
}

else
{
echo 'failed';
//header('Location: index.php?err=1');
}
}
else
{
//header('Location: index.php');
}
?>

</html>

dans le success je suis toujours redirigé vers le else, ce qui m'affiche un message d'erreur alors qu'en faisant un refresh j'apparais connecté, quelqu'un peut-il m'aider?

Je vous remercie.

Mammouth du PHP | 2703 Messages

01 oct. 2015, 23:51

if(msg=='success')
il faut donc que le code php ne retourne que ce mot, sans autre balise html ou texte.

Petit nouveau ! | 1 Messages

03 oct. 2015, 20:01

merci, effectivement il retournait d'autres balises, j'ai donc fait un msg.indexof pour verifier si le mot success etait contenu dans le msg.