problème avec la connexion
Bonjour a tous , je me suis fais un script pour me connecter a une administration et cela a toujours fonctionner mais j'ai voulus ajouter de l'ajax a ce script ....
j'ai du retoucher le code de cela pour que ce soit compatible le problème c'est que sa ne fonctionne plus ,le mots de passe est toujours invalide alors qu'il est correct.
voici le script identifier.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <?php
session_start();
function conex(){
$host="localhost";
$dbusername="root";
$dbpassword="";
$database="webhosting";
// Connexion au serveur
$link = mysql_connect ($host, $dbusername, $dbpassword) or die(
"Désolé, connexion au serveur $host impossible");
// Connexion à la base
$sel = mysql_select_db ($database, $link) or die("Désolé, accès à la base $database impossible");
// Renvoi de la variable de connexion
return $link;
}
sleep(1);
if (isset($_POST["login"])) {
$login=$_POST["login"];
$motPasse=md5($_POST["motPasse"]);
// Les parametres ont bien ete transmis
$user = connecter_user($login, $motPasse);
if ($user) {
connecter_user($user);
}
repondre($user);
}
else {
print "usage : $_SERVER[PHP_SELF]?login=...&motPasse=...";
}
function connecter_user($user) {
// Enregistrer l'utilisateur dans la session web
$dbconnect=conex();
$requete = sprintf("SELECT id, username from member where (username='%s') and (password='%s')", $login, $motPasse);
$resultat = mysql_query($requete, $dbconnect)or die("<b>Erreur de chargement :</b><br>".mysql_error().__LINE__);
$succes=mysql_num_rows($resultat);
if ($succes==1) {
$ligne=mysql_fetch_array($resultat);
$_SESSION["userid"]=$ligne["id"]; //initialiser les variables de session
$_SESSION["motPasse"]=$ligne["password"];
}
else {
echo "erreur de connection<br/>";
}
}
/** Vue */
function repondre($user) {
if ($user) {
header("location:index.php"); //envoi à la page
}
else {
echo "Utilisateur inconnu ou mot de passe invalide";
}
}
?> |
bien entendu accompagner de test.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Panier</title>
<style type="text/css">
button {
width: 12ex;
height: 2em;
margin: 0ex 1ex 0ex 1ex;
}
#cadre {
text-align: center;
font-size:120%;
background: #FAF0F5;
}
#user {
padding: 1ex;
white-space: nowrap;
}
</style>
<script type="text/javascript">
// La requete HTTP
var requete;
function identifier() {
requete = getRequete();
if (requete != null) {
// Constituer le corps de la requete (la chaine de requete)
var login = document.getElementById("login").value;
var motPasse = document.getElementById("motPasse").value;
var corps = "login=" + encodeURIComponent(login)
+ "&motPasse=" + encodeURIComponent(motPasse);
try {
// Ouvrir une connexion asynchrone
requete.open("POST", "identifier.php", true);
// Positionner une en-tete indispensable
// quand les parametres sont passes par POST
requete.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
// Traitement a effectuer quand l'etat de la requete changera
requete.onreadystatechange = onIdentifier;
// Lancer la requete
requete.send(corps);
// Montrer que la requete est en cours
montrerActivite();
}
catch (exc) {
montrerInactivite();
}
}
else {
setMessage("Impossible de se connecter au serveur");
}
}
// Ce qui s'executera lorsque la reponse arrivera
function onIdentifier() {
if (requete.readyState == 4 && requete.status == 200) {
// Montrer que la requete est terminee
montrerInactivite();
// Afficher le message de reponse recu
setMessage(requete.responseText);
}
}
// Abandonner la requete
function abandonnerIdentifier() {
if (requete != null) {
requete.abort();
}
montrerInactivite();
setMessage("Requête abandonnée");
}
// Recuperer la requete existante ou une nouvelle si elle vaut null
function getRequete() {
var result = requete;
if (result == null) {
if (window.XMLHttpRequest) {
// Navigateur compatible Mozilla
result = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
// Internet Explorer sous Windows
result = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return result;
}
// Mettre les boutons dans l'etat initial
function montrerInactivite() {
document.getElementById("identifierOff").style.display = "inline";
document.getElementById("identifierOn").style.display = "none";
document.getElementById("boutonAbandonnerIdentifier").disabled = true;
}
// Montrer que la requete est en cours
function montrerActivite() {
document.getElementById("identifierOff").style.display = "none";
document.getElementById("identifierOn").style.display = "inline";
document.getElementById("boutonAbandonnerIdentifier").disabled = false;
setMessage("verification de vos données");
}
// Afficher un message
function setMessage(msg) {
document.getElementById("message").innerHTML = msg;
}
</script>
</head>
<body onload="montrerInactivite()">
<p id="cadre">Zone de connexion</p>
<form action="javascript:identifier()">
<fieldset id="user">
<legend>Utilisateur</legend>
<table border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td>Identifiant</td>
<td><input type="text" id="login"/></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password" id="motPasse"/></td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<button type="submit">
<span id="identifierOff">S'identifier</span>
<img id="identifierOn" src="loading.gif"
alt="Identification en cours ..."/>
</button>
<button type="button" id="boutonAbandonnerIdentifier"
onclick="abandonnerIdentifier()">Annuler</button>
</td>
</tr>
</tbody>
</table>
<div id="message"></div>
</fieldset>
</form>
</body>
</html> |
les lecteurs acharné comme moi remarquerons un petit extrait de devellopez en ajax des éditions eroylles ;)
il faut que je comprenne le fonctionnement bien entendu la partie php est de moi