Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Tidak Bisa Menampilkan data yang ada di database
Halo, saya ingin membuat sebuah website networking untuk tugas besar di kampus, saat saya mencoba untuk menampilkan nama, email dan photo user yang sudah login, terjadi error seperti ini "Warning: Illegal string offset 'Email' in C:\xampp\htdocs\ProjectPrognet12\timeline.php on line 30 I" dan halaman timeline saya tidak menampilkan data yang ada di database, kira" solusi nya bagaimana ya? terimakasih
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'];
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', $password);
$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");
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">
<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="img/<?php echo $_SESSION['email']['Photo'] ?>" />
<h3><?php echo $_SESSION["email"]["Email"] ?></h3>
<p><?php //echo $_SESSION["email"]["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>
</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>
Database Saya
1 Jawaban:
Jawaban Terpilih
arti errornya karena ['EMAIL'] tidak dikenali. Yang perlu kamu lakukan lihat isi dari array session setelah dibikin <pre> die(var_dump($_SESSION['email'])); </pre>
lihat untuk email ada dimana, ambil sesuai nama keynya disitu
Tanggapan
Bikin nya dibagian mana bang?
terserah, yang penting setelah kamu bisa session emailnya
wah untuk email nya berhasil bang.. tapi untuk nama, dan photo nya tidak bisa.. apakah saya harus buat session baru untuk nama dan photo nya bang?
coba cek $user itu kamu cuma menyimpan email, untuk mengambil semua data kamu simpannya di $result, jadi kalo mau semua data simpan $resultnya disession dan pake cara sebelumnya, kalau ada masalah baru silahkan buka lapak baru ya,
Terima Kasih Bang