[RESOLU] Connexion php avec Ajax, id non reconnu

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Connexion php avec Ajax, id non reconnu

Connexion php avec Ajax, id non reconnu

par nico44530 » 24 déc. 2012, 13:10

Bonjour,

Je n'arrive pas à me connecter à l'espace membre en ajax, j'utilise un mauvais code de connexion je pense.

Voici le code login.php :
require('../include/function.inc.php');
if (isset($_SESSION['pseudo'])) {
header('Location: home');
}
$pseudo = $_POST['pseudo'];
$pass = $_POST['password'];

if (!empty($pseudo) && !empty($pass))
{
        $sql = connect_sql();
        $sql = 'SELECT id FROM wa_communaute WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'" AND pass="'.mysql_escape_string(md5($_POST['password'])).'"';
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$nb = mysql_num_rows($req);
        if ($nb == 1) {
                $data = mysql_fetch_array($req);
                $_SESSION['pseudo'] = $_POST['pseudo'];
                $_SESSION['id'] = $data['id'];
                mysql_free_result($req);
                mysql_close();
                setcookie("pseudo", $_POST["pseudo"], time() + 90 * 24 * 60 * 60, "/");
                header('Location: /home/');
                exit();
        }
        elseif ($nb == 0) {
                echo '<div id="erreur" align="center">Vos identifiants sont incorrects !</div>';
        }
        mysql_free_result($req);
        mysql_close();
}
else {
    echo "<div id="erreur">Veuillez remplir tous les champs !</div>";
}
Ensuite voici mon formulaire :
<div id="form-login">
								<form method="post" action="javascript:alert('success!');" class="form" id="formlogin">
									<table>
										<tr><td><label class="form-login-label">Nom d'utilisateur</label></td></tr>
										<tr><td class="tooltip"><input type="text" name="pseudo" id="pseudo" class="form-login-input" maxlength="23" /><span class="tooltip"><span class="arrow"></span>Nom d'utilisateur / Pseudo</span></td></tr>
										<tr><td><label class="form-login-label">Mot de passe</label></td></tr>
										<tr><td class="tooltip"><input type="password" name="password" id="password" class="form-login-input" maxlength="30" /><span class="tooltip"><span class="arrow"></span>Mot de passe</span></td></tr>
										<tr><td><input type="checkbox" id="checkbox" name="check" class="checkbox" /><label class="check" for="checkbox">Rester connecté</label><label class="mdp">|&nbsp; <a>Mot de passe perdu</a></label></td></tr>
										<tr><td><input type="submit" class="login" id="submit" value="" /><img src="../img/load1.gif" alt="" height="16" width="16" class="load img-loading" /></td></tr>
										<tr><td><div id="ajax_loading" style="display: none;"><img align="absmiddle" src="images/spinner.gif">&nbsp;Processing...</div></td></tr>
										<tr><td></td></tr>
									</table>
								</form>
								<div id="login_response"></div>
							</div>
Et mon code JS ajax :

[javascript]
// Preload Images
img1 = new Image(16, 16);
img1.src="images/spinner.gif";
img2 = new Image(220, 19);
img2.src="images/ajax-loader.gif";

// When DOM is ready
$(document).ready(function(){

// When the form is submitted
$("#form-login > form#formlogin").submit(function(){

// Hide 'Submit' Button
$('#login').hide();

// Show Gif Spinning Rotator
$('#ajax_loading').show();

// 'this' refers to the current submitted form
var str = $(this).serialize();

// -- Start AJAX Call --

$.ajax({
type: "POST",
url: "../home/login/index.php", // Send the login info to this page
data: str,
success: function(msg){

$("#form-login").ajaxComplete(function(event, request, settings){

// Show 'Submit' Button
$('#login').show();

// Hide Gif Spinning Rotator
$('#ajax_loading').hide();

if(msg == 'OK') // LOGIN OK?
{
var login_response = '<div id="logged_in">' +
'<div style="width: 350px; float: left; margin-left: 70px;">' +
'<div style="width: 40px; float: left;">' +
'<img style="margin: 10px 0px 10px 0px;" align="absmiddle" src="images/ajax-loader.gif">' +
'</div>' +
'<div style="margin: 10px 0px 0px 10px; float: right; width: 300px;">'+
"You are successfully logged in! <br /> Please wait while you're redirected...</div></div>";

$('#dialog-login').css("width","500px");
$('#dialog-login').css("height","120px");

$(this).html(login_response); // Refers to 'status'

// After 3 seconds redirect the
setTimeout('go_to_private_page()', 3000);
}
else // ERROR?
{
var login_response = msg;
$('#login_response').html(login_response);
}

});

}

});

// -- End AJAX Call --

return false;

}); // end submit event

});

function go_to_private_page()
{
window.location = '../home/'; // Members Area
}
[/javascript]

Ce que je trouve bizarre, c'est que dans la page login.php il y a une redirection et que dans le script ajax, il y en a une aussi.
Quand je me connecte le script ajax envoi bien au fichier de connexion et la réponse me donne :

"Vos identifiants sont incorrects"

Donc c'est peut être une erreur de code dans la page de connexion.
J'ai cherché sur google, et je trouve pas de solution :cry:

Merci d'avance pour votre aide

Mais si