<?php
$login=$_GET[login];
$db = mysql_pconnect('localhost', 'root', '');
mysql_select_db('test');
$req = "SELECT ID FROM users WHERE user_login LIKE '".$login."';";
$res = mysql_query($req);
$row = mysql_fetch_row($res);
if ($row) {
echo true;
}
else {
echo false;
}
?>
function
handleHttpResponse() {
if (http.readyState == 4) {
res = http.responseText;
if (res == true) {
document
.getElementById('message').innerHTML = "Ce login est déjà pris.
Veuillez en utiliser un autre";
document
.getElementById('message').style.color ="red";
}
if (res == false) {
document
.getElementById('message').innerHTML = "Ce login est disponible.
Vous pouvez continuer";
document
.getElementById('message').style.color ="green";
}
}
} |
La plupart des applications en ligne nécessitent une inscription
préalable pour y accéder. Chaque inscrit étant censé disposer
d'un identifiant unique, le formulaire d'inscription teste
lors de sa validation si l'identifiant choisi est bien disponible.
Le cas échéant, il faut demander à l'utilisateur d'en trouver
un autre. Sans Ajax, il faudra recharger l'intégralité de
la page, uniquement pour changer cette section (sauf si une
développeur intelligent à prévu de n'afficher que les sections
fautives - mais il y a alors impossibilité pour l'utilisateur
de modifier les autres champs).
Ajax apporte la solution en allant directement demander à
la base de données, dès que l'utilisateur a proposé un login,
si celui-ci est disponible. JavaScript affichera ensuite le
message qui convient.
Le code PHP encapsule une requête SQL de type
WHERE..LIKE.
La chaîne renvoyée contiendra un booléen : soit true, soit
false.
En ce qui concerne Javascript, la fonction handleHttpResponse()
permet de tester les booléens, et modifie
tant le contenu du champ vide "message", placé à côté du champ
où le login est entré, que sa couleur.
|