Accueil
Forums
Turoriaux
Inscription
Connexion
Fil RSS
Bienvenue invité !
Samedi 22 Novembre 2008

[Résolu] Deux question pour modifier un élément en php

Dans une mise a jours de compte login!


1
Auteur Message
> Posté le : 27/08/2008 19h16
Aucun avatar


Groupe : Membres
Messages : 70

Bonjours à tous

Voici mon soucis.

Après avoir galèré a faire ma connexion membre, je me trouve devant deux dilem.

Le premier étant "password" et verifpassword".

voici le code
Code PHP:
 
<?php
include("conf.php");
    $login= $_POST['login'];
    $password = $_POST['password'];
    $verifpassword = $_POST['verifpassword'];
    $email = $_POST['email'];
    $verifemail = $_POST['verifemail'];

// on verifie que "login" , "email" et "verifemail" comporte bien un élément.
    if($login=="" || $email=="" || $verifemail=="")
    {
    echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption" </SCRIPT>'
;
    exit;
    }

// on verifie si le password à etait modifier, que les éléments "password" et "verifpassword" sont identiquent.
if($password != $verifpassword)
    {
    echo '<script language=javascript> alert ("Les mots de passe saisis ne concordent pas.");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption"
    </SCRIPT>'
;
    exit;
    }
//de même pour les "email" et "verifemail".
if($email != $verifemail)
    {
    echo '<script language=javascript> alert ("Les adresses e-mails saisies ne concordent pas.");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption"
    </SCRIPT>'
;
    exit;
    }
 
else
{
web_query("UPDATE membres SET login='".mysql_escape_string($_POST['login'])."', password='".md5(mysql_escape_string($_POST['password']))."', verifpassword='".md5(mysql_escape_string($_POST['verifpassword']))."', email='".mysql_escape_string($_POST['email'])."', verifemail='".mysql_escape_string($_POST['verifemail'])."', website='".mysql_escape_string($_POST['website'])."', birthday='".mysql_escape_string($_POST['birthday'])."', city='".mysql_escape_string($_POST['city'])."', hobies='".mysql_escape_string($_POST['hobies'])."', job='".mysql_escape_string($_POST['job'])."', presentation='".mysql_escape_string($_POST['presentation'])."' WHERE login='".$_SESSION['m_login']."'")or die(mysql_error());
echo '<script language=javascript> alert ("Vos modifications ont bien enregistrées!");</script>';
echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="index.php?name=memberoption" </SCRIPT>'
;
}
?>
 

Comme vous pouvez le constater, (pour ceux qui connaissent bien php pour le voir d'un coup), mon password et verifpassword, vont être encodé en md5,jusque là no soucis, mais vu que le code originel porte un encodage du style  "57193234b4b10e3ffdfd0f50f88369e9" , et que aprés modification l'encodage est le suivant  "7f0f31edafb98f9d96a21683133e9d05"  , comment vais je faire une fois que je vais commencer à créer les coockies????

Question:
Ya t'il moyen de dire à update de garder l'encodage MD5 originel si on na pas modifié "password" et "verifpassword", et de coder tout nouveau "password" et "verifpassword", en MD5????


Ensuite le deuxième dilem est le suivant:

Comment empêché de pouvoir modifier $login?

je répète le code
Code PHP:
 
<?php
include("conf.php");
    $login= $_POST['login'];
    $password = $_POST['password'];
    $verifpassword = $_POST['verifpassword'];
    $email = $_POST['email'];
    $verifemail = $_POST['verifemail'];

// on verifie que "login" , "email" et "verifemail" comporte bien un élément.
    if($login=="" || $email=="" || $verifemail=="")
    {
    echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption" </SCRIPT>'
;
    exit;
    }

// on verifie si le password à etait modifier, que les éléments "password" et "verifpassword" sont identiquent.
if($password != $verifpassword)
    {
    echo '<script language=javascript> alert ("Les mots de passe saisis ne concordent pas.");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption"
    </SCRIPT>'
;
    exit;
    }
//de même pour les "email" et "verifemail".
if($email != $verifemail)
    {
    echo '<script language=javascript> alert ("Les adresses e-mails saisies ne concordent pas.");</script>';
    echo '<SCRIPT LANGUAGE="JavaScript">
    document.location.href="index.php?name=memberoption"
    </SCRIPT>'
;
    exit;
    }
 
else
{
web_query("UPDATE membres SET login='".mysql_escape_string($_POST['login'])."', password='".md5(mysql_escape_string($_POST['password']))."', verifpassword='".md5(mysql_escape_string($_POST['verifpassword']))."', email='".mysql_escape_string($_POST['email'])."', verifemail='".mysql_escape_string($_POST['verifemail'])."', website='".mysql_escape_string($_POST['website'])."', birthday='".mysql_escape_string($_POST['birthday'])."', city='".mysql_escape_string($_POST['city'])."', hobies='".mysql_escape_string($_POST['hobies'])."', job='".mysql_escape_string($_POST['job'])."', presentation='".mysql_escape_string($_POST['presentation'])."' WHERE login='".$_SESSION['m_login']."'")or die(mysql_error());
echo '<script language=javascript> alert ("Vos modifications ont bien enregistrées!");</script>';
echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="index.php?name=memberoption" </SCRIPT>'
;
}
?>
 


Merci à vous, j'espère trouver encore une fois de l'aide ici.

Bonne journée ++

PHP Dev en force 
> Posté le : 30/08/2008 15h18
Aucun avatar


Groupe : Membres
Messages : 70


PHP Dev en force 
> Posté le : 30/08/2008 17h56
Aucun avatar


Groupe : Membres
Messages : 47

Je ne comprends pas ta question...

Pour ce qui est de l'encodage en md5, sache que le timestamp influe sur le cryptage, donc si il y a une seconde d'écart entre le cryptage de password et celui de verifpassword, ça plantera, de plus crypter en md5 n'est pas fondamentale dans ton cas je trouve!

Pour le reste, j'ai rien compris!

HammHetfield
> Posté le : 30/08/2008 20h40
Avatar de lbeetls01


Groupe : Admins
Messages : 2070

Je n'ai pas compris non plus .

HammHetfield -> Es-tu sûr que le timestamp influe sur le cryptage md5 ? Parce que tu peux très bien stoker le mot de passe dans une base de donnée, et plus tard comparer le mot de passe crypté qui est déjà dans la base de donnée avec un mot de passe entré par l'utilisateur...
Exemple :
Code PHP:
// $passwordFromDB -> un mot de passe sorti de la base de donnée qui a été crypté il y a longtemps
// $passwordInput -> un mot de passe entré par l'utilisateur actuellement pour se connecter
 
if($passwordFromDB == md5($passwordInput)) echo 'Le mot de passe est le même !';


> Posté le : 30/08/2008 23h12
Avatar de ProgDez


Groupe : Modérateurs
Messages : 145

Non c'est une pure bêtise lbeetls01 le timestamp n'influe pas, la preuve pour comparer le hash d'un mdp lors de la connexion 

sinon, le gas ne pourrais jamais ce connecter voyons faut arr^ter de raconter n'importe quoi!


Projets en cours:
- Olympe-Network (hébergement gratuit et sans pub)
- ProgDez NetWork's - Mon PortFolio / Blog perso
- Quote-me.fr - un peu de détente ça vous dit ?
> Posté le : 31/08/2008 08h27
Avatar de lbeetls01


Groupe : Admins
Messages : 2070

Oui, c'est bien ce qui me semblait =).


> Posté le : 31/08/2008 16h10
Aucun avatar


Groupe : Membres
Messages : 70

Je voulais simplement dire, que MD5 encode un mot de passe déja encodé!

C'est pour cela que je demandais, mais bonn cetait une question pour savoir, c'ets pas grave, désole, si vous n'aviez pas compris.

Par contre pour ma variable $login, que j'afiche lors d'une mis à jours d'infos, comment puije faire pour transmettre  (ou pas) $login, sans donner la possibilité a l'utilisateur de modifier son pseudo?

Merci à vous, bonne journée!

PHP Dev en force 
> Posté le : 05/09/2008 21h11
Avatar de Cheaterman


Groupe : Membres
Messages : 270

Citation: HammHetfield
Pour ce qui est de l'encodage en md5, sache que le timestamp influe sur le cryptage

J'voulais juste dire que c'est ridicule .

Et sinon tu peux pas le faire passer via la DB ou via POST ? (J'pige pas du tout le souci mais j'ai à peine survolé le sujet donc c'est peut-être normal)
> Posté le : 07/09/2008 17h04
Aucun avatar


Groupe : Membres
Messages : 70

J'ai trouver mes réponses:

Pour le mot de passe, suffit simplement de ne pas remettre MD5 devant le mot de passe récupéré, (lors de la mis à jours)
et pour le login, suffit d'afficher simplement le pseudo dans un textearea de rows="3", avec l'attibut qui permet de bloquer le texte .

Bonne journée!

Merci à vous

PHP Dev en force 
1