artikel ini ane dapatin dari blog seorang mastah yaitu mas rosihan ari, programmer mana yang gak kenal sama beliau. pada artikel ini beliau menjelaskan tentang bagaimana merubah password pada form ganti password untuk user, langsung aja simak artikel nya ya..
Ada seorang teman dan penikmat setia blog saya ini yang pernah meminta tolong untuk dibuatkan tutorial bagaimana membuat script PHP dalam proses updating password administrator. Karena saya waktu itu telah menjanjikan, ya… akhirnya saya usahakan untuk membuat tutorial ini.
Untuk mempersempit scope dari tutorial ini, diasumsikan password administrator sudah ada sebelumnya dan disimpan dalam tabel database yang memiliki struktur sbb:
1.
CREATE
TABLE
`
user
` (
2.
`username`
varchar
(30),
3.
`
password
`
varchar
(32),
4.
PRIMARY
KEY
(`username`)
5.
)
username : admin
password : d46d2f5893d5029080d74310eaa9306e
password di atas adalah hasil enkripsi dari password aslinya ‘admin123′. Enkripsinya sendiri menggunakan metode md5 yang dikombinasikan dengan pengacak. Baca kembali penjelasannya di artikel saya tentang tips membuat password dengan md5. Berikut ini proses enkripsinya:
1.
$pengacak
=
"hduwAHDU28328heUUH7283xx"
;
2.
$password
=
"admin123"
;
Nah… untuk mekanisme update password ini pada dasarnya meminta user, dalam hal ini administratornya, untuk memasukkan password yang lama terlebih dahulu (‘admin123′) ke dalam form update. Selanjutnya user diminta pula memasukkan password baru. Untuk password baru ini, user diminta memasukkan dua kali, karena hal ini berguna untuk mengkonfirmasi benar tidaknya penulisan ejaan password baru tersebut.
OK… dari penjelasan di atas, kita coba buat dahulu formnya
form.html
01.
<
h1
>Update Password Administrator</
h1
>
02.
03.
<
form
method
=
"post"
action
=
"update.php"
>
04.
<
table
>
05.
<
tr
><
td
>Masukkan password lama</
td
><
td
><
input
type
=
"password"
name
=
"oldPass"
/></
td
></
tr
>
06.
<
tr
><
td
>Masukkan password baru</
td
><
td
><
input
type
=
"password"
name
=
"newPass1"
/></
td
></
tr
>
07.
<
tr
><
td
>Masukkan kembali password baru</
td
><
td
><
input
type
=
"password"
name
=
"newPass2"
/></
td
></
tr
>
08.
<
tr
><
td
></
td
><
td
><
input
type
=
"submit"
name
=
"submit"
value
=
"Submit"
></
td
></
tr
>
09.
</
table
>
10.
</
form
>
1.
if
(password terenkripsi di database = md5(
$pengacak
.md5(password lama dari form.
$pengacak
)))
Jika password terenkripsi yang disimpan dalam database sama dengan password terenkripsi dari form, atau dengan kata lain password lama yang dimasukkan via form dan di database sama, maka selanjutnya cek kesesuaian antara password baru 1 dan 2. Jika sama, maka proses update password bisa dilakukan. Perhatian… bahwa sebelum mengupdate passwordnya di database, jangan lupa untuk mengenkripsinya terlebih dahulu. Gunakan metode enkripsi dan pengacak yang sama.
Dari penjelasan di atas, kita buat script untuk update passwordnya.
update.php
01.
<?php
02.
03.
$pengacak
=
"hduwAHDU28328heUUH7283xx"
;
04.
05.
mysql_connect(
"dbhost"
,
"dbuser"
,
"dbpass"
);
06.
mysql_select_db(
"dbname"
);
07.
08.
// membaca pass lama, dan baru dari form
09.
10.
$passwordlama
=
$_POST
[
'oldPass'
];
11.
$passwordbaru1
=
$_POST
[
'newPass1'
];
12.
$passwordbaru2
=
$_POST
[
'newPass2'
];
13.
14.
// cek benar tidaknya password yang lama
15.
16.
$query
=
"SELECT * FROM user WHERE username = 'admin'"
;
17.
$hasil
= mysql_query(
$query
);
18.
$data
= mysql_fetch_array(
$hasil
);
19.
20.
if
(
$data
[
'password'
] == md5(
$pengacak
.md5(
$passwordlama
.
$pengacak
)))
21.
{
22.
// jika password lama benar, maka cek kesesuaian password baru 1 dan 2
23.
if
(
$passwordbaru1
==
$passwordbaru2
)
24.
{
25.
// jika password baru 1 dan 2 sama, maka proses update password dilakukan
26.
27.
// enkripsi password baru sebelum disimpan ke db
28.
29.
$passwordbaruenkrip
= md5(
$pengacak
.md5(
$passwordbaru1
.
$pengacak
));
30.
31.
$query
=
"UPDATE user SET password = '$passwordbaruenkrip' WHERE username = 'admin' "
;
32.
$hasil
= mysql_query(
$query
);
33.
if
(
$hasil
)
echo
"Update password Admin sukses"
;
34.
}
35.
else
echo
"Password baru Anda tidak sama"
;
36.
}
37.
else
echo
"Password lama Anda salah"
;
38.
39.
?>
Bagi Anda yang menginginkan script di atas, dapat mendownload di bawah ini
Download Script
Source : http://blog.rosihanari.net/
bertanya mas kalo tanpa pengacak apa bisa begini?
BalasHapus$passwordlama = $_POST['oldPass'];
$passwordlama = md5($passwordlama);
if ($data['password'] == $passwordlama)
mohon bantuanya soalnya password lama dianggap masih blm match
mas seumpama hasil akhirnya di kirim ke email caranya gimana?
BalasHapus