bagaimana cara panggil data dari table selain nama user dari session yang sedang login di php ?

ini init yang saya load ke semua halaman


<?php
  session_start();
  require_once "functions/db.php";
  require_once "functions/register.php";
  require_once "functions/login.php";
?>

ini databasenya


<?php
$host = "127.0.0.1";
$user = "root";
$password = "";
$db = "wherco";

// create connection
$connect = new mysqli($host, $user, $password, $db);

// check connection
if($connect->connect_error) {
    die("connection failed : " . $connect->connect_error);
} else {
    // echo "Successfully Connected";
}

?>

ini funtion dari login


<?php

//fungsi untuk LOGIN
function cek_data($nama, $pass){
global $connect;

  //mencegah injection
$nama   = mysqli_real_escape_string($connect, $nama);
$pass   = mysqli_real_escape_string($connect, $pass);

$query  = "SELECT password FROM pelanggan WHERE username = '$nama'";
$result = mysqli_query($connect, $query);
//hasil dari fecth assoc adalah array
$hash = mysqli_fetch_assoc($result);

  if ( password_verify($pass, $hash['password']) ){
    return true;
    }else{
    return false;
  }

}

//menguji nama di database
function login_cek_nama($nama){
  global $connect;

  $nama = mysqli_real_escape_string($connect, $nama);

  $query = "SELECT * FROM pelanggan WHERE username = '$nama'";

//setelah kita menghasilkan query, kita mau hitung apakah rowsnya da atau tidak , kalu rowsnya tidak sama dengan 0 makan return true
  if ( $result = mysqli_query($connect, $query) ){
    if(mysqli_num_rows($result) != 0) return true;
    else return false ;
  }
}
 ?>

Ini halaman login


<?php

 require_once "core/init.php";

if(isset($_SESSION['user']) ){
          $_SESSION['msg'] = 'anda harus logout terlebih dahulu untuk mengakses halaman login';
        header('Location: index.php');
}

 $error='';

if( isset($_POST['submit']) ){
  $nama   = $_POST['username'];
  $pass   = $_POST['password'];

  if(!empty(trim($nama)) && !empty(trim($pass)) ){

if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $_SESSION ['user'] = $nama;//  important
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

}else{
  $error= 'namanya belum terdaftar di database';
}

  }else{
    $error= 'tidak boleh kosong';
  }
}

?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title></title>

  <!-- Latest compiled and minified css -->
     <link rel="stylesheet" href="view/css/bootstrap.min.css">
  <!-- optional theme-->
     <link rel="stylesheet" href="view/css/bootstrap-theme.min.css">
  <!--my custom css-->
     <link rel="stylesheet" href="view/css/style.css">
  <!--font-awesome-->
     <link rel="stylesheet" href="view/font-awesome/css/font-awesome.min.css">

<!---------------------------------->

<style>

body,
html{

  font-family: arial monospace;
  background-color :#eee;
}

.container{
  display: flex;
  align-items: center;
  justify-content: center;
}

.page{

height: 300px;
width: 300px;
background: #fff;
margin-top: 70px;
margin-bottom: 70px;
}

.content{
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.logo-register h2{
font-family:Chaparral Pro Light;
font-weight: bold;
font-style:none;
}

.logo-register h5{
  font-family: calibri;
  color:#808080;
  border-bottom:1px solid #eee;
  padding-bottom: 5px;

}

.form-group .form-control{
  border-radius: 0;
  border:1px solid #eee;
  padding: 5px;
}

.bawah-submit h5{  font-family: calibri;
                                color:#808080;}

.punya-akun h5{font-family: calibri;
                    color:#808080;}

#error{color: rgb(212, 19, 65);
}

</style>
</head>

<body>

              <div class="container">

                          <div class="page">
                                <div class="content">
                                    <div class="row">
                                        <div class="logo-register">
                                                <h2><a href="index.php">Wherco</a></h2>
                                              <h5>Login untuk melakukan order</h5>
                                        </div>

                                        <?php if($error != ' '){ ?>
                                            <div id="error">
                                                <?php echo $error; ?>
                                            </div> <br>
                                          <?php } ?>

                                  <form class="form-horizontal" action="login.php" method="post">
                                        <div class="form-group">
                                             <input type="text" class="form-control" style="text-transform:lowercase;"
                                              name ="username" placeholder="Nama lengkap" Required autofocus>
                                          </div>

                                            <div class="form-group">
                                                 <input type="password" style="text-transform:lowercase;"  class="form-
                                                 cotrol" name="password" id="exampleInputEmail1" placeholder="Kata
                                                 sandi" Required>
                                            </div>

                                            <div class="form-group">
                                              <input type="submit" name="submit"
                                               class="btn btn-info btn-block" value="Login">
                                            </div>

                                            <div class="punya-akun">
                                       <h5>Belum punya akun? <a href="register.php">Daftar</a> </h5>
                                          </div>

                                          <!--<div class="">
                                            <h5> Punya akun? <a href="#">Masuk</a> </h5>
                                          </div>-->
                                </div>
                          </div>
                      </div>
                    </div

ini funtion untuk register


<?php

function register_user($nama, $email, $alamat, $telp, $pass){
global $connect;

//mencegah sql injection
$nama   = mysqli_real_escape_string($connect, $nama);
$email  = mysqli_real_escape_string($connect, $email);
$alamat = mysqli_real_escape_string($connect, $alamat);
$telp   = mysqli_real_escape_string($connect, $telp);
$pass   = mysqli_real_escape_string($connect, $pass);

//ssebelum insert kita haru mmengubah sebelumnya dengana hash
$pass = password_hash($pass, PASSWORD_DEFAULT);

  $query = "INSERT INTO pelanggan (username, email, alamat, telp, password) VALUES ('$nama', '$email', '$alamat', '$telp', '$pass')";

  if( mysqli_query($connect, $query) ){

        return true;
      }else{
        return false;
  }
}

//cek_nama_kembar
function register_cek_nama($nama){
global $connect;

$nama   = mysqli_real_escape_string($connect, $nama);

//cek apakah sudah ada belum di dalama table dengan nama yang sama
$query  = "SELECT * FROM pelanggan WHERE username ='$nama'";

if( $result = mysqli_query($connect, $query) ){
  if(mysqli_num_rows($result) == 0) return true;
  else return false;
  }
}

?>

ini halaman register


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

$error='';

if( isset($_POST['submit']) ){
  $nama   = $_POST['username'];
  $email  = $_POST['email'];
  $alamat = $_POST['alamat'];
  $telp   = $_POST['telp'];
  $pass   = $_POST['password'];

if(!empty(trim($nama)) && !empty(trim($email)) && !empty(trim($alamat)) && !empty(trim($telp)) && !empty(trim($pass)) ){

  if(register_cek_nama($nama, $email) ){
    //memasukan database
          if(register_user($nama, $email, $alamat, $telp, $pass)) {
            $error= 'berhasil daftar register';
          }else{
            $error= 'gagal register';}
      }else{
      $error= ' nama sudah ada, tidak bisa daftar ';}
  }else{
      $error= 'form tidak boleh kosong';
  }
}

?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title></title>

  <!-- Latest compiled and minified css -->
     <link rel="stylesheet" href="view/css/bootstrap.min.css">
  <!-- optional theme-->
     <link rel="stylesheet" href="view/css/bootstrap-theme.min.css">
  <!--my custom css-->
     <link rel="stylesheet" href="view/css/style.css">
  <!--font-awesome-->
     <link rel="stylesheet" href="view/font-awesome/css/font-awesome.min.css">

<!---------------------------------->

<style>

body{

  font-family: arial monospace;
  background-color :#eee;
}

.container{

  display: flex;
  align-items: center;
  justify-content: center;}

.page{

padding:5px;
margin-top: 40px;
margin-bottom: 40px;
height: 510px;
width: 400px;
background: #fff;
}

.content{
  height: 100%;
  padding: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.logo-register h2{
  font-family:Chaparral Pro Light;
font-weight: bold;
}

.logo-register h5{
  font-family: calibri;
  color:#808080;
  border-bottom:1px solid #eee;
  padding-bottom: 5px;

}

.form-group .form-control{
  border-radius: 0;
  border:1px solid #eee;
  padding: 5px;
}

.bawah-submit h5{  font-family: calibri;
                                color:#808080;}

.punya-akun h5{font-family: calibri;
                    color:#808080;}

  #error{color: rgb(212, 19, 65);
                    }

</style>
</head>

<body>
              <div class="container">

                          <div class="page">
                                <div class="content">
                                    <div class="row">
                                        <div class="logo-register">
                                                <h2><a href="index.php">Wherco</a></h2>
                                              <h5>Buat akun untuk melakukan order</h5>
                                        </div>

                                              <?php
                                                  if(isset($_SESSION['msg'])) { ?>
                                                <div id="error">
                                                    <?php echo $_SESSION['msg'];
                                                    unset($_SESSION['msg']); ?>
                                                </div> <br>
                                              <?php }  ?>

                                        <?php if($error != ' '){ ?>
                                            <div id="error">
                                                <?php echo $error; ?>
                                            </div>
                                          <?php } ?>

                                  <form class="form-horizontal" action="register.php" method="post">
                                        <div class="form-group">
                                             <input type="text" class="form-control" style="text-transform:lowercase;"  name="username" placeholder="Nama lengkap" Required autofocus>
                                          </div>

                                          <div class="form-group">
                                               <input type="email" class="form-control"  name="email" placeholder="Alamat email" Required>
                                          </div>

                                          <div class="form-group">
                                              <textarea class="form-control" rows="3"  name="alamat" placeholder="Alamat tinggal" Required autofocus ></textarea>
                                            </div>

                                            <div class="form-group">
                                                 <input type="number" class="form-control"  name="telp" placeholder="Nomer yang bisa di hubungi" Required>
                                            </div>

                                            <div class="form-group">
                                                 <input type="password" style="text-transform:lowercase;"  class="form-control" name="password"   id="exampleInputEmail1" placeholder="Kata sandi untuk akun order" Required>
                                            </div>

                                            <div class="form-group">
                                              <input type="submit" name="submit" class="btn btn-info btn-block" value="Daftar">
                                            </div>

                                            <div class="bawah-submit">
                                                    <h5> Dengan mendaftar anda menyetujui Ketentuan<br>
                                                    dan Kebijakan Privasi kami </h5>
                                          </div>

                                          <div class="punya-akun">
                                            <h5> Punya akun? <a href="login.php">Masuk</a> </h5>
                                          </div>
                                </div>
                          </div>
                      </div>
                    </div

Ini halaman order



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

if( !isset($_SESSION['user']) ){

        $_SESSION['msg'] = 'anda harus punya akun untuk melakukan order';
        header('Location: register.php');
}
 ?>

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

<style>

body,
html{
  font-family: arial monospace;
  padding:0;

}

.bagian-judul-form-1{

}

.bagian-judul-form-2{
  color:#808080;
}

.bagian-kiri a{
  color:blue;
}

.bagian-kiri{
  color:#808080;
  margin-bottom: 20px;
  padding : 2px;
    }

.form-group .form-control{
  border-radius:0;
}

.form-control{
 border-radius:0;
}

</style>

<div class="tengah">

<div class="container">

    <div class="row">

      <div class="col-md-3 col-sm-12 col-xs-12">
          <div class="bagian-kiri">
            <h4><p class="">Kurang yakin? apakah mau lihat <a href="portofolio.php">portofolio</a> kami dahulu? atau bingung bagaimana <a href="order">sistem order </a> kami berjalan? kami siap membantu :) </p></h4>
          </div>
      </div>

    <div class="col-md-offset-3 col-md-6">
          <div class="bagian-judul-form-1">
            <h3>Form untuk melakukan order</h3>
          </div>

                <div class="bagian-judul-form-2">
                <h5><p class="text-justify">Mohon form ini di isi dengan jelas dan benar,
                                                                untuk memudahkan proses verivikasi order
                                                                untuk jasa desaign anda.
                                                                Terima Kasih.</p></h5>
                </div>
    </div>

    <div class="row">
        <div class="col-md-offset-6 col-md-5 col-md-offset-6">

                <fieldset disabled>
                  <div class="form-group">
                       <input type="nama" class="form-control"  id="disabledTextInput" value="<?php
                       echo $_SESSION['user'];?>"  placeholder="Nama">
                  </div>

                  <div class="form-group">
                       <input type="email" class="form-control"  id="disabledTextInput" value="<?php
                       echo $_SESSION['email'];?>"  placeholder="Email">   <!----- saat melakukan pemanggilan email , email tidak di kenali ---->
                  </div>
                </fieldset>

                  <div class="form-group">
                  <select class="form-control">
                          <option>none package</option>
                          <option>Broze</option>
                          <option>Silver</option>
                          <option>Gold</option>
                    </select>
                  </div>

                  <div class="form-group">
                      <textarea class="form-control" rows="3" placeholder="Deskripsikan latar belakang. contoh: penjualan kopi bertema minamal dengan tempat di tengah kota. nama toko -kopi rakyat-  " Required autofocus></textarea>
                  </div>

                    <div class="form-group">
                      <input type="submit" name="submit" class="btn btn-info btn-block" value="Order">
                    </div>

        </div>

</div>
</div>
</div>
</div>

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

disini saya mencoba untuk memanggil data dari session di dalam form. untuk pemanggilan session user saya berhasil tetapi untuk pemanggilan session email saya tidak berhasil, bagaimana caranya agar email dapat di panggil melalui session? saya sangat awam untuk penggunaan function, saya baru belajar tolong bantuannya gan :)

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Diperbarui 7 tahun yang lalu

19 Jawaban:

tinggal dibuat query aja biar kepanggil

 select * from table where kolom = '$_SESSION['user']'
avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 7 tahun yang lalu

itu yang jadi pertanyyaan. di mana saya harus taruh query tersebut mas ? saya baru belajar pakek function mohon pencerahan

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

di halaman order bisa

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 7 tahun yang lalu

kalo lihat scriptnya sih agan sepertinya belum mendefinisikan $_SESSION['email']. mestinya di fungsi login agan definisikan dulu $_SESSION['email'] bersamaan dengan $_SESSION['user'].

di fungsi login coba agan tambahkan fungsi ambil_data dengan query seperti ini

function ambil_data($nama){
  global $connect;

  //mencegah injection
  $nama   = mysqli_real_escape_string($connect, $nama);

  $query  = "SELECT * FROM pelanggan WHERE username = '$nama'";
  $result = mysqli_query($connect, $query);
  if($result)
  {
    $userData = mysqli_fetch_assoc($result);
  }
  else
  {
    $userData = false;
  }

  return $userData;
}

dengan return object database user tersebut di halaman login agan buat seperti ini

if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $userData = ambil_data($nama);
      $_SESSION ['user'] = $nama;//  important
      $_SESSION ['email'] = $userData->email;//  important
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

}else{
  $error= 'namanya belum terdaftar di database';
}

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

Alasan kenapa $_SESSION['email'] tidak dapat dipanggil, karena kamu belum membuat session email. Coba tambahkan dibagian ini:

 if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $_SESSION ['user'] = $nama;//  important
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

Menjadi seperti dibawah ini

 if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $_SESSION ['user'] = $nama;//  important
      $_SESSION ['session'] = $nama;//  important
      $_SESSION['email'] = $hash['email'];
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

avatar sangmisteri
@sangmisteri

22 Kontribusi 9 Poin

Dipost 7 tahun yang lalu

saya sudah buat seperti ini di paling atas halaman login.php


<?php

 require_once "core/init.php";

if(isset($_SESSION['user']) ){
          $_SESSION['msg'] = 'anda harus logout terlebih dahulu untuk mengakses halaman login';
        header('Location: index.php');
}

 $error='';

if( isset($_POST['submit']) ){
  $nama   = $_POST['username'];
  $pass   = $_POST['password'];

  if(!empty(trim($nama)) && !empty(trim($pass)) ){

if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $userData = ambil_data($nama);
      $_SESSION ['user'] = $nama;
      $_SESSION ['email'] = $email;
      //  important
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

}else{
  $error= 'namanya belum terdaftar di database';
}

  }else{
    $error= 'tidak boleh kosong';
  }
}

?>

dan saya udah buat function ambil_Data di halaman funtion login saya



function ambil_data($nama){
  global $connect;

  //mencegah injection
  $nama   = mysqli_real_escape_string($connect, $nama);

  $query  = "SELECT * FROM pelanggan WHERE username = '$nama'";
  $result = mysqli_query($connect, $query);
  if($result)
  {
    $userData = mysqli_fetch_assoc($result);
  }
  else
  {
    $userData = false;
  }

  return $userData;
}

tetapi sya amendapatkan error seperti ini



Warning: mysqli::__construct(): (HY000/2002): No connection could be made because the target machine actively refused it. in C:\xampp\htdocs\latihanphp\Tugas_Akhir\functions\db.php on line 9
connection failed : No connection could be made because the target machine actively refused it.

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

makasi mas yang udah partisipasi bantu saya, mohon pencerahan

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

lah yg error disini : db.php Coba tampilkan db.php

avatar sangmisteri
@sangmisteri

22 Kontribusi 9 Poin

Dipost 7 tahun yang lalu

ini mas db.phpnya



<?php
$host = "127.0.0.1";
$user = "root";
$password = "";
$db = "wherco";

// create connection
$connect = new mysqli($host, $user, $password, $db);

// check connection
if($connect->connect_error) {
    die("connection failed : " . $connect->connect_error);
} else {
    // echo "Successfully Connected";
}

?>

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Kalo error yang terakhir kayanya dari xampp nya.

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

kok bisa gara gara xampp om ? xampp saya udah saya update yang terbaru

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

saya juga sudah lakukan caranya mas @sangmisteri masih beum bisa juga.


if(login_cek_nama($nama) ){
    if(cek_data($nama, $pass)) {
      $_SESSION ['user'] = $nama;//  important
      $_SESSION ['session'] = $nama;//  important
      $_SESSION['email'] = $hash['email'];
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

sekarang masalah databasenya tidak ada, tetapi saat melakukukan pemanggilan session email tidak terjadi apa apa. cuma blank kosong tidak ada perubahan tidak ada error.

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

kalau ga ada error berarti $_SESSION['email'] sudah terdefinisi hanya saja valunya kosong. bisa dicoba print session email setelah deklarasi.

$_SESSION['email'] = ....;
print $_SESSION['email'];

kalau benar ada valuenya harusnya saat di panggil di manapun bisa.

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

tadi cuma gara gara cache web kok, errornya tetep mas ini


Notice: Undefined index: email in C:\xampp\htdocs\latihanphp\Tugas_Akhir\order.php on line 83

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Itu teman2 sudah jelaskan semua. Jangan buru2 fokus, perhatikan kodenya baik2. Tambahkan @ pada semua $_SESSION sehingga jadi @$_SESSION. Kalau agan tidak paham kenapa harus ditambah @ silahkan pelajari php dan cari tahu memgenai fungsi isset.

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

tetep aja mas tidak mau

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Sebenarnya error agan ini ada 2. Satu di masalah $_SESSION['email] yg belum di buat, sudah dijelaskan di atas dan sudah di buat. Kedua $_SESSION['email'] yg diecho pada halaman order.php makanya muncul notice undefine index email. Lakukan dulu pengecekan. Itu $_Session['user] dan email sudah ada nilai apa belum. Caranya bagaimana? Var_dump atau die dulu variable itu.


// Bagian ini
if(cek_data($nama, $pass)) {
      $_SESSION ['user'] = $nama;
      // buat jg $_session email
      // Cek sudah benar ada datanya atau tidak dengan di die dulu
      die($_SESSION['user']);
      // Kalau agan lihat tulisan sesuai yg diinginkan berarti tidak ada masalah. Lakukan juga pengecekan pada session email. Semua data harus ada nilainya. Kalau ada yg kosong maka berarti error ada pada proses2 sebelumnya.
      header('Location:order.php');
    }else{
      $error= 'data ada yang salah';
    }

avatar onirusama
@onirusama

265 Kontribusi 184 Poin

Dipost 7 tahun yang lalu

mohon maaf mas, saya tidak mengerti cara penyampaiannya. saya baru dalam penggunaan function. barang kali ada yang bisa contohkan cara penempatan kodenya? terima kasih

avatar waliyurachman29
@waliyurachman29

58 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban