aq dah liat beberapa tutor pengantar utk Codeigniter, n berharap utk menunjukkan sesuatu yg sedikit lebih maju. Tutorial ini akan menunjukkan bagaimana utk membangun aplikasi web yg kuat untuk hosting gambar, menggunakan fleksibilitas Codeigniter. Tutorial ini akan mengajarkan tentang filosofi coding MVC
Step 11. Buat database baru "uploader"
2 .Buat 2 tables "Users" dan "Files"
3. Buat users sbg primary-key, auto-numbered ‘id’ column dan varchar columns: "Password" dan "Username"
4. Files table membutuhkan ‘id’ column dng type integer
[You must be registered and logged in to see this image.]Step 21. Buka login.php dan buat function "register" (Ini akan mengontrol smua proses registrasi)
2. Pertama qta harus check POST requests yg sudah dikirim ke server
3. Qta bisa melakukan smua ini dengan whether $_POST['username']
ini utk membuat apabila ada seseorang melakukan registrasi maka akan masuk ke db qta
- Code:
-
function register()
{
if(isset($_POST['username'])){
// User has tried registering, insert them into database.
$username = $_POST['username'];
$password = $_POST['password'];
$this->users->register($username, $password);
redirect('login');
}
else{
//User has not tried registering, bring up registration information.
$this->load->view('register');
}
}
apabila user tdk melakukan registrasi maka scr automatis akan diarahkan ke form registrasi
- Code:
-
$this->users->register($username,$password);
ini disebut function ‘register’ dng mode users, utk sementara ini tdk akan berkerja selama qta tdk membuka mode users, tp semua itu masih bisa diakali dengan class
- Code:
-
function Login()
{
parent::Controller();
$this->load->model('users');
}
sekarang buat fucntion di users.pbp
- Code:
-
function register($username, $password)
{
$new_user = array (
'username'=>$username,
'password'=>$password
);
$this->db->insert('users', $new_user);
return true;
}
Satu-satunya hal perlu dicatat dalam tampilan pendaftaran adalah SITE_URL () dan base_url () fungsi, Ini masing-masing memberikan URL situs tanpa index.php di akhiran
Keuntungan terbesar bagi adalah bahwa qta dpt mengubah struktur URL situs tanpa harus melalui semua link, qta cukup hanya membutuhkan satu perubahan dalam file konfigurasi ... kerenkan :bball:
Fungsi dalam controller qta harus mengarahkan ke halaman login lagi
Step 3Disini qta akn menggunakan sesi kelas Codeigniter meskipun dengan memakai cookies tapi akan bekerja dalam cara yang sangat mirip dengan sesi normal PHP
Buat sebuah function login button yg dimana function ini akan mengkoleksi smua informasi dalam form dan mengarahkan ke DB .. apabila data sama dengan db maka akan diteruskan ke area member apabila data tdk sama maka akan diarahkan ke regstration page
- Code:
-
function go()
{
$username = $_POST['username'];
$password = $_POST['password'];
//Returns userid if successful, false if unsuccessful
$results = $this->users->login($username,$password);
if ($results==false) redirect('login');
else
{
$this->session->set_userdata(array('userid'=>$results));
redirect('profile');
}
}
- Code:
-
function login($username, $password)
{
$query = $this->db->get_where('users', array('username'=>$username, 'password'=>$password));
if ($query->num_rows()==0) return false;
else{
$result = $query->result();
$first_row = $result[0];
$userid = $first_row->id;
return $userid;
}
}
query database mencari setiap pengguna dengan tepat username dan password yang sama.Jika tidak menemukan apapun, maka jumlah baris akan 0 dan function menjadi false
Jika data ditemukan maka fungsi aktif Codeigniter rekor untuk memuatnya sebagai obyek. Ini datang sebagai array baris DB, masing2 berisi sebuah objek dengan informasi baris. Karena qta ingin baris pertama dan satu2nya, membawanya keluar dari $ hasil, dan kemudian mengembalikan id dari itu.
qta perlu memeriksa apakah pengguna login sementara pada halaman profil melakuakan ini, qta hanya memasukkan dua baris kode ke dalam constructor dari profile controller, ni akan memeriksa bahwa sesi berisi userid a. Jika tidak, maka redirect ke halaman login Jika tidak, maka semuanya baik2 aja, dan itu akan berubah menjadi public variable
qta akan memuat dua model yang akan kita butuhkan untuk halaman profil:
- Code:
-
function Profile()
{
parent::Controller();
$this->load->model('users');
$this->load->model('files');
$this->userid = $this->session->userdata('userid');
if (!isset($this->userid) or $this->userid=='') redirect('login');
}
Hal terakhir yang perlu kita lakukan adalah memungkinkan untuk logout. Hal ini dicapai dengan hanya menetapkan userid
- Code:
-
function logout()
{
$this->session->set_userdata(array('userid'=>''));
redirect('login');
}
Step 4[You must be registered and logged in to see this image.]pertama qta harus merubah file permisinya menjadi 777
[You must be registered and logged in to see this image.]Sekarang buat file.php ... disini utk memisahkan user table dan file tablenya
- Code:
-
function get($userid)
{
$query = $this->db->get_where('files', array('owner'=>$userid));
return $query->result();
}
Pada dasarnya, itu akan semua baris di mana pemilik = id pengguna, dan mengembalikan mereka dalam array
sekarang buat antar muka dengan profil controll, Mengubah fungsi indeks dengan ini
- Code:
-
function index()
{
$data['files'] = $this->files->get($this->userid);
$this->load->view('profile', $data);
}
Ini kemudian akan secara otomatis explode the array dengan banyak variable, jadi ketika qta pergi ke tampilan? ini akan dpt mengakses db melalui hasil $ file, bukan $ data ['file']
letakkan ini di profile.php
- Code:
-
<?php foreach($files as $file): ?>
<div class="section">
<span><?=$file->name?></span>
<div style="float: right;">
<span><a href="<?=base_url()?>files/<?=$file->name?>">View</a></span>
<span><a href="<?=site_url("profile/delete/".$file->id)?>">Delete</a></span>
</div>
</div>
<?php endforeach; ?>
Loop foreach beban setiap baris dari array pada gilirannya dan membuatnya dapat diakses melalui file objek $, menggunakan sampel "bagian" sebagai template, isi semua link dan nama dengan informasi untuk objek $ file baru. bagaimana fungsi hapus bekerja kemudian, dan bagaimana melihat link bekerja setelah kita upload sesuatu.
Jika qta buka ini di browser sekarang, qta tdk akan melihat apapun, ini krn qta blm punya file upload. qta perlu untuk memperbaiki itu jadi qta harus membuat form upload
Mari qta lakukan controller pertama, terbuka 'profile.php' dan menambahkan fungsi ini:
- Code:
-
function upload()
{
if(isset($_FILES['file'])){
$file = read_file($_FILES['file']['tmp_name']);
$name = basename($_FILES['file']['name']);
write_file('files/'.$name, $file);
$this->files->add($name);
redirect('profile');
}
else $this->load->view('upload');
}