Postingan lainnya
Problem Change Password dengan php
Selamat pagi senior2, saya mau bertanya tentang change password, sblmnya saya sudah membuat form nya dan code nya.
saya sudah menjalankan pasword telah berubah ketika programnya dijalankan, tetapi saya lihat di database nya tidak berubah. padahal pesannya berhasil dirubah.
databasenya : tabel user (fieldnya hanya username,password,level).
apa yang salah dengan kodingannya, berikut saya lampirkan code nya :
<!DOCTYPE html>
<html lang="en">
<head>
<title>Change Password</title>
<head>
<body>
<h2>Rubah Password</h2>
<?php
//mengatasi error notice dan warning
//error ini biasa muncul jika dijalankan di localhost, jika online tidak ada masalah
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
//koneksi ke database
$con = new mysqli("localhost", "root", "", "mynotescode");
if ($con->connect_errno) {
echo die("Failed to connect to MySQL: " . $con->connect_error);
}
//proses jika tombol rubah di klik
if($_POST['submit']){
//membuat variabel untuk menyimpan data inputan yang di isikan di form
$password_lama = $_POST['password_lama'];
$password_baru = $_POST['password_baru'];
$konfirmasi_password = $_POST['konfirmasi_password'];
//cek dahulu ke database dengan query SELECT
//kondisi adalah WHERE (dimana) kolom password adalah $password_lama di encrypt m5
//encrypt -> md5($password_lama)
// $password_lama = md5($password_lama);
$password_lama = $password_lama;
$cek = $con->query("SELECT password FROM user WHERE password='$password_lama'");
if($cek->num_rows){
//kondisi ini jika password lama yang dimasukkan sama dengan yang ada di database
//membuat kondisi minimal password adalah 4 karakter
if(strlen($password_baru) >= 4){
//jika password baru sudah 4 atau lebih, maka lanjut ke bawah
//membuat kondisi jika password baru harus sama dengan konfirmasi password
if($password_baru == $konfirmasi_password){
//jika semua kondisi sudah benar, maka melakukan update kedatabase
//query UPDATE SET password = encrypt md5 password_baru
//kondisi WHERE id user = session id pada saat login, maka yang di ubah hanya user dengan id tersebut
// $password_baru = md5($password_baru);
$password_baru = $password_baru;
$username = $_SESSION['username']; //ini dari session saat login
$update = $con->query("UPDATE user SET password='$password_baru' WHERE username='$username'");
if($update){
//kondisi jika proses query UPDATE berhasil
echo 'Password berhasil di rubah';
}else{
//kondisi jika proses query gagal
echo 'Gagal merubah password';
}
}else{
//kondisi jika password baru beda dengan konfirmasi password
echo 'Konfirmasi password tidak cocok';
}
}else{
//kondisi jika password baru yang dimasukkan kurang dari 4 karakter
echo 'Minimal password baru adalah 4 karakter';
}
}else{
//kondisi jika password lama tidak cocok dengan data yang ada di database
echo 'Password lama tidak cocok';
}
}
?>
<!-- mulai form rubah password -->
<form method="post" action="">
<table>
<tr>
<td>Password Lama</td>
<td>:</td>
<td><input type="password" name="password_lama" required></td>
<tr>
<tr>
<td>Password Baru</td>
<td>:</td>
<td><input type="password" name="password_baru" required></td>
<tr>
<tr>
<td>Konfirmasi Password</td>
<td>:</td>
<td><input type="password" name="konfirmasi_password" required></td>
<tr>
<tr>
<td>Â </td>
<td></td>
<td><input type="submit" name="submit" value="Rubah"></td>
<tr>
</table>
</form>
<!-- selesai form rubah password -->
</body>
</html>
mohon maaf jika ada kesalahan dalam penulisan, Terima kasih
4 Jawaban:
udah pernah coba echo $_SESSION['username']? kalo ga muncul brarti harusnya itu udah bener sih.. cuma gara2 gada session start si session username ga kebaca
mohon maaf mas masih belum begitu mengerti php, jadi untuk penambahan script2 masih dalam pembelajaran mas. jika tidak keberatan boleh dibantu/ditambahkan penggunaan echo session di kodingan sudah ada seperti apa.
Terima kasih
setelah di cek untuk koding di atas $_SESSION['usernamenya'] nggak kebaca solusinya bagaimana ya Mintz?
echo $_SESSION['username']; munculnya apa ? jika tidak muncul tambahkan session_start() di baris paling atas