Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

bagaimana cara menampilkan nama user yang sedang login

saya mau tanya, bagaimana cara menampilkan nama lengkap yang login?

ini databasenya (table: pengguna): id int username varchar password varchar status tinyint nama_lengkap varchar

(table: artikel): id int judul varchar isi varchar waktu timestamp tag varchar

ini index.php nya:

 <?php
require_once "core/init.php";

$super_user = $login = false;
if(isset($_SESSION['user'])){
  $login = true;
  if(cek_status($_SESSION['user']) == 0){
    $super_user = true;
  }
}

$articles = tampilkan();

if(isset($_GET['cari'])){
  $cari     = $_GET['cari'];
  $articles = hasil_cari($cari);
}

require_once "view/header.php";
?>

<form action="" method="get">
  <input type="search" name="cari" placeholder="Cari artikel disini">
</form>

<?php while($row = mysqli_fetch_assoc($articles)): ?>
<div class="each_article">
  <h3><a href="single.php?id=<?= $row['id']; ?>"><?= $row['judul']; ?></a></h3>
  <p>
    <?= excerpt($row['isi']); ?>
  </p>
  <p class="waktu"> <?= $row['waktu']; ?> </p>
  <p class="tag"> Tag: <?= $row['tag']; ?> </p>
  <p class="penulis"> Penulis: <?= $row['nama_lengkap']; ?> </p>
  <?php if($login == true): ?>
    <a href="edit.php?id=<?= $row['id']; ?>"> Edit </a>
    <?php if($super_user == true): ?>
    <a href="hapus.php?id=<?= $row['id']; ?>"> Hapus </a>
    <?php endif; ?>
  <?php endif; ?>
</div>
<?php endwhile; ?>

<?php require_once "view/footer.php"; ?>

ini kode halaman singlenya "single.php:

 <?php
require_once "core/init.php";
require_once "view/header.php";

$error = '';
$id = $_GET['id'];
$nama_lengkap = $_GET['nama_lengkap'];
if(isset($_GET['id'])){
  $article = tampilkan_per_id($id);
  while($row = mysqli_fetch_assoc($article)){
    $judul_awal   = $row['judul'];
    $konten_awal  = $row['isi'];
    $tag_awal     = $row['tag'];
  }
  $tampil_user = tampilkan_pengguna($nama_lengkap);
  while($row = mysqli_fetch_assoc($article)){
    $nama_lengkap = $row['nama_lengkap'];
  }
}

?>

<p id="judul_single">
  <?= $judul_awal; ?>
</p>

<p id="isi_single">
  <?= $konten_awal; ?>
</p>

<p id="tag_single">
  <?= $tag_awal; ?>
</p>

<p id="penulis_single">
  <?= $nama_lengkap; ?>
</p>

<?php require_once "view/footer.php"; ?>

dan ini halaman tempat fungsi-fungsinya "blog.php":

 <?php

function tampilkan(){
  $query  = "SELECT * FROM artikel";
  return result($query);
}

function tampilkan_per_id($id){
  $query  = "SELECT * FROM artikel WHERE id=$id";
  return result($query);
}

function tampilkan_pengguna($nama_lengkap){
  $query  = "SELECT * FROM pengguna WHERE nama_lengkap='$nama_lengkap'";
  return result($query);
}

function hasil_cari($cari){
  $query  = "SELECT * FROM artikel WHERE judul LIKE '%$cari%'";
  return result($query);
}

function result($query){
  global $link;
  if($result = mysqli_query($link, $query) or die ('Gagal menampilkan data')){
    return $result;
  }
}

function tambah_data($judul, $konten, $tag){
  $judul = escape($judul);
  $konten = escape($konten);
  $query = "INSERT INTO artikel (judul, isi, tag) VALUES ('$judul', '$konten', '$tag')";
  return run($query);
}

function edit_data($judul, $konten, $tag, $id){
  $query = "UPDATE artikel SET judul='$judul', isi='$konten', tag='$tag' WHERE id=$id";
  return run($query);
}

function hapus_data($id){
  $query = "DELETE FROM artikel WHERE id=$id";
  return run($query);
}

function run($query){
  global $link;

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

function excerpt($string){
  $string = substr($string, 0, 15);
  return $string . "...";
}

function escape($data){
  global $link;
  return mysqli_real_escape_string($link, $data);
}
?>

saya udah nyoba ngotak ngatik dan ngikutin beberapa cara yg saya cari di mbah gugel beberapa hari ini masih belum bisa juga.

mohon bantuannya teman-teman sekalian?

avatar MuhammadFathurRachman
@MuhammadFathurRachman

25 Kontribusi 7 Poin

Diperbarui 4 tahun yang lalu

12 Jawaban:

       $tampil_user = tampilkan_pengguna($nama_lengkap);
  while($row = mysqli_fetch_assoc($article)){
    $nama_lengkap = $row['nama_lengkap'];
  }
}

ane masih newbie juga di php itu mysqli_fetch_assoc($article) nya udah ganti coba mysqli_fetch_assoc($pengguna) gan ?

avatar nanto88
@nanto88

122 Kontribusi 56 Poin

Dipost 7 tahun yang lalu

kalo di query sql menurut sy 'SELECT nama_lengkap FROM pengguna WHERE id = '(isi id yang di dapat dari ketika user login)' ;

ketika sudah dapat.. lansung munculkan di halaman index..

sory kalo salah.. newbie juga..

avatar nataa
@nataa

35 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

terima kasih buat @nanto88 dan @nataa untuk masukannya. saya udah coba masukan dari agan-agan sekalian tapi belum bisa dan setelah mencoba yg mendekati dari masukan agan-agan akhirnya bisa, meskipun baru bisa yg di halaman singlenya saja, di indexnya belum berhasil.

ini halaman 'blog.php' tempat fungsi-fungsinya:

 function tampilkan(){
  $query  = "SELECT * FROM artikel";
  return result($query);
}

function tampilkan_per_id($id){
  $query  = "SELECT * FROM artikel WHERE id=$id";
  return result($query);
}

function tampilkan_pengguna($nama_lengkap){
  $query  = "SELECT * FROM pengguna WHERE id=$nama_lengkap";
  return result($query);
}

dan ini 'single.php' nya:

 <?php
require_once "core/init.php";
require_once "view/header.php";

$error = '';

$id = $_GET['id'];
if(isset($_GET['id'])){
  $article = tampilkan_per_id($id);
  while($row = mysqli_fetch_assoc($article)){
    $judul_awal   = $row['judul'];
    $konten_awal  = $row['isi'];
    $tag_awal     = $row['tag'];
  }
}

$nama_lengkap = $_GET['id'];
if(isset($_GET['id'])){
  $tampil_user = tampilkan_pengguna($nama_lengkap);
  while($row = mysqli_fetch_assoc($tampil_user)){
    $nama_lengkap = $row['nama_lengkap'];
  }
}
?>

<p id="judul_single">
  <?= $judul_awal; ?>
</p>

<p id="isi_single">
  <?= $konten_awal; ?>
</p>

<p id="tag_single">
  <?= $tag_awal; ?>
</p>

<p id="penulis_single">
  <?= $nama_lengkap; ?>
</p>

<?php require_once "view/footer.php"; ?>

sekarang tinggal di halaman indexnya aja yg masih belum bisa nampilin nama penulisnya berdasarkan orang yg login yg membuat postingannya masing-masing.

adakah yang bisa membantu?

avatar MuhammadFathurRachman
@MuhammadFathurRachman

25 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

ketika sudah login.. mengarah ke file single.php or ke index.php ??

pakai fungsi mysql yang ini gan mysqli_insert_id() ketika login sudah tervalidasi.. lalu di arahkan ke fungsi mysql nya itu.. sehingga dapat idnya.. kalo sudah dapat idnya... lalu munculkan data nama_lengkap sesuai dengan id tersebut..

avatar nataa
@nataa

35 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

setelah login akan langsung mengarah ke index.php

contoh kodingannya seperti apa yaa gan menggunakan mysqli_insert_id()?

soalnya jawaban saya yg sebelumnya, saya kira berhasil ternyata cuma nampilin usernya secara berurutan bukannya sesuai yg sedang login.

avatar MuhammadFathurRachman
@MuhammadFathurRachman

25 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

maksudnya gni bukan di db tambah table online isi 1 atau 0 , singkatny gni

("SELECT `name` FROM `users` WHERE `online` = '1'"); while ($ol = $db->fetchArray()) { ?>

ane sih make gini :D

avatar simuf
@simuf

43 Kontribusi 5 Poin

Dipost 7 tahun yang lalu

@simuf berarti ketika login dan logout mesti perubahan terus dunk isi field onlinenya ??

avatar nataa
@nataa

35 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

@nataa engga manual dong mas otomatis jadi di file log out sisipin line

 ("UPDATE users SET `online` = '0' WHERE `username` = '$username'");
session_destroy();

sebaliknya kalo mau login SET `online` = '1'

avatar simuf
@simuf

43 Kontribusi 5 Poin

Dipost 7 tahun yang lalu

maaf gan saya masih aga bingung, ini filenya saya kasih langsung aja deh. soalnya saya juga masih belajar tentang php.

https://drive.google.com/file/d/0B4wCddl_wCimQmF2ek9jeHRSVk0/view?usp=sharing

avatar MuhammadFathurRachman
@MuhammadFathurRachman

25 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

hmm...

hmm...

(Bentar ane lg mikir :v )

1. mau nampilin nama yg login kan? kenapa gk pke SESSION aja mas? caranya?

Ambil datanya dr Query Select untuk cek Username dan Password contoh:

 $user = mysqli_query($mysqli, "SELECT * FROM user WHERE username='$username' AND password='$password'");

$data = mysqli_fetch_array($user);
$jmluser = mysqli_num_rows($user)
if($jmluser > 0){
   //...........
   $_SESSION['namalengkap']  = $data['nama_lengkap'];
   //..
}else{
   //...........
}

jadi ente tinggal

 echo $_SESSION['namalengkap']

di halaman single atau index

2. Untuk nampilin penulis yg buat artikel ane saranin buat field id_user di table artikel, jadi pake teknik inner join, liat video tutorialnya dr Mas Hilman yg gantengs di kelas ada kok :v

avatar ianfebriyan
@ianfebriyan

5 Kontribusi 1 Poin

Dipost 7 tahun yang lalu

@ianfebriyan untuk yang nomor 2 itu videonya yg judulnya apa ya?

oh ya mas, saya udah nyoba membuat kodingan mirip seperti yg mas kasih, tapi masih belum bisa juga.

nih mas kodingannya:

 <?php
$login = false;
if(isset($_SESSION['user'])){
  $login = true;
}

$user = mysqli_query($link, "SELECT * FROM pengguna WHERE username='$nama' AND password='$pass'");

$data = mysqli_fetch_array($user);
$jmluser = mysqli_num_rows($user);
if($jmluser > 0){
   //...........
   $_SESSION['nama_lengkap'] = $data['nama_lengkap'];
   //..
}else{
   //...........
}
?>

<head>
  <title>SMK NEGERI 3 KOTA BEKASI</title>
  <link rel="stylesheet" href="view/style.css">
<meta charset="utf-8">
</head>

<div id="head">
  <img src="gambar/bg.png" alt="Logo Sekolah" width="150" height="150">
  <br><br>
  <p id="nama_sekolah">SMK NEGERI 3 KOTA BEKASI</p>
</div>

<div id="menu">
  <ul>
    <li><a href="index.php">Beranda</a></li>
    <?php if($login == true): ?>
      <li><a href="tambah.php">Tambah</a></li>
      <li><a href="logout.php">Logout</a></li>
    <?php else: ?>
      <li><a href="login.php">Login</a></li>
    <?php endif; ?>
  </ul>
</div>

<?php if($login == true): ?>
  <label id="nama_pengguna" for="">Selamat datang, <?php echo $_SESSION['nama_lengkap']; ?></label> <!--ini pengennya sesuai sama siapa yg login-->
<?php endif; ?>

maaf ya buat semuanya kalo saya lambat pahamnya, mohon bimbingannya.

avatar MuhammadFathurRachman
@MuhammadFathurRachman

25 Kontribusi 7 Poin

Dipost 7 tahun yang lalu

<div>Wah makasi banyak mas, saya pake mode session terus terapkan script ini dan nongol juga namnya wkwkw..&nbsp;</div><pre>echo $_SESSION['nama'] </pre>

avatar radigebastian_google
@radigebastian_google

1 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban