[RESOLU] Ajax : Connexion php + redirection automatique

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] Ajax : Connexion php + redirection automatique

Re: Ajax : Connexion php + redirection automatique

par nico44530 » 24 déc. 2012, 05:47

Ce code ne fonctionne pas :(

Re: Ajax : Connexion php + redirection automatique

par adama36 » 23 déc. 2012, 20:03

bonjour,
Essai le code suivant.


Le script pour le AJAX :

[javascript]
<script type='text/javascript'>

function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}

/**
* Méthode qui sera appelée sur le changement du SELECT
*/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour recuperer le retard de la caisse selectionnée
document.getElementById('erreur').innerHTML = leselect;
}
}

// Ici on utilise la methode POST pour poster les donnees
xhr.open("POST","login.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

// recuperation du pseudo
valeur1 = document.getElementById('pseudo');
pseudo = valeur1.value;

// recuperation du mot de passe
valeur2 = document.getElementById('password');
password = valeur2.value;

// envoi des donnees
xhr.send("pseudo="+pseudo+"&password="+password);
}
[/javascript]


Le formulaire de connexion
<div id="erreur"> </div>
<form method="post" action="" 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="button"  class="login" value="" onclick="go()"  /><img src="../img/load1.gif" alt="" height="16" width="16" class="load img-loading" /></td></tr>
                <tr><td></td></tr>
        </table>
</form>

Le code de login.php
$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) {
                $reponse = '<div id="erreur" align="center">Vos identifiants sont incorrects !</div>';
        }
        mysql_free_result($req);
        mysql_close();
}

else 
    echo "<div id= 'erreur'> Le pseudo ou le mot de passe est incorrecte  </div>";

Ajax : Connexion php + redirection automatique

par nico44530 » 23 déc. 2012, 08:32

Bonjour,

J'ai un formulaire de connexion, après nombreuses tentatives d'utiliser l'ajax, il me reste plus que les forums :cry:
Donc j'aimerais que ce formulaire appel ma page login.php en ajax, pour connecter ou informer les membres sans recharger la page (rechargement après un settimeout)

J'ai essayé avec beaucoup de scripts sur internet, aucun ne marche avec le code php de connexion.

Voici le code login.php à mettre à jour pour l'ajax :

$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) {
		$reponse = '<div id="reponse01" align="center">Vos identifiants sont incorrects !</div>';
	}
	mysql_free_result($req);
	mysql_close();
}
Ensuite voici mon formulaire :
<form method="post" action="" 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" value="" /><img src="../img/load1.gif" alt="" height="16" width="16" class="load img-loading" /></td></tr>
		<tr><td></td></tr>
	</table>
</form>
Voilà, j'espère que vous pourrez m'aider :/
Merci d'avance pour vos réponses