Tutorial PHP : Login Native PHP & Upload

Assalamualaikum Semua






      Hallo semua selamat datang kembali. Saya Muhammad Aslam atau panggil saja Mas Lam akan berbagi pengetahuan tentang PHP langsung saja tanpa banyak basa basi lagi yu urang belajar PHP

Pada sesi kali ini kita  membahas tentang login,authorization dan upload file.  

Login

  1. Buat tabel di mysql dengan nama t_login dengan struktur sebagai berikut:    

     2. isi data table sebagai berikut, untuk password di setting di sha1


    3. Buat form login dengan nama file v_login.php dan simpan di folden view





   4. Buat login.php

       tambahkan kode dibawah ini 


<?php
 @session_start();

 include 'lib/library.php';

 sudahLogin();

 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  $username = $_POST['username'];
  $password = $_POST['password'];

  $sql = "SELECT * FROM t_login WHERE username = '$username' AND password = sha1('$password')";

  $data = $mysqli->query($sql) or die($mysqli->error);

  if ($data->num_rows != 0) {
   $row = mysqli_fetch_object($data);
   $_SESSION['username'] = $row->username;
   $_SESSION['level'] = $row->level;
   header("location: index.php");
  }else{
   echo "<script>alert('Username atau password salah!')</script>";
  }
 }

 include 'views/v_login.php';

 ?>

 ?>

     Kode diatas bermaksud untuk pengecekan apakah username dan password benar aatau salah

5. Membuat logout
    kodenya sebagai berikut
<?php

 session_start();
 session_destroy();
 header("location: index.php");

 ?>

session_destroy() lah yang menjadi penghancur/penghapus session.

Authorization
Authorization gampang nya adalah login otomatis saat user belum melakukan logout. jadi user tidak perlu lagi mengisi login untuk masuk namun sudah masuk ke index.php hal ini akan terus berulang sampai user logout, cara membuatnya sebagai berikut:

1. Buat sebuah function di lib/library.php sebagai berikut:




<?php
 @session_start();

 $host = 'localhost';
 $user = 'root';
 $pass = '';
 $db = 'db_pwpb18';

 $mysqli = mysqli_connect($host, $user, $pass, $db) or die ('Tidak dapat koneksi ke Database/Database tidak ada');


 function cekLogin(){
  $username = @$_SESSION['username'];
  $level = @$_SESSION['level'];

  if (empty($username) AND empty($level)) {
   header("location: login.php");
  }
 }

 function sudahLogin(){
  $username = @$_SESSION['username'];
  $level = @$_SESSION['level'];

  if (!empty($username) AND !empty($level)) {
   header("location: index.php");
  }
 }


 ?>

function cekLogin menentukan apakah user sudah login sebelumnya atau belum
function sudahLogin menentukah apakah benar bahwa user sudah login sebelumnya

2. simpan kedua method nomor 1 ke file yang dibutuhkan
untuk function cekLogin kalian hanya perlu menyimpan cekLogin() ke index.php di simpan dibawah include, sama halnya dangan function sudahLogin namun kalian menyimpannya di login.php

Upload
untuk upload, file yang di upload sekarang adalah foto. untuk mengupload sebuah foto berikut langkah langkahnya:

1. Tambahkan kolom file pada table siswa

    

   untuk menambahkannya kalian bisa menuliskan query ALTER TABLE siswa ADD file varchar(100); 

2. Buat folder images di dalam folder assets
3. Tambahkan attribut enctype='multipart/form-data' di tag form di file v_tambah.php


4. Tambahkan kode kedalam v_tambah.php
    kodenya:
<?php if ($action == 'edit.php') { ?>

<img src="assets/images/<?php echo $siswa['file'] ?>" width="80">
<input type="hidden" name="foto">
<?php } ?>
<input type="file" name="foto">
 nantinya akan menjadi seperti ini
5. tambahkan kode berikut ke dalam tambah.php


$foto = $_FILES['foto'];

if (!empty($foto) AND $foto['error'] == 0) {
$path = "assets/images/";
$upload = move_uploaded_file($foto['tmp_name'], $path.$foto['name']);
if (!$upload) {
echo "<script>alert('error')</script>";
}
$file = $foto['name'];
}

cara kerjanya Pertama ia akan mengambil sebuah file dengan variable foto kemudian dilakukan pengecekan kondisi jika foto tidak kosong dan foto error == 0 maka, foto akan diduplikat dan disimpan di path yang telah ditentukan. Jika gagal upload maka akan ada alert error dan masukkan nama foto tersebuh ke variable file yang dimana variable ini akan dimasukkan ke query INSERT INTO bersama dengan data-data yang lain.

6. Menampilkan foto di v_index.php
tambahkan kode berikut di v_index.php


<img src="assets/images/<?= $siswa['file'] ?>" width='80'>

hasilnya

7.Melakukan edit
masukan kode berikut ke tambah.php


$file = $_POST['foto'];

$foto = $_FILES['foto'];

if (!empty($foto) AND $foto['error'] == 0) {
$path = './assets/images/';
$upload = move_uploaded_file($foto['tmp_name'], $path.$foto['name']);

if (!$upload) {
echo "<script>alert('error')</script>";
}
$file = $foto['name'];
}

masukan kode berikut ke query database nya:

$sql = "UPDATE siswa SET nis = '$nis', nama_lengkap = '$nama_lengkap', jenis_kelamin = '$jenis_kelamin', kelas = '$kelas', jurusan = '$jurusan', alamat = '$alamat', golongan_darah = '$golongan_darah', nama_ibu_kandung = '$ibu', file = '$file' WHERE nis = '$nis' ";

note: hanya tambahkan yang file = '$file'

hasilnya

setelah di edit


Sekian dan terima kasih

Comments