Postingan lainnya
Muncul Tulisan ---> fatal error: Uncaught ArgumentCountError: Too few arguments to function.....
Halo kawan2 semua, saya mengikuti tutorial membuat sistem login. namun ketika saya sudah memasukkan semua kode yang ada di video tersebut muncul pesan error seperti ini :
Fatal error: Uncaught ArgumentCountError: Too few arguments to function cek_data(), 0 passed in D:\xampp\htdocs\sekolah-koding\belajar-php\loginregister\login.php on line 10 and exactly 2 expected in D:\xampp\htdocs\sekolah-koding\belajar-php\loginregister\functions\user.php:32 Stack trace: #0 D:\xampp\htdocs\sekolah-koding\belajar-php\loginregister\login.php(10): cek_data() #1 {main} thrown in D:\xampp\htdocs\sekolah-koding\belajar-php\loginregister\functions\user.php on line 32
kode di halaman login.php saya :
<?php
require_once "core/init.php";
if(isset ($_POST['submit'])){
$nama = $_POST['username'];
$pass = $_POST['password'];
if(!empty(trim($nama))&& !empty(trim($pass)) ){
cek_data($nama, $pass);
}else{
echo 'tidak boleh kosong';
}
}
require_once "view/header.php";
?>
<form action="login.php" method="post">
<label for="">Nama</label><br>
<input type="text" name="username"><br><br>
<label for="">Password</label><br>
<input type="password" name="password"><br><br>
<input type="submit" name="submit" value="daftar">
</form>
<?php
require_once "view/footer.php";
?>
kode di halaman user.php saya :
<?php
function register_user($nama, $pass){
global $link;
$nama = mysqli_real_escape_string($link, $nama);
$pass = mysqli_real_escape_string($link, $pass);
$pass = password_hash($pass, PASSWORD_DEFAULT);
$query ="INSERT INTO users (username, password) VALUES ('$nama', '$pass')";
if(mysqli_query($link, $query)){
return true;
}else{
return false;
}
}
function register_cek_nama($nama){
global $link;
$nama = mysqli_real_escape_string($link, $nama);
$query = "SELECT * FROM users WHERE username = '$nama'";
if($result = mysqli_query($link, $query)){
if(mysqli_num_rows($result) == 0)return true;
else return false;
}
}
function cek_data(String $nama, String $pass){
global $link;
$nama = mysqli_real_escape_string($link, $nama);
$pass = mysqli_real_escape_string($link, $pass);
$query = "SELECT password FROM users WHERE username='$nama' ";
$result = mysqli_query($link, $query);
$hash = mysqli_fetch_assoc($result)['password'];
if (password_verify($pass, $hash)){
die ('berhasil');
}else{
die ('gagal');
}
}
?>
Saya menggunakan Xampp dengan PHP versi 7.1.6.
untuk mengatasi masalah tersebut, apa yang harus saya lakukan? saya ucapkan terima kasih sebelumnya.......
5 Jawaban:
Kalau ndk mau ambil pusingnya gan tinggal kembalikan nilainya saja seperti code berikut ini : bagian user.php
<?php
function cek_data($nama, $pass){
global $link;
$nama = mysqli_real_escape_string($link, $nama);
$pass = mysqli_real_escape_string($link, $pass);
$query = "SELECT password FROM users WHERE username='$nama' ";
$result = mysqli_query($link, $query);
$hash = mysqli_fetch_assoc($result)['password'];
if (password_verify($pass, $hash))return TRUE;
else return FALSE;
}
?>
bagian login.php
if(isset ($_POST['submit'])){
$nama = $_POST['username'];
$pass = $_POST['password'];
if(!empty(trim($nama))&& !empty(trim($pass)) ){
if(cek_data($nama, $pass)){
echo "Anda berhasil Login";
}else{
echo "Username atau Password anda salah";
}
}else{
echo 'tidak boleh kosong';
}
}
makasih agan @KarisMaulana, saya sudah coba dan bisa mengatasi masalah diatas. Tapi hasilnya tidak sama yang ada di video tutorial yaitu kalau kita submit, hasilnya keluar tulisan berhasil atau gagal saja, tidak sekalian mengeluarkan elemen formnya juga.
apa kira2 ada cara untuk bisa hasilnya di seperti video ya? Terima kasih sebelumnya...
Maksud @ReoHarsa itu result dari cek_data($nama, $pass) ?
iya agan @KarisMaulana......... apa ada solusi untuk hasil seperti yang di video tutorial?
coba code berikut :
if(isset ($_POST['submit'])){
$nama = $_POST['username'];
$pass = $_POST['password'];
if(!empty(trim($nama))&& !empty(trim($pass)) ){
var_dump(cek_data($nama, $pass));
}else{
echo 'tidak boleh kosong';
}
}