Membuat Jejaring Sosial sederhana dengan PHP, MYSQL, dan Bootstrap di Localhost (part 5)

Posted on Friday, October 30, 2015


Selamat Datang sobat,

terima kasih, jika masih mengikuti tutorial ini.

Mari kita lanjutkan project yangg sebelumnya sudah kita buat. di part 4 kita sudah bisa update status.
untuk yang belum membaca part 4, 

silahkan klik part 4

Di part 5, kali ini kita akan buat fungsi untuk hapus status yang sudah kita buat.

Kita akan membuat sebuah fungsi untuk menghapus status yang kita miliki. Perlu diketahui sebelumnya bahwa status yang dihapus ini tidak bisa sepenuhnya dihapus, apalagi ketika kita sudah menerapkan sistem basis data yang relasional dengan menggunakan foreign key.Disini kita akan merubah isi attribut "dihapus" yang ada pada tabel status tersebut. Nilai atribut "dihapus" dari sebuah status pada saat dibuat adalah "t" dan ketika dihapus akan bernilai "y". Dan status yang tampil pada halaman home hanya status yang tidak dihapus. Jadi yang tampil hanya yg bernilai 't' bukan?

Mari kita cek kode dari link "Hapus"
<li class="dropdown">
     <a data-toggle="dropdown" class="dropdown-toggle" href="#"><b class="caret"></b></a>
     <ul role="menu" class="dropdown-menu" style="width:50px">
      <li> <a href="hapus_status.php?id_status=<?php echo $row['id_status'];?>">Hapus</a></li>
      <!-- id_status digunakan untuk di GET pada halaman hapus_status.php nanti -->
     </ul>
</li>

Link untuk melakukan proses hapus adalah
" hapus_status.php?id_status=<?php echo $row['id_status'];?>"

Maksud dari link diatas adalah sebagai berikut :
  •   link halaman php tujuan = hapus_status.php
  • ?id_status = variabel $_GET yang memiliki nilai id_status dari status yang akan kita hapus.
  • <?php echo $row['id_status'];?> = nilai id_status yg dihapus

Buat sebuah file php baru dengan nama hapus_status.php . Isikan kode berikut :
<?php
session_start();// memulai menggunakan/memanggil variabel session
//kode dibawah ini adalah kode untuk mengambil isi dari variabel $_GET['id_user'] yang dikirim dari halaman home
  
if(isset($_GET['id_status'])){//jika $_GET['id_status'] ada isisnya maka
$id_status=$_GET['id_status']; //menyimpan nilai $_GET
}
$id_user=$_SESSION['id_user'];//variabel id_user nilainya adalah id_user yang login
  
 include"library.php";//menggunakan library.php
  $link=koneksi_db();//membuat koneksi ke database
//eksekusi query update nilai dari atribut dihapus
 $exe=mysql_query("UPDATE status set dihapus='y' where id_user='$id_user' AND id_status='$id_status'",$link) ;
  
 if($exe)//jika sukses
 {
 echo "<script>
    location.replace('home.php')</script>";
 }
 else { //jika gagal
 echo "<script>
    location.replace('home.php')</script>";
 }
 ?>
Cek komentar dari kode diatas agar mengerti maksudnya. Kemudian coba anda update sebuah status di halaman Home kemudian anda hapus. Sukses bukan? tentu saja status yang dapat kita hapus adalah status milik kita.

Berikutnya kita coba untuk membuat fitur ubah foto profil.
Pertama-tama mari kita cek file "header.php" kita
Tampilannya :

header baru
Dari kode diatas kita bisa cek link tujuan proses ganti foto adalah file"gantifoto.php". Maka dari itu kita buat terlebih dahulu file tersebut dan kosongkan isinya.
Tampilan halaman gantifoto.php yang akan kita buat adalah sebagai berikut :

tampilan gantifoto.php
Berikut adalah kode untuk membuat “gantifoto.php” :
<?php

session_start();// memakai session

include "library.php";//memakai isi library

if(isset($_SESSION['id_user'])){

if(isset($_GET['id_user'])){

$id_user=$_GET['id_user'];//mengisi variabel id_user

}

if(empty($_GET['id_user'])){

$id_user=$_SESSION['id_user'];//mengisi variabel id_user

}

$link=koneksi_db();//membuat koneksi ke database

//memulai proses query untuk mengambil nilai atribut dari yang sedang login

$query=mysql_fetch_array(mysql_query("select * from user where id_user='$id_user'",$link));

//mengisikan nilai tiap variabel

$nama_depan=$query['nama_depan'];

$nama_belakang=$query['nama_belakang'];

$photo=$query['foto_profil'];

?>
  

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title><?php echo $nama;?></title>

<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">

<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<script type="text/javascript" src="js/bootstrap.min.js"></script>

   <script type="text/javascript" src="js/scripts.js"></script>

<link href="css/bootstrap.css" rel="stylesheet" type="text/css">

</head>

<body>

<?php include"header.php"; ?>

  
<div class="container">

<div class="jumbotron">

        </div>
        
<div class="row" style="background-color:#0C9">

<div class="col-md-2"><!--mulai colmd 2-->         

    <div class="row">

        <div class="col-md-12"><!-- kolom foto profil yg login -->

            <div class="thumbnail">

                <img src="foto/<?php echo $photo;?>" class="img-circle"> <!-- bisa diganti dengan class="img-thumbnail" untuk foto bulat-->

                <div class="caption" style="background-color:#0C6">

                    <center><h4><?php echo $nama_depan.' '.$nama_belakang;?></h4></center>

                </div>

            </div>

        </div>   

                    <?php include"bagiankiri.php";?> <!-- menampilkan kotak pesan, galeri, dan teman -->

</div>

        </div><!--akhir colmd 2-->
                        

        <div class="col-md-10" style="background-color: #0FF"> <!--BAGIAN KANAN-->       

<ul class="breadcrumb"><!-- header halaman -->

    <li class="active"><b>Ganti Foto Profil</b></li>

</ul>
  

<div class="row">              

<div class="col-md-6">

<!-- Form ganti foto -->              

<form enctype="multipart/form-data"method="post" action="proses_foto.php?id_user=<?php echo $_SESSION['id_user'];?> " >

                     
            Pilih Gambar : <input type="file" name="gmb" class="form-control">
                  

                    <button class="btn btn-info" type="submit" name="kirim">GANTI</button>

                
</form>

</div>

<div class="col-md-6">
                

            </div>                                       

</div>

            <hr>                                          

</div>

</div>

</div> <!--/.CONTAINER-->


<?php footer(); ?>

</body>

</html>

<?php

}else{

header("Location:index.php");

}

?>
Sekarang coba dicek apakah tampilannya sudah sesuai gambar tampilan diatas. Anda dapat mengubah tampilan tersebut dengan mengganti bootstrap-nya.

Untuk proses penggantian foto kita memerlukan file php proses untuk ganti fotonya. Kita cek kode form ganti foto diatas :
<form enctype="multipart/form-data"method="post" action="proses_foto.php?id_user=<?php echo $_SESSION['id_user'];?> " >
                     
            Pilih Gambar : <input type="file" name="gmb" class="form-control">

                    <button class="btn btn-info" type="submit" name="kirim">GANTI</button>

</form>

Action halaman tujuannya adalah :

 proses_foto.php?id_user=<?php echo $_SESSION['id_user'];?>

Maksud link tersebut :
  • proses_foto.php adalah halaman file php tujuan
  • ?id_user= adalah variabel $_GET yang akan dikirim ke halaman proses_foto.php
  • <?php echo $_SESSION['id_user'];?> adalah isi dari id_user yang login

Untuk proses ganti foto ke database kita buat dulu file php baru dengan nama "proses_foto.php" dan kosongkan isinya. Kemudian ketikkan kode berikut :
<?php
session_start();//menggunakan session
$id_user=$_SESSION['id_user'];//mengisi veriabel id_user dengan nilai id_user yang login
/*PENGATURAN GAMBAR di FOLDER*/
 $folder = "foto/";//nama folder nya 'foto', sudah sama dengan folder dalam namaproject
 $folder = $folder . basename( $_FILES['gmb']['name']);
  
 $gambar        =($_FILES['gmb']['name']);//isi variabel gambar agar acak
  
 include"library.php";
 $link=koneksi_db();//membuat koneksi
  
 $query="update user set foto_profil = '$gambar' where id_user='$id_user'" ;//query update ke table user
 $exe=mysql_query($query,$link);//eksekusi query
 if ($exe) {
move_uploaded_file($_FILES['gmb']['tmp_name'], $folder);//memindahkan gambar ke folder foto
 header ("location:home.php");
 }
 else {
 header ("location:setting.php"); }
 ?>
Jika sudah, mari kita coba untuk ganti foto profilnya.. Nih hasil percobaannya :

tampilan ganti foto sukses
Selanjutnya kita buat fitur ganti password nya..

untuk mengganti password. Mari buat 1 file php baru dengan nama "gantipassword.php" kemudian kosongkan isinya. Kemudian ketikkan kode berikut :
<?php

session_start();

include "library.php";


if(isset($_SESSION['id_user'])){


if(isset($_GET['id_user'])){

$id_user=$_GET['id_user'];

}

  
if(empty($_GET['id_user'])){

$id_user=$_SESSION['id_user'];

}

$link=koneksi_db();

$query=mysql_fetch_array(mysql_query("select * from user where id_user='$id_user'",$link));

$nama_depan=$query['nama_depan'];

$nama_belakang=$query['nama_belakang'];

$photo=$query['foto_profil'];

?>


<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title><?php echo $nama;?></title>

<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">

<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css">

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<script type="text/javascript" src="js/bootstrap.min.js"></script>

   <script type="text/javascript" src="js/scripts.js"></script>

<link href="css/bootstrap.css" rel="stylesheet" type="text/css">

</head>

<body>

<?php include"header.php"; ?>


<div class="container">

<div class="jumbotron">

        </div>


<div class="row" style="background-color:#0C9">

<div class="col-md-2"><!--mulai colmd 2-->
           

    <div class="row">

        <div class="col-md-12"><!-- kolom foto profil yg login -->

            <div class="thumbnail">

                <img src="foto/<?php echo $photo;?>" class="img-circle"> <!-- bisa diganti dengan class="img-thumbnail" untuk foto bulat-->

                <div class="caption" style="background-color:#0C6">

                    <center><h4><?php echo $nama_depan.' '.$nama_belakang;?></h4></center>

                </div>

            </div>

        </div>   

                    <?php include"bagiankiri.php";?> <!-- menampilkan kotak pesan, galeri, dan teman -->

</div>

        </div><!--akhir colmd 2-->

                                      
        <div class="col-md-10" style="background-color: #CCC"> <!--BAGIAN KANAN-->       

<ul class="breadcrumb">

    <li class="active">Ganti Password</li>

</ul>

<div class="row">              

<div class="col-md-6">               

<form method="post" class="form-horizontal" action="password_proses.php">   

    <div class="form-group">

        <label for="inputPassword" class="control-label col-xs-4">Password Lama</label>

        <div class="col-xs-8">

            <input type="password" name="password" class="form-control" id="inputPassword" placeholder="Password Lama">

        </div>

    </div>

            <div class="form-group">

        <label for="inputPasswordbaru" class="control-label col-xs-4">Password Baru</label>

        <div class="col-xs-8">

            <input type="password" name="password_baru" class="form-control" id="inputPassword" placeholder="Password Baru">

        </div>

    </div>

            <div class="form-group">

        <label for="inputPasswordulang" class="control-label col-xs-4">Ulangi</label>

        <div class="col-xs-8">

            <input type="password" name="password_baru_ulang" class="form-control" id="inputPassword" placeholder="Ulangi Password Baru">

        </div>

    </div>

    <div class="form-group">

        <div class="col-xs-offset-2 col-xs-10">

            <button type="submit" class="btn btn-success" name="kirim" value="Simpan">Simpan</button>

        </div>

    </div>

</form>

</div>

<div class="col-md-6">
           

            </div>                                       

</div><!--/.STATUS-->

            <hr>                                          

</div><!--/.BAGIAN KANAN-->

</div>

</div> <!--/.CONTAINER-->

  

<?php footer(); ?>

</body>

</html>

<?php

}else{

header("Location:index.php");

}

?>

Kode diatas sebenarnya mirip dengan gantifoto.php hanya bagian isinya yang berbeda. 
Tampilan halaman ganti password sebagai berikut :

tampilan ganti password
Terdapat 3 buah kolom. Password lama, Password baru, dan Ulangi Password Baru. Cara kerjanya seperti ini :
  • Pertama akan dicek apakah password lama milik user yang Login sesuai dengan isi kotak "password lama". Apabila tidak sesuai maka ganti password ditolak. Apabila sesuai maka lanjut ke tahap berikutnya.
  • Kedua akan dicek Apakah isi password baru dan ulangi password sudah sama. apabila berbeda maka proses ganti password ditolak. Apabila sama maka lanjut ke tahap pergantian password.

Perhatikan "Name" yang ada pada form diatas yang akan di gunakan untuk proses ubah password. Antara lain :
  •  name="password"
  • name="password_baru"
  • name="password_baru_ulang"

Method dari form ganti password adalah POST dan actionnya adalah "password_proses.php". Maka dari itu mari kita buat 1 file php baru dengan nama "password_proses.php" dan ketikkan kode berikut :
<?php
session_start();//memulai dan menggunakan variabel session
$id_user=$_SESSION['id_user'];//mengisi id_user yang login
  
//mengambil isi variabel yang di POST dari form ganti password
$password=$_POST['password'];
$password_baru=$_POST['password_baru'];
$password_baru_ulang=$_POST['password_baru_ulang'];
  
//validasi jika isi kosong
if (empty($_POST['password'])) die ("<script>alert('Anda Belum Mengisikan Password');window.location='javascript:history.go(-1)';</script>");
if (empty($_POST['password_baru'])) die ("<script>alert('Anda Belum Mengisikan Password Baru');window.location='javascript:history.go(-1)';</script>");
if (empty($_POST['password_baru_ulang'])) die ("<script>alert('Anda Belum Mengisikan Ulangi Password Baru');window.location='javascript:history.go(-1)';</script>");
  
 include"library.php";//gunakan library
  
 $link=koneksi_db();//membuat koneksi ke database
  
 $query=mysql_fetch_array(mysql_query("select * from user where id_user='$id_user'",$link));
 //eksekusi query untuk mendapatkan password user yang sedang login
 $password_user=$query['password'];//menyimpan password user yg asli(sedang login)
  
 if($password_user!=$password)  die ("<script>alert('Password Lama Salah');window.location='javascript:history.go(-1)';</script>");
 if($password_baru!=$password_baru_ulang)  die ("<script>alert('Ulangi Password Baru Tidak Sesuai');window.location='javascript:history.go(-1)';</script>");
  
 $query1="update user set password= '$password_baru' where id_user='$id_user'";//
 $exe=mysql_query($query1,$link);
 if ($exe) {
 header ("location:home.php");
 }
 else {
 header ("location:gantipassword.php"); }
 ?>
Cek Komentar pada kode diatas untuk penjelasan kodenya.  Coba ganti password anda. Sukses kan?? hehehe

Sekian dulu tutorial part 5 ini. Semoga bermanfaat bagi para pembacanya. Untuk tutorial edit info akan dibahas pada pembuatan halaman Profil user. Pembuatan fitur pesan dan galery dan pertemanan akan hadir di episode berikutnya.

Jika sobat masih belum paham atau muncul notif error, laporkan saja di kotak komentar.
Jangan lupa di follow ya...
Terus semangat ya sobat, jangan pernah menyerah


Sampai Jumpa di tutorial berikutnya...

No comments:

Post a Comment

About Me

Yoga Iman on

Followers

© WORLD-INFO. Template by Template Responsive Design Powered By Blogger