Accueil > > > XAMP : EXEMPLE DE SCRIPT D'IDENTIFICATION SIMPLE
XAMP : EXEMPLE DE SCRIPT D'IDENTIFICATION SIMPLE
Information sur la source
Description
XAMP est un acronyme qui désigne le regroupement des technologies destinées à la gestion de contenu WEB suivantes : - Xhtml pour le balisage du contenu - Ajax pour la manipulation des requêtes asynchrones ( sans recharger la page ) - MySQL pour le stockage des données - PhP pour le traitement des requêtes et la communication avec la base de données MySQL À l'aide d'un script d'identification de base, j'espères vous faire découvrir le potentiel de cette technologie de développement de solutions WEB et vous inciter à aller de l'avant dans l'apprentissage de cette nouvelle méthode de travail :) == Précisions == Avec les requêtes de type XMLHttpRequest, JavaScript vous permet de repousser les limites de la présentation traditionnelle du contenu en traitant les requêtes en "background" sans avoir besoin de recharger la page. Cette technologie, couplée à un language de script comme PHP et à une base de donnée vous permet de développement des applications en ligne qui allient les avantages du WEB à l'ergonomie des applications logicielles. Une fois maîtrisée, la technologie XAMP vous permet de gérer "en temps réel" des paramêtres fournis par l'utilisateur et ainsi faciliter la prise en main de vos interfaces WEB.
Source
- [Partie PHP]
-
- <?php
-
- # CONFIGURATION
-
- $CONFIG['host'] = "localhost";
- $CONFIG['name'] = "Nom de la base de données";
- $CONFIG['user'] = "Utilisateur";
- $CONFIG['pass'] = "Mot de passe";
-
- # IDENTIFICATION
-
- $connection = null;
- $result = null;
- $user = null;
- $password = null;
- $username = null;
-
- if ( isset( $_GET['username'] ) && $_GET['username'] != "" && isset( $_GET['password'] ) && $_GET['password'] != "" )
- {
- $username = trim( addslashes( $_GET['username'] ) );
- $password = md5( trim( addslashes( $_GET['password'] ) ) );
- $connection = @mysql_connect( $CONFIG['host'], $CONFIG['user'], $CONFIG['pass'] );
-
- if( $connection != null && $connection )
- {
- if ( @mysql_select_db( $CONFIG['name'], $connection ) )
- {
- $result = mysql_query("SELECT * FROM users WHERE user_name = '".$username."' ");
- if ( $result != null && $result && !empty( $result ) )
- {
- $user = mysql_fetch_assoc( $result );
- if ( $user != null && $user && !empty( $user ) )
- {
- if ( $password == $user['user_password'] )
- {
- print "good";
- } else {
- print "wrong";
- }
- } else {
- print "Aucun compte n'est associé a ce nom d'utilisateur !";
- }
- } else {
- print "Veuillez exécuter la routine d'installation avant de tester ce script !";
- }
- } else {
- print "Impossible de sélectionner la base de donnée !";
- }
- } else {
- print "Impossible de se connecter au serveur MySQL !";
- }
- } else{
- print "Veuillez entrer un nom d'utilisateur et un mot de passe valide !";
- }
-
- ?>
-
-
- [Partie AJAX]
-
-
- // Mise à jour du message destiné à l'utilisateur sans recharger la page
- function update_status( text, img )
- {
- document.getElementById("message").innerHTML = '<img id="status" src="theme/' + img + '.gif"> ' + text;
- }
-
- // Manipulation de la requête d'identification de manière asynchrone
- function handle_login()
- {
- var loginRequest = null;
-
- update_status( "Votre requête est en cours de traitement ...", "handle");
-
- // Définition du connecteur en fonction du navigateur :
- if (window.XMLHttpRequest)
- {
- loginRequest = new XMLHttpRequest();
- if (loginRequest.overrideMimeType)
- {
- loginRequest.overrideMimeType('text/xml');
- }
- }
- else if (window.ActiveXObject)
- {
- try {
- loginRequest = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- loginRequest = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (e) {
- update_status( "Impossible de communiquer avec le serveur", "handle");
- }
- }
- }
-
- // le secret d'AJAX réside en partie dans la réception et le traitement des résultats en background :
- loginRequest.onreadystatechange = function()
- {
- update_status( "Veuillez patienter pendant le processus d'authentification ...", "busy");
- if( loginRequest.readyState == 4 )
- {
-
- // Ici le code 200 signifie que la requête a renvoyé une valeur valide. On pourrait aussi gérer les erreurs 500, 404 ...
- if( loginRequest.status == 200 )
- {
- if ( loginRequest.responseText == "good" )
- {
- update_status( "Identification réussie !" , loginRequest.responseText );
- } else if ( loginRequest.responseText == "wrong" ) {
- update_status( "Le mot de passe est erroné !" , loginRequest.responseText );
- } else {
- update_status( loginRequest.responseText , "handle" );
- }
- }
- else
- {
- update_status( "Une erreur est survenue : " + loginRequest.status + " " + loginRequest.statusText, "handle");
- }
- }
- };
-
- username = document.getElementById('username').value;
- password = document.getElementById('password').value;
-
- // le secret d'AJAX réside également dans l'envoi de la requête en background ( sans recharger la page ) :
- loginRequest.open("GET", "login.php?username=" + username + "&password=" + password, true);
- loginRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- loginRequest.send(null);
- }
-
- [Formulaire XHTML]
-
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html lang="fr">
- <head>
- <title>Exemple de système d'identification simple codé en XAMP</title>
- <script src="login.js" type="text/javascript"></script>
- <link type="text/css" href="theme/login.css" rel="stylesheet">
- </head>
- <body>
- <div id="Header">
-
- Exemple de système d'identification simple codé en XAMP ( xhtml, ajax, mysql et php )
- </div>
- <div id="LoginForm">
- <form onSubmit="return false">
- <p>
- <label for="username">Nom d'utilisateur : </label>
- <input type="text" name="username" id="username" size=20>
- </p>
- <p>
- <label for="password">Mot de passe : </label>
-
- <input type="password" name="password" id="password" size=20>
- </p>
- <input type="submit" name="submit" value="Login" onClick="handle_login();">
- </form>
- </div>
- <div id="message" for="status">
- <img id="status" src="theme/handle.gif">
- Entrez votre nom d'utilisateur ainsi que votre mot de passe pour ouvrir une nouvelle session ...
- </div>
-
- </body>
- </html>
[Partie PHP]
<?php
# CONFIGURATION
$CONFIG['host'] = "localhost";
$CONFIG['name'] = "Nom de la base de données";
$CONFIG['user'] = "Utilisateur";
$CONFIG['pass'] = "Mot de passe";
# IDENTIFICATION
$connection = null;
$result = null;
$user = null;
$password = null;
$username = null;
if ( isset( $_GET['username'] ) && $_GET['username'] != "" && isset( $_GET['password'] ) && $_GET['password'] != "" )
{
$username = trim( addslashes( $_GET['username'] ) );
$password = md5( trim( addslashes( $_GET['password'] ) ) );
$connection = @mysql_connect( $CONFIG['host'], $CONFIG['user'], $CONFIG['pass'] );
if( $connection != null && $connection )
{
if ( @mysql_select_db( $CONFIG['name'], $connection ) )
{
$result = mysql_query("SELECT * FROM users WHERE user_name = '".$username."' ");
if ( $result != null && $result && !empty( $result ) )
{
$user = mysql_fetch_assoc( $result );
if ( $user != null && $user && !empty( $user ) )
{
if ( $password == $user['user_password'] )
{
print "good";
} else {
print "wrong";
}
} else {
print "Aucun compte n'est associé a ce nom d'utilisateur !";
}
} else {
print "Veuillez exécuter la routine d'installation avant de tester ce script !";
}
} else {
print "Impossible de sélectionner la base de donnée !";
}
} else {
print "Impossible de se connecter au serveur MySQL !";
}
} else{
print "Veuillez entrer un nom d'utilisateur et un mot de passe valide !";
}
?>
[Partie AJAX]
// Mise à jour du message destiné à l'utilisateur sans recharger la page
function update_status( text, img )
{
document.getElementById("message").innerHTML = '<img id="status" src="theme/' + img + '.gif"> ' + text;
}
// Manipulation de la requête d'identification de manière asynchrone
function handle_login()
{
var loginRequest = null;
update_status( "Votre requête est en cours de traitement ...", "handle");
// Définition du connecteur en fonction du navigateur :
if (window.XMLHttpRequest)
{
loginRequest = new XMLHttpRequest();
if (loginRequest.overrideMimeType)
{
loginRequest.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject)
{
try {
loginRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
loginRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
update_status( "Impossible de communiquer avec le serveur", "handle");
}
}
}
// le secret d'AJAX réside en partie dans la réception et le traitement des résultats en background :
loginRequest.onreadystatechange = function()
{
update_status( "Veuillez patienter pendant le processus d'authentification ...", "busy");
if( loginRequest.readyState == 4 )
{
// Ici le code 200 signifie que la requête a renvoyé une valeur valide. On pourrait aussi gérer les erreurs 500, 404 ...
if( loginRequest.status == 200 )
{
if ( loginRequest.responseText == "good" )
{
update_status( "Identification réussie !" , loginRequest.responseText );
} else if ( loginRequest.responseText == "wrong" ) {
update_status( "Le mot de passe est erroné !" , loginRequest.responseText );
} else {
update_status( loginRequest.responseText , "handle" );
}
}
else
{
update_status( "Une erreur est survenue : " + loginRequest.status + " " + loginRequest.statusText, "handle");
}
}
};
username = document.getElementById('username').value;
password = document.getElementById('password').value;
// le secret d'AJAX réside également dans l'envoi de la requête en background ( sans recharger la page ) :
loginRequest.open("GET", "login.php?username=" + username + "&password=" + password, true);
loginRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
loginRequest.send(null);
}
[Formulaire XHTML]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr">
<head>
<title>Exemple de système d'identification simple codé en XAMP</title>
<script src="login.js" type="text/javascript"></script>
<link type="text/css" href="theme/login.css" rel="stylesheet">
</head>
<body>
<div id="Header">
Exemple de système d'identification simple codé en XAMP ( xhtml, ajax, mysql et php )
</div>
<div id="LoginForm">
<form onSubmit="return false">
<p>
<label for="username">Nom d'utilisateur : </label>
<input type="text" name="username" id="username" size=20>
</p>
<p>
<label for="password">Mot de passe : </label>
<input type="password" name="password" id="password" size=20>
</p>
<input type="submit" name="submit" value="Login" onClick="handle_login();">
</form>
</div>
<div id="message" for="status">
<img id="status" src="theme/handle.gif">
Entrez votre nom d'utilisateur ainsi que votre mot de passe pour ouvrir une nouvelle session ...
</div>
</body>
</html>
Conclusion
Ce script a été conçu dans le but express de vous apprendre les bases de la technologie XAMP et ne ne devrait en aucun cas être utilisé dans son état actuel pour des fins d'identification. Le code n'est pas entièrement commenté car le but n'est pas de vous donner des informations qui ne seraient pas entièrement exacts et conformes aux normes. Vous devez déjà posséder une certaine connaissance de base de chacune des technologies employées pour bien comprendre comment ce script fonctionne.
Historique
- 29 juillet 2006 08:40:39 :
- J'ai rajouté quelques explications supplémentaires histoire d'expliquer un peu plus l'utilité de cette source
- 29 juillet 2006 08:58:23 :
- Ajout du code principal
- 29 juillet 2006 20:32:57 :
- Ajout du formulaire xhtml
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
problème avec MYSQL/php [ par spiesalex ]
salut,bon j'ai ce code ci:<?phpif(isset($_POST['login'])
Sessions permissions [ par Soul EX ]
<?php session_start(); $login = $_POST["login"]; $password = $_POST["password"]; $connexion = mysql_connect("*","*","*"); mysql_select_db("*",$c
Problème avec fichier de login pour espace membres [ par Florent06 ]
Salut à tous !!! Je suis en train de faire un espace membres et voici ce qu'il y a dans le fichier de login (après la page de formulaire de
probleme de session_start [ par metal_death ]
Bonjour j'ai créer un espace membre grace a phpfacile mais j'ai un petit probleme lors de la connection je recois ce message : Warning: se
Authentification ie et firefox [ par mounelelabrador ]
Bonjour, Je dois créer un site avec gestion membres, admins et vu que c'est pour un cours je ne peux pas vraiment télécharger sur inter
AJAX PHP send var [ par cedriclomb ]
Bonjour,Bon la j'y pige que couik !Alors voila le problème, je cherche a envoyer un fomulaire à PHP avec AJAX et une méthode POST, j'ai fait des reche
problème avec requete sql et php [ par machmacha ]
bonjour,j'ai une requête simple sur php la voilà:$sql = mysql_query("SELECT * FROM test WHERE login='".$_POST['log
difference entre les majuscules et miniscules [ par faty86 ]
bonjour,nous travaillons sur une application utilisant PHP/MYSQL. nous avons une table Profil (contenant les users) ayant comme champs: Login, PWD et
a tous les pro du php [ par vrkill2 ]
bonjour a tous qui peux mexpliqué clairement comment utiliser se code svp merci <?php // Démarage de la session PHP4// Il faut tou
Bonsoir, un probleme avec mon codage [ par xavier62 ]
Je vous montre mon problem sur un codage !! et sa m'écrit ceci : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resourc
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Forum
RE : TEMPORISATIONRE : TEMPORISATION par Arto_8000
Cliquez pour lire la suite par Arto_8000
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|