Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Menampilkan Data User Yang Login
Halo saya mau tanya bagaimana cara menampilkan data user yang sudah login .. misal nya saya punya form login lalu saya masukan username dan password nya setelah saya login dan berhasil dia pindah ke halaman timeline yang isi nya itu ada nama depan, nama belakang, email, dan foto profil nah gimana cara nya supaya bisa menampilkan data nya yang ada di database ke halaman timeline yang isi nya itu sudah saya sebutkan sesuai dengan user yang login ?? kalau untuk email sudah berhasil saya tampilkan karena langsung saya ambil value nya saat user input buat login, nah kalau untuk data yang lainnya itu bagaimana ya?
isi dari database nya adalah Nama_Depan, Nama_Belakang, Email, Photo
semoga pertanyaan saya jelas dan dapat di mengerti.. mohon bantuan nya .. Terima Kasih.
Code Login.php
<?php
if(isset($_POST['login'])){
session_start();
$errmsg_arr = array();
$errflag = false;
// configuration
$db_host = "localhost";
$db_name = "headbook";
$db_user = "root";
$db_pass = "";
// database connection
$db = new PDO("mysql:host=$db_host;dbname=$db_name",$db_user,$db_pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("SET CHARACTER SET utf8mb4");
// new data
$user = $_POST['email'];
$password = $_POST['password'];
$md5 = md5 ($password);
if(empty($user))
{
die("<script>alert('Maaf, Email Dan Password Tidak Boleh Kosong');window.location='index.php'</script>");
}
if(empty($password))
{
die("<script>alert('Maaf, Email Dan Password Tidak Boleh Kosong');window.location='index.php'</script>");
}
// query
$result = $db->prepare("SELECT * FROM user WHERE Email= :E AND Password= :P");
$result->bindParam(':E', $user);
$result->bindParam(':P', $md5);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
$_SESSION['email'] = $user;
header("location: timeline.php");
}
else{
echo "<script>alert('Maaf, Username atau Password Anda Salah');window.location='index.php'</script>";
}
}
?>
code auth.php
<?php
session_start();
if(!isset($_SESSION["email"])) header("Location: login.php");
//if(!isset($_SESSION["password"])) header("Location: login.php");
//die(var_dump($_SESSION['password']));
Code timeline.php
<?php
require_once("auth.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" type="image/png" href="Assets/icon.png">
<link rel="stylesheet" type="text/css" href="Assets/timeline.css">
<title>HeadBook Timeline</title>
<link rel="stylesheet" href="css/bootstrap.min.css" />
</head>
<body class="bg-light">
<div class="container mt-5">
<div class="row">
<div class="col-md-4">
<div class="card">
<div class="card-body text-center">
<img class="img img-responsive rounded-circle mb-3" width="160" src="Assets/<?php //echo $_SESSION['photo'] ?>" />
<h3><?php //echo $_SESSION['nim_user'];?></h3>
<p><?php echo $_SESSION["email"] ?></p>
<p><a href="logout.php">Logout</a></p>
</div>
</div>
</div>
<div class="col-md-8">
<form action="" method="post" />
<div class="form-group">
<textarea class="form-control" placeholder="Apa yang kamu pikirkan?"></textarea>
<br>
<button type="submit" >Bagikan</button>
</div>
</form>
<?php for($i=0; $i < 6; $i++){ ?>
<div class="card mb-3">
<div class="card-body">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nobis veritatis nemo ad recusandae labore nihil iure qui eum consequatur, officiis facere quis sunt tempora impedit ullam reprehenderit facilis ex amet!
</div>
</div>
<?php } ?>
</div>
</div>
</div>
</body>
</html>
1 Jawaban:
Jawaban Terpilih
kamu sudah query mengambil data-data user di variable $result dan mengeluarkan hasil di $rows = $result->fetch(PDO::FETCH_NUM);
idenya pindahkan hasil dari database ini ke sebuah variable session
<pre> $_SESSION['user'] = $rows; </pre>
Disini kamu mengeluarkan dengan metode fetch(PDO::FETCH_NUM), jadi kamu bisa akses kontennya dari $_SESSION['user'][0] dan angka berikutnya
Kalau kamu berdasarkan nama kolom databasenya, gunakan fetch(PDO::FETCH_ASSOC) ini akan mengeluarkan ke namanya. Contoh $_SESSION['user']['name] atau ['email'] sesuai nama kolom
Kamu juga bisa belajar lebih detail di <a href=' https://sekolahkoding.com/kelas/sistem-login-dan-register-oop-php '>kelas login dan register OOP PHP</a>
Tanggapan
Sudah saya buat session $_SESSION['user'] = $rows; nya bang dan saya definisikan kembali session nya menjadi $_SESSION['nama'] = $rows['Nama_Depan']; , tetapi ketika saya mencoba memanggil di timeline, memang tidak ada error tapi juga tidak ada data yang keluar bang atau kosong, solusi nya bagaimana ya bang?
sama cara seperti sebelumnya kalau kamu mau tahu isi dari variable pake die dan var dump, cek isi $rows itu apa, ga perlu dioper oper lagi ke session baru
Sudah Saya var dump 'user' nya dan keluar array(8) { [0]=> string(1) "2" [1]=> string(5) "Indra" [2]=> string(4) "Bayu" [3]=> string(19) "Indrabayu@gmail.com" [4]=> string(32) "827ccb0eea8a706c4c34a16891f84e7b" [5]=> string(10) "1999-07-25" [6]=> string(9) "Perempuan" [7]=> string(11) "default.svg" } Lalu jika saya ingin memanggil bagian-bagian diatas bagaimana ya bang?
ketika saya coba untuk yg muncul Notice: Array to string conversion in C:\xampp\htdocs\ProjectPrognet12\timeline.php on line 33 Array
coba pelajari lagi tentang PDO Fetch, jawaban sudah saya update, semoga membantu
Wah Berhasil Terimakasih banyak bang
dengan senang hati!