Postingan lainnya
Ada keanehan pada password login
Mohon pencerahaan dari yang tahu masalah ini, terutama dari pakar PHP:
ini script loginnya :
<?php
require 'config.php';
if(isset($_POST['login'])) {
$errMsg = '';
// Get data from FORM
$username = $_POST['username'];
$password = md5($_POST['password']);
if($username == '')
$errMsg = 'Enter username';
if($password == '')
$errMsg = 'Enter password';
if($errMsg == '') {
try {
$stmt = $dbh->prepare('SELECT id, nama, user, password FROM admin WHERE user = :username');
$stmt->execute(array(
':username' => $username
));
$data = $stmt->fetch(PDO::FETCH_ASSOC);
if($data == false){
$errMsg = "User $username not found.";
}
else {
echo"$password<br />$data[password]"; //echo password
if($password == $data['password']) {
$_SESSION['name'] = $data['nama'];
$_SESSION['username'] = $data['user'];
$_SESSION['password'] = $data['password'];
header('Location: index.php');
exit;
}
else
$errMsg = 'Password not match.';
}
}
catch(PDOException $e) {
$errMsg = $e->getMessage();
}
}
}
?>
9 Jawaban:
coba bikin lebih simple dulu scriptnya pastikan tidak ada masalah
- Pake die
<pre> if($password == $data['password']) { die('berhasil! password sama'); } else { die('Tidak berhasil! password tidak sama'); } </pre>
lihat dia masuk ke bagian mana. kalo sudah benar masuk ke if, sekarang hapus 'echo' nya. Dan diperbaiki tanda kurungkurawal dan akhir di bagian else nya,
sudah dicoba dan masuknya ke
[Tidak berhasil! password tidak sama]
aneh sekali, solusinya gimana?
Secara script saya ngga tahu masalahnya apa, kalau ternyata pas di echo hasil passwordnya sama. Yang bisa saya sarankan, coba simpan password dan verifikasinya menggunakan metode dari PHP
Membuat/Hash password [link]http://php.net/manual/en/function.password-hash.php [/link] Verifikasi password [link]http://php.net/manual/en/function.password-verify.php [/link]
Kalau mau tutorialnya, ada di kelas ini <a href='https://sekolahkoding.com/kelas/membuat-sistem-login-dan-register '>https://sekolahkoding.com/kelas/membuat-sistem-login-dan-register </a>
sudah saya temukan , tapi menjadi tanda tanya
<pre> $pass=substr($data['password'],0, -2); </pre>
setelah diambil dua karakter di belakang baru hasilnya sesuai, jadi ketambahan 2 karakter dibelakang tapi hidden, itu dari mana ya?
saya cek di databasenya tidak ada tambahan spasi, aneh sekali.
coba pake trim gan <pre> $pass=trim($data['password']); </pre>
Salam dianafir berhasil login dengan mulus sama persis hasilnya seperti cara terakhir saya lakukan, tapi yang dari dianafir lebih simple tidak bertele tele. terima kasih banyak.
tapi saya masih ingin melanjutkan diskusi login ini, begini -> praktek login di server Xampp bisa mulus langsung masuk halaman landas tanpa halangan, tapi di server hosting masih mengalami jeda berhenti dihalaman login dengan tampilan kosong , sementara solusinya diruang kosong itu saya tambahkan tombol link ke halaman landas , untuk masuk, itu tombol hidden kalau belum proses login, jika setelah proses login , berhasil atau gagal login muncullah tombol itu.
skema :
Xampp = Login -> berhasil -> halaman landas
Hosting = Login -> berhasil -> tombol link -> halaman landas
kalau gagal login di keduanya ya tidak bisa masuk halaman landas.
Jawaban Terpilih
coba errornya tampilin gan <pre> error_reporting(E_ALL); ini_set('display_errors', 1); </pre>
hasil error yang muncul setelah menambahkan : <pre>error_reporting(E_ALL); ini_set('display_errors', 1);</pre>
[ Warning: Cannot modify header information - headers already sent by (output started at ]
itu pada <pre>header('Location: index.php');</pre>
alhamdulillah masalah sudah ketemu dan tanpa error , ternyata hanya masalah html <pre><!doctype html> <html lang="en"> <head></pre>
posisinya sebelum kode PHP, setelah kode PHP saya letakkan diatasnya masalah selesai non error.
thanks untuk semua pendukung.