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

avatar Fadli17
@Fadli17

5 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

Tanggapan

boleh tampilkan source code loginnya ?

terima kasih responnya, saya baru aja copas scriptnya di kolom jawaban

4 Jawaban:

<div>ini saya copas isi script user.php<br><br>&lt;?php<br><br>//mendaftarkan user<br>function register_user($nama, $pass){<br>&nbsp; global $link;<br><br>&nbsp; //mencegah sql injection<br>&nbsp; $nama = escape($nama);<br>&nbsp; $pass = escape($pass);<br><br>&nbsp; //$pass&nbsp; = password_hash($pass, PASSWORD_DEFAULT);<br>&nbsp; $query = "INSERT INTO users (username, password) VALUES ('$nama', '$pass')";<br><br>&nbsp; if( mysqli_query($link, $query) ) return true;<br>&nbsp; else return false;<br>}<br><br>function cek_nama($nama){<br>&nbsp; &nbsp; global $link;<br>&nbsp; &nbsp; $nama = escape($nama);<br><br>&nbsp; &nbsp; $query = "SELECT * FROM users WHERE username = '$nama'";<br><br>&nbsp; &nbsp; if( $result = mysqli_query($link, $query) ) return mysqli_num_rows($result);<br>}<br><br>//untuk login<br>function cek_data($nama, $pass){<br>&nbsp; global $link;<br><br>&nbsp; &nbsp; //mencegah sql injection<br>&nbsp; &nbsp; $nama = escape($nama);<br>&nbsp; &nbsp; $pass = escape($pass);<br><br>&nbsp; &nbsp; $query&nbsp; = "SELECT password FROM users WHERE username = '$nama'";<br>&nbsp; &nbsp; $result = mysqli_query($link, $query);<br>&nbsp; &nbsp; $hash &nbsp; = mysqli_fetch_assoc($result)['password'];<br><br>&nbsp;if( password_verify($pass, $hash) ) return true;<br>&nbsp; &nbsp;<br>&nbsp; else return false;<br><br><br>}<br><br><br><br>&nbsp;<br>&nbsp;<br><br>//mencegah injection<br>function escape($data){<br>&nbsp; global $link;<br>&nbsp; return mysqli_real_escape_string($link, $data);<br>}<br><br>function redirect_login($nama){<br>&nbsp; &nbsp; $_SESSION['user'] = $nama;<br>&nbsp; &nbsp; header('Location: index.php');<br>}<br><br>function flash_delete($name){<br>&nbsp; &nbsp; echo $_SESSION['msg'];<br>&nbsp; &nbsp; unset($_SESSION['msg']);<br>}<br><br>//menguji status user apakah admin atau bukan<br>function cek_status($nama){<br>&nbsp; global $link;<br>&nbsp; $nama = escape($nama);<br><br>&nbsp; $query = "SELECT role FROM users WHERE username='$nama'";<br><br>&nbsp; $result = mysqli_query($link, $query);<br>&nbsp; $status = mysqli_fetch_assoc($result)['role'];<br><br>&nbsp; if( $status == 1) return true;<br>&nbsp; else return false;<br>}<br><br>?&gt;<br><br><br></div>

avatar Fadli17
@Fadli17

5 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

<div>ini login.php<br><br>&lt;?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>&nbsp; $nama = $_POST['username'];<br>&nbsp; $pass = $_POST['password'];<br><br>&nbsp; if(!empty(trim($nama)) &amp;&amp; !empty(trim($pass)) ){<br><br>&nbsp; &nbsp; if(cek_nama($nama) != 0 ){<br>&nbsp; &nbsp; &nbsp; if( cek_data($nama, $pass)) redirect_login($nama);<br>&nbsp; &nbsp; &nbsp; else $error = 'data ada yang salah';<br>&nbsp; &nbsp; } else $error = 'namanya belum terdaftar di database';<br>&nbsp; }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>&nbsp; flash_delete($_SESSION['msg']);<br>} &nbsp;<br><br>?&gt;<br><br><br>&lt;form action="login.php" method="post"&gt;<br>&nbsp; &lt;label for=""&gt;Nama&lt;/label&gt; &lt;br&gt;<br>&nbsp; &lt;input type="text" name="username"&gt; &lt;br&gt;&lt;br&gt;<br><br>&nbsp; &lt;label for=""&gt;Password&lt;/label&gt; &lt;br&gt;<br>&nbsp; &lt;input type="password" name="password"&gt;&nbsp; &lt;br&gt;&lt;br&gt;<br><br>&nbsp; &lt;input type="submit" name="submit" value="login"&gt;<br><br>&nbsp; &lt;br&gt;<br><br>&nbsp; &lt;? if($error != ''){ ?&gt;<br>&nbsp; &nbsp; &lt;div id="error"&gt;<br>&nbsp; &nbsp; &nbsp; &lt;?= $error; ?&gt;<br>&nbsp; &nbsp; &lt;/div&gt;<br>&nbsp; &lt;? } ?&gt;<br><br>&lt;/form&gt;<br><br><br>&lt;? require_once "view/footer.php"; ?&gt;<br><br></div>

avatar Fadli17
@Fadli17

5 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

<div><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:10943,&quot;height&quot;:73,&quot;url&quot;:&quot;https://i.ibb.co/sF2T9Nv/image.png&quot;,&quot;width&quot;:829}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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&nbsp; tabel&nbsp;users<br><br></div>

avatar Fadli17
@Fadli17

5 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

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

<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>

avatar Fadli17
@Fadli17

5 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban