La mise à jour de base de données MySQL avec la valeur MD5
Avoir fouillé à fond dans mon code, la seule raison que je puisse déterminer de cette erreur est que la technique que j'utilise pour la conversion de la chaîne d'MD5 n'est pas valide. Cependant je ne peux pas trouver une autre façon de le faire.
$username = $_POST['username'];
$password = $_POST['password'];
$repassword = $_POST['repassword'];
if( $password=$repassword ) {
$con=mysql_connect("localhost", "root", "");
if( $con == true ) {
mysql_select_db("movedb", $con);
//$newpassword = mysql_real_escape_string(md5($_POST['password']));
$query = "UPDATE user SET password=MD5('$password') WHERE username='$username'";
//$query = "UPDATE user SET password='$newpassword' WHERE username='$username'";
$result = mysql_query($query, $con);
if( $result == true ) {
echo "Successfully saved your message";
} else {
echo mysql_error();
}
mysql_close($con);
} else {
echo "Cannot connect to the database";
}
} else {
echo "Passwords do not match!";
}
Toutes les idées sur la façon de mettre à jour cette valeur MD5 à partir de PHP
- Qu'est-ce que "cette erreur"?
- et le corriger SI vous assignez à elle, vous n'êtes pas comparer
- il n'y a pas de message d'erreur obtenu
- si il n'y a pas d'erreur, alors vous devez nous dire ce que vous comptez à partir de votre code et ce qu'il est et n'est pas la prestation.
- Je m'attends à ce que le mot de passe pour obtenir les mises à jour dans la base de données après avoir converti à la valeur de Hachage. Cependant, le SQL ne semble pas donner les résultats, même dans PHPMyAdmin
- N'utilisez pas normal hashfunctions tels que md5 pour le hachage de mot de passe. Utilisation bcrypt ou d'autres constructions similaires.
Vous devez vous connecter pour publier un commentaire.
Utiliser PHP soutenu hachage md5.
$username
ne contient pas de'
n'est-ce pas? Ce qui est bien avec la communauté PHP où ce type de casual insouciance est considéré comme normal?Un problème qui peut causer des problèmes, c'est que MySQL et PHP à utiliser par défaut différente de sels lorsqu'ils chiffrer. Cela signifie que les chaînes seront différents. Donc, vous devez utiliser PHP ou MySQL pour chiffrer et pas un mélange des 2.
Deuxièmement, MD5 a été supplantée par d'autres de meilleurs algorithmes de chiffrement. Vous pourriez envisager d'utiliser un de ceux pour l'amélioration de la sécurité. Découvrez PHP
crypt()
fonction.Pour vérifier le mot de passe:
SELECT * FROM 'user' WHERE username='bob.jhonny' AND pass=MD5('oldPassword');
De mise à jour:
UPDATE 'dlp_contatcs'.'user' SET 'Pass'=MD5('NewPassword') WHERE 'Username'='bob.jhonny';
Vous pouvez calculer le
md5()
de hachage avec PHP et de le stocker dans une variable, puis mettre cette variable dans la base de données. Assurez-vous de faire de même à la conversion (md5
dans le code PHP du corps) lors de la vérification de la base de données.Vous devez corriger la ligne
if( $password=$repassword )
. Vous avez besoin de deux ou trois=
signes pour faire de laif
vérifier les contre quelque chose. La ligne seraitif( $password === $repassword )
.user
table existe et que leusername
(dont la ligne que vous êtes désireux de mettre à jour lepassword
) existe aussi.mysql
en ligne de commande) pour exécuter une requête fonctionne en modifiant la ligne?