Postingan lainnya
membuat login dengan php, tapi masaih gagal
belajar membuat register dan login dengan php, tapi kok login masih gagal, kira kira salah dimana ya?
register udah masuk database, tapi ketika login gak bisa masuk
cek disini linknya
https://fadliyudaprihadi.com/formz/sinaulogin/login.php
4 Jawaban:
<div>ini saya copas isi script user.php<br><br><?php<br><br>//mendaftarkan user<br>function register_user($nama, $pass){<br> global $link;<br><br> //mencegah sql injection<br> $nama = escape($nama);<br> $pass = escape($pass);<br><br> //$pass = password_hash($pass, PASSWORD_DEFAULT);<br> $query = "INSERT INTO users (username, password) VALUES ('$nama', '$pass')";<br><br> if( mysqli_query($link, $query) ) return true;<br> else return false;<br>}<br><br>function cek_nama($nama){<br> global $link;<br> $nama = escape($nama);<br><br> $query = "SELECT * FROM users WHERE username = '$nama'";<br><br> if( $result = mysqli_query($link, $query) ) return mysqli_num_rows($result);<br>}<br><br>//untuk login<br>function cek_data($nama, $pass){<br> global $link;<br><br> //mencegah sql injection<br> $nama = escape($nama);<br> $pass = escape($pass);<br><br> $query = "SELECT password FROM users WHERE username = '$nama'";<br> $result = mysqli_query($link, $query);<br> $hash = mysqli_fetch_assoc($result)['password'];<br><br> if( password_verify($pass, $hash) ) return true;<br> <br> else return false;<br><br><br>}<br><br><br><br> <br> <br><br>//mencegah injection<br>function escape($data){<br> global $link;<br> return mysqli_real_escape_string($link, $data);<br>}<br><br>function redirect_login($nama){<br> $_SESSION['user'] = $nama;<br> header('Location: index.php');<br>}<br><br>function flash_delete($name){<br> echo $_SESSION['msg'];<br> unset($_SESSION['msg']);<br>}<br><br>//menguji status user apakah admin atau bukan<br>function cek_status($nama){<br> global $link;<br> $nama = escape($nama);<br><br> $query = "SELECT role FROM users WHERE username='$nama'";<br><br> $result = mysqli_query($link, $query);<br> $status = mysqli_fetch_assoc($result)['role'];<br><br> if( $status == 1) return true;<br> else return false;<br>}<br><br>?><br><br><br></div>
<div>ini login.php<br><br><?php<br>require_once "core/init.php";<br><br>$error = '';<br><br>//redirect kalau user sudah login<br>if( isset($_SESSION['user']) ) header('Location: index.php');<br><br>//validasi register<br>if( isset($_POST['submit']) ){<br> $nama = $_POST['username'];<br> $pass = $_POST['password'];<br><br> if(!empty(trim($nama)) && !empty(trim($pass)) ){<br><br> if(cek_nama($nama) != 0 ){<br> if( cek_data($nama, $pass)) redirect_login($nama);<br> else $error = 'data ada yang salah';<br> } else $error = 'namanya belum terdaftar di database';<br> }else $error = 'tidak boleh kosong';<br>}<br><br><br>require_once "view/header.php";<br><br><br>//meguji pesan session<br>if(isset($_SESSION['msg'])){<br> flash_delete($_SESSION['msg']);<br>} <br><br>?><br><br><br><form action="login.php" method="post"><br> <label for="">Nama</label> <br><br> <input type="text" name="username"> <br><br><br><br> <label for="">Password</label> <br><br> <input type="password" name="password"> <br><br><br><br> <input type="submit" name="submit" value="login"><br><br> <br><br><br> <? if($error != ''){ ?><br> <div id="error"><br> <?= $error; ?><br> </div><br> <? } ?><br><br></form><br><br><br><? require_once "view/footer.php"; ?><br><br></div>
<div><figure data-trix-attachment="{"contentType":"image/png","filename":"image.png","filesize":10943,"height":73,"url":"https://i.ibb.co/sF2T9Nv/image.png","width":829}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/sF2T9Nv/image.png" width="829" height="73"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure><br>screenshot database tabel users<br><br></div>
Tanggapan
wah, ternyata sulit juga ya cek nya saya mencoba membuat script yang sama pada laptop saya, di punya saya bisa
kalau boleh, push ke github biar saya bisa cek lebih lanjut
oiya, apakah kolom password nya itu type nya varchar / text dengan length 60 atau lebih ?
passwordnya varchar dengan length 50
PHP version apakah berpengaruh ya pak,? saya cek versi 5.6
ternyata php version saya ubah juga gak ngaruh
jika tidak keberatan, tolong dicek dong pak, ini filenya https://drive.google.com/file/d/13DtN4hdKxYgIj4UOq5ioqcqdyjPIqcMk/view?usp=sharing
<div>teman teman tolong jika tidak keberatan dicek file saya ini, salahnya di mana ya?<br><br><a href="https://drive.google.com/file/d/13DtN4hdKxYgIj4UOq5ioqcqdyjPIqcMk/view?usp=sharing">https://drive.google.com/file/d/13DtN4hdKxYgIj4UOq5ioqcqdyjPIqcMk/view?usp=sharing</a></div>