cara agar cookie lama beberapa hari

Hallo semuanya!

di sini saya baru saja saya mengikuti playlist belajar php di youtube, dan saya sudah mengikuti sampai video cookie.

Jadi apakah bisa cookie diset memakai variabel lain, di sini cookie yang saya buat memakai variabel time().

jadi apakah bisa variabel time() itu di ganti dengan variabel lain.

soalnya saya bingung untuk login bertahan 1 minggu.

sedangkan yg saya pakai sekarang adalah detik.

Kode :

<?php
session_start();
require_once 'functions.php';

// cek cookie
if( isset($_COOKIE['id']) && isset($_COOKIE['key']) ) {
	$id = $_COOKIE['id'];
	$key = $_COOKIE['key'];

	// ambil username berdasarkan id
	$result = mysqli_query($conn, "SELECT username FROM user WHERE id = $id");
	$row = mysqli_fetch_assoc($result);

	// cek cookie dan username
	if( $key === hash('sha256', $row['username']) ) {
		$_SESSION['login'] = true;
	}

}

if( isset($_SESSION["login"]) ) {
	header("Location: index.php");
	exit;
}

if( isset($_POST["login"]) ) {

	$username = $_POST["username"];
	$password = $_POST["password"];

	$result = mysqli_query($conn, "SELECT * FROM user WHERE username = '$username'");

	// cek username
	if( mysqli_num_rows($result) === 1 ) {

		// cek password
		$row = mysqli_fetch_assoc($result);
		if( password_verify($password, $row["password"]) ) {
			// set session
			$_SESSION["login"] = true;

			// cek remember me
			if( isset($_POST['remember']) ) {
				// buat cookie
				setcookie('id', $row['id'], time()+60);
				setcookie('key', hash('sha256', $row['username']), time()+60);
			}

			header("Location: index.php");
			exit;
		}
	}

	$error = true;

}

?>
<!DOCTYPE html>
<html>
<head>
	<title>Halaman Login</title>
</head>
<body>

<h1>Halaman Login</h1>

<?php if( isset($error) ) : ?>
	<p style="color: red; font-style: italic;">username / password salah</p>
<?php endif; ?>

<form action="" method="post">

	<ul>
		<li>
			<label for="username">Username :</label>
			<input type="text" name="username" id="username">
		</li>
		<li>
			<label for="password">Password :</label>
			<input type="password" name="password" id="password">
		</li>
		<li>
			<input type="checkbox" name="remember" id="remember">
			<label for="remember">Remember me</label>
		</li>
		<li>
			<button type="submit" name="login">Login</button>
		</li>

	</ul>

</form>
</body>
</html>

Kode yang ingin saya ganti :

setcookie('id', $row['id'], time()+60);
setcookie('key', hash('sha256', $row['username']), time()+60);

jadi apakah bisa time() itu diganti dengan yang lain?

avatar X451
@X451

41 Kontribusi 30 Poin

Diperbarui 3 tahun yang lalu

1 Jawaban:

Jawaban Terpilih

<div>Sebenarnya yang perlu kamu tahu ada berapa detik dalam 1 hari (tergantugn mau tahu jam, hari, minggu atau lainnya)<br><br>60 detik = 1 menit<br>60 menit = 1 jam<br>24 jam = 1 hari<br>7 hari = 1 minggu<br><br>detik -&gt; minggu<br><br>606024*7&nbsp;<br>alias<br><br></div><pre>time()+86400</pre><div><br><br></div>

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 3 tahun yang lalu

Tanggapan

ouh, berarti yang time() itu tidak bisa diganti dengan yang lain.

Login untuk ikut Jawaban