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

avatar ReoHarsa
@ReoHarsa

3 Kontribusi 0 Poin

Diperbarui 7 tahun yang lalu

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';
	}
}

avatar arisid96
@arisid96

179 Kontribusi 71 Poin

Dipost 7 tahun yang lalu

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

avatar ReoHarsa
@ReoHarsa

3 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

Maksud @ReoHarsa itu result dari cek_data($nama, $pass) ?

avatar arisid96
@arisid96

179 Kontribusi 71 Poin

Dipost 7 tahun yang lalu

iya agan @KarisMaulana......... apa ada solusi untuk hasil seperti yang di video tutorial?

avatar ReoHarsa
@ReoHarsa

3 Kontribusi 0 Poin

Dipost 7 tahun yang lalu

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';
	}
}

avatar arisid96
@arisid96

179 Kontribusi 71 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban