eror ketika include init.php kedalam header.php

saya sedang mengikuti vidio cara buat login dan register dgn php. buat username baru gk ada masalah, buat login gk ada masalah.

pass saya mau masukin kode <?php include('init.php'); ?> ke file header.php muncul eror.

======================================== Notice: A session had already been started - ignoring session_start() in C:\xampp\htdocs\belajar\login\init.php on line 2

Fatal error: Cannot redeclare register_user() (previously declared in C:\xampp\htdocs\belajar\login\user.php:3) in C:\xampp\htdocs\belajar\login\user.php on line 20

========================================

biar gk eror lagi gimana?

isi init.php

 <?php
session_start();

include('db.php');
include('user.php');

?>
avatar Umam7
@Umam7

9 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

5 Jawaban:

coba copy isi db.php sama user.php

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 5 tahun yang lalu

isi db.php

<pre> &lt;?php
$link = mysqli_connect('localhost','root','','latihan') or die(mysqli_error());

?&gt; </pre>

isi user.php (function register,login,cek user apakah ada di database)

<pre> &lt;?php

function register_user($nama , $password){ global $link;

//untuk menjegah sql injection
$nama = mysqli_real_escape_string($link , $nama);
$password = mysqli_real_escape_string($link , $password);
//untuk meng-hash password menjadi huruf2 unik
$password = password_hash($password , PASSWORD_DEFAULT); 

$query = &quot;INSERT INTO pengguna (username ,  password) VALUES (&#039;$nama&#039; , &#039;$password&#039;)&quot;;

if ( mysqli_query($link, $query) ) {
	return true;
}else{
	return false;
}

} // menguji duplikat username function register_cek_nama($nama){ global $link; $nama = mysqli_real_escape_string($link , $nama);

$query = mysqli_query($link , &quot;SELECT * FROM pengguna WHERE username=&#039;$nama&#039;&quot;);

if (mysqli_num_rows($query) == 0) {
	return true;
}else{
	return false;
}

}

//menguji username ada didatabase function login_cek_nama($nama){ global $link; $nama = mysqli_real_escape_string($link , $nama);

$query = mysqli_query($link , &quot;SELECT * FROM pengguna WHERE username=&#039;$nama&#039;&quot;);

if (mysqli_num_rows($query) != 0) {
	return true;
}else{
	return false;
}

}

// fungsi login function cek_data($nama , $password){ global $link;

//untuk menjegah sql injection
$nama = mysqli_real_escape_string($link , $nama);
$password = mysqli_real_escape_string($link , $password);

//mengambil password dari database
$query = mysqli_query($link, &quot;SELECT password FROM pengguna WHERE username=&#039;$nama&#039;&quot;);
// $query = &quot;SELECT password FROM pengguna WHERE username=&#039;$nama&#039;&quot;;
// $result = mysqli_query($link ,$query);

$hash = mysqli_fetch_assoc($query)[&#039;password&#039;];

if ( password_verify($password , $hash) ) {
	return true;
}else{
	return false;
}

}

?&gt; </pre>

avatar Umam7
@Umam7

9 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

yg ke 1 coba copy juga file header.php kalau di header.php ada session_start(), hapus session_start() di init.php

yg ke 2 coba pake include_once <pre> include_once('db.php'); include_once('user.php'); </pre>

masih ada error atau tidak, kalau ada error sama kah?

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 5 tahun yang lalu

Jawaban Terpilih

Halo.

Ignoring session itu hanya notice saja, artinya ada session lain yg sudah berjalan maka session tg ini diskip/ diignore.

Sedagkan fatal erornya karena ada dua fungsi yang sama, nama fugsinya register_user(), hapus saja salah satunya atau ganti nama fugsinya menjadi yang lain agar tidak sama.

avatar tompradana
@tompradana

134 Kontribusi 95 Poin

Dipost 5 tahun yang lalu

udah di ikutin ke 1 & ke 2,

tinggal eror ini yg masih ada

Fatal error: Cannot redeclare register_user() (previously declared in C:\xampp\htdocs\belajar\login\user.php:3) in C:\xampp\htdocs\belajar\login\user.php on line 20

======== struktur file saya header sama footer dipisah jadi tinggal di include.

<pre> &lt;?php
include('init.php'); include('header.php');

if ( !isset($_SESSION['user'])) { header('Location:login.php'); } ?&gt; &lt;h1&gt;Halaman Home &lt;?php echo $_SESSION['user']; ?&gt;&lt;/h1&gt;

&lt;?php if ( cek_status($_SESSION['user']) ) { echo "halo admin"; } ?&gt; &lt;?php include('footer.php') ?&gt; </pre>

apa gara2 include init.php 2x (di header.php & home.php) maka terjadi eror?

avatar Umam7
@Umam7

9 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban