Voici la page de modification :
if(isset($_SESSION['name']) && isset($_SESSION['password'])){
$affichepassword = mysql_query("SELECT * FROM `cs_profiles` WHERE `name`='".($_SESSION['name'])."' AND `password`='".($_SESSION['password'])."'");
$resultpassword = mysql_fetch_assoc($affichepassword);
extract($resultpassword);
}
if(isset($_POST['Envoyerpassword'])){
//si pseudo vide
if(empty($_POST['password'])){
echo '<div class="erreur">Veuillez saisir un password!</div>';
}
//c'est ok
else {
//On sélectionne les données
$donneespassword = mysql_query("SELECT password FROM `cs_profiles` WHERE `password`!='{$sPass}'")
or die ('Erreur :'.mysql_error());
while($resultpassword = mysql_fetch_array($donneespassword)){
//on vérifie si le pseudo est utilisé
if(($_POST['password'])== $resultpassword['password']){
echo '<div class="erreur">Ce password est utilisé!</div>'; return false;
}
}
//si c'est ok
//on modifie les données du membre
$modifpassword = mysql_query("UPDATE `cs_profiles` SET `password`='".($_POST['password'])."'
WHERE `status`='active'");
//Si il y a une erreur
if (!$modifpassword) {
die('Requête invalide : ' . mysql_error());
}
//tout est ok
else{
//on informe le membre
echo '<div class="ok">Modification password enregistrées avec succès avec succès! Vous allez être déconnecté du service pour ouvrir une nouvelle session.</div>';
echo '<script type="text/javascript"> window.setTimeout("location=(\'index.php?dec=close&session=new\');",3000) </script>';
}
}
}
Avec ce formulaire, j'arrive à modifier le password, mais celui-ci apparait en toutes lettres dans mysql et lorsque je me déconnecte et me reconnecte avec le nouveau password, et bien je n'arrive plus à accéder à mon espace avec comme message "password or username is incorect"voici la page de login :
<?php
class CLogin {
// constructor
function CLogin() {
session_start();
}
// get login box function
function getLoginBox() {
if (isset($_GET['logout'])) { // logout processing
if (isset($_SESSION['member_name']) && isset($_SESSION['member_pass']))
$this->performLogout();
}
if ($_POST && $_POST['Login'] == 'Login' && $_POST['username'] && $_POST['password']) { // login processing
if ($this->checkLogin($_POST['username'], $_POST['password'], false)) { // successful login
$this->performLogin($_POST['username'], $_POST['password']);
header( "Location:{$_SERVER['REQUEST_URI']}" );
exit;
} else { // wrong login
return file_get_contents('templates/login_form.html') . '<h2>Username or Password is incorrect</h2>';
}
} else { // in case if we already logged (on refresh page):
if (isset($_SESSION['member_name']) && $_SESSION['member_name'] && $_SESSION['member_pass']) {
$aReplaces = array(
'{name}' => $_SESSION['member_name'],
'{status}' => $_SESSION['member_status'],
'{role}' => $_SESSION['member_role'],
);
return strtr(file_get_contents('templates/logout_form.html'), $aReplaces);
}
// otherwise - draw login form
return file_get_contents('templates/login_form.html');
}
}
// perform login
function performLogin($sName, $sPass) {
$this->performLogout();
// make variables safe
$sName = $GLOBALS['MySQL']->escape($sName);
$aProfile = $GLOBALS['MySQL']->getRow("SELECT * FROM `cs_profiles` WHERE `name`='{$sName}'");
// $sPassEn = $aProfile['password'];
$iPid = $aProfile['id'];
$sSalt = $aProfile['salt'];
$sStatus = $aProfile['status'];
$sRole = $aProfile['role'];
$sPass = sha1(md5($sPass) . $sSalt);
$_SESSION['member_id'] = $iPid;
$_SESSION['member_name'] = $sName;
$_SESSION['member_pass'] = $sPass;
$_SESSION['member_status'] = $sStatus;
$_SESSION['member_role'] = $sRole;
}
// perform logout
function performLogout() {
unset($_SESSION['member_id']);
unset($_SESSION['member_name']);
unset($_SESSION['member_pass']);
unset($_SESSION['member_status']);
unset($_SESSION['member_role']);
}
// check login
function checkLogin($sName, $sPass, $isHash = true) {
// make variables safe
$sName = $GLOBALS['MySQL']->escape($sName);
$sPass = $GLOBALS['MySQL']->escape($sPass);
$aProfile = $GLOBALS['MySQL']->getRow("SELECT * FROM `cs_profiles` WHERE `name`='{$sName}'");
$sPassEn = $aProfile['password'];
if ($sName && $sPass && $sPassEn) {
if (! $isHash) {
$sSalt = $aProfile['salt'];
$sPass = sha1(md5($sPass) . $sSalt);
}
return ($sPass == $sPassEn);
}
return false;
}
}
$GLOBALS['CLogin'] = new CLogin();
Merci de m'éclairer