Latest Publications

Simple Login With Rails1.2.3

Setelah seharian googling, akhirnya aku dapat sedikit pencerahan mengenai sript login pake rails versi 1.2.3 meskipun masih tanpa enkripsi. Secara umum seperti berikut :

Pertama adalah Login Controller

class LoginController < ApplicationController

def index
end

def login
end

def cek_login

if request.post?
if @session["user"] = User.authenticate(params[:login][:name],params[:login][:password])
flash[:notice] = “Login Sukses!”
redirect_to :action => “index”
else
if params[:login][:name] == “”
flash[:notice] = “Username belum diisi.”
elsif params[:login][:password] == “”
flash[:notice] = “Password belum diisi”
else
flash[:notice] = “Username atau password salah”
end
redirect_to :action => “login”
end
end
end

end

Berikutnya Login Model

class Login < ActiveRecord::Base
validates_uniqueness_of :name,
:message => “— Username Sudah Dipakai”
validates_presence_of :name,
:message => “— Masukkan Username”
validates_confirmation_of :password,
:message => “— Konfirmasi password tidak sama”
validates_presence_of :password,
:message => “— Masukkan Password”

def self.authenticate(name, password)

find_first(

[ "name = '%s' AND password = '%s'", name, password ]

)

end
end

Dan yang terakhir adalah Login Form (app/views/login/login.rhtml)

<%= stylesheet_link_tag ’scaffold’ %>
<p><font color=”red”><strong><%= flash[:notice] %></strong></font></p>

<%= error_messages_for :login %>
<br />
<strong>Login to your account or <%= link_to “Register”, :action => “adduser” %></strong>
<% form_for :login, :url => {:action => :cek_login} do |f| %>
<div id=”head”>
<table>
<tr>
<td>Username *</td>
<td>:</td>
<td><%= f.text_field :name %></td>
</tr>
<tr>
<td>Password *</td>
<td>:</td>
<td><%= f.password_field :password %></td>
</tr>
</table>
</div>
<br />
<%= submit_tag ‘Login’ %>
<% end %>

Bookmarks:
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • Twitter

How to: Install RubyOnRails in Fedora Core 7

Pada kesempatan kali ini, aku akan coba nulis tentang cara instalasi RubyOnRails pada Fedora Core 7.

Install Ruby

Pertama kali yang kita perlukan adalah install paket yang berhubungan dengan ruby.

Jika kita telah memilih paket Ruby selama proses instalasi FC7, versi yang terinstal adalah versi yang lama. Versi lama tersebut misalnya versi 1.8.6-2 sedangkan pada pencarian dengan yum (yum search) sudah menunjukkan update hingga versi 1.8.6.36-3. Oleh karena itu lebih mudah jika kita install Ruby secara manual (seperti petunjuk di bawah) setelah instalasi FC7 selesai, jika yang kita inginkan adalah versi terakhir dari software tersebut.

Jika kita baru saja menyelesaikan instalasi FC7 atau sekarang adalah pertama kali kita menjalankan proses yum pada sistem, kita perlu menjalankan set up yum :

$ yum grouplist

Kemudian kita memerlukan akses sebagai root :

$ su -

Install semua paket yang berhubungan dengan Ruby :

# yum install ruby ruby-libs ruby-devel ruby-irb ruby-ri ruby-rdoc ruby-docs

Tergantung dari kebutuhan aplikasi, kita dapat menambahkan paket-paket berikut :

# yum install eruby eruby-libs eruby-devel bsf ruby-tcltk

Install Mysql

Jika kita belum memilih mysql pada saat instalasi FC7, kita bisa menjalankan command berikut :

# yum install mysql mysql-devel mysql-server

Install RubyGems

Sangat diajurkan untuk instal Rails dengan RubyGems :

# wget http://rubyforge.org/frs/download.php/20989/rubygems-0.9.4.tgz

Pindahkan hasil download, katakanlah ke /opt, unzip, dan install :

# mv rubygems-0.9.4.tgz /opt/
# cd /opt
# tar xvfz rubygems-0.9.4.tgz
# cd rubygems-0.9.4
# ruby setup.rb

Install Rails

# gem install rails –include-dependencies

Kadang-kadang untuk pertama kali install akan gagal seperti gagal menemukan paket, just do it again.

Setup MySQL and Install Rails MySQL interface

Seperti biasa kita memerlukan akses root MySQL :

# service mysqld restart
# mysqladmin -u root password ‘your-mysql-root-password’

Ini adalah instalasi standar MySQL untuk library Rails :

# gem install mysql — –with-mysql-config=/usr/bin/mysql_config

Rails Test

Untuk tes Rails sudah benar-benar terinstal, buat satu project mudah di direktori lokal :

# rails test
# cd test
# ruby script/server

Dan kemudian kita arahkan browser kita ke :

http://localhost:3000/

Jika kita sudah menemukan halaman depan Rails, semua telah terinstall dengan sukses.

Bookmarks:
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • Twitter

captcha security images

Sebagian besar dari programmer pasti sudah mengetahui, bahkan sudah banyak yang mampu membuat kode keamanan untuk menangani spam atau biasa dikenal sebagai Completely Automated Public Turing test to tell Computers and Humans Apart (Captcha) :thumbs . Captcha berfungsi sebagai penguji otomatis untuk membedakan antara komputer dan manusia. Algoritma CAPTCHA ini digunakan untuk melawan spambot, yakni sebuah script yang menjelajahi beberapa aplikasi forum diskusi, shoutbox, atau guestbook dan melakukan spamming di sana. Captcha bisa ditemui hampir di semua website, misalnya saja saat registrasi email pada yahoo, google atau yang lainnya.

Pada kesempatan kali ini saya akan memberikan satu contoh mudah dalam membuat captcha. Proses pertama adalah membuat satu file php yang berisi script berikut :

File : captcha.php

<?php
session_start();
$outputcharacters = 6;
$range = “2347ABCDEFGHJKLMNPRTVWXY”;
$i = 0;
while ($i < $outputcharacters)
{
$code .= substr($range, mt_rand(0, strlen($range)-1), 1);
$i++;
}
$_SESSION["security_code"] = $code;

//simple captcha just create image.
header(“Content-type: image/png”);

$im = imagecreate(60, 20);

// black background and orange text
$bg = imagecolorallocate($im, 0, 0, 0);
$textcolor = imagecolorallocate($im, 242, 193, 0);

// write the string at the middle
imagestring($im, 5, 3, 2, $code, $textcolor);
imagepng($im);
imagedestroy($im);

?>

File diatas akan dipakai untuk create-image-dynamic berdasarkan karakter2 yang ada pada variable range ($range) secara random yang kemudian di simpan pada session. Oleh karena itu, pada saat pengisian form at least kita harus menampilkan image-dinamic tersebut. Misalnya seperti ini :

File : index.php

<?php
echo ”
<form action=action.php method=post>
Pesan: <input type=text name=message><br>
<img src=captcha.php><br>
Security Code: <input id=security_code name=security_code type=text><br>
<input type=submit name=submit value=Submit>
</form>”;
?>

Sedangkan pada proses berikutnya adalah validasi session dengan kode yang dikirim.

File : action.php

<?php
session_start();

if( isset($_POST['submit']))
{
if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) )
{
echo ‘Terimakasih Pesan anda: “‘.$_POST['message'].’”‘;
}
else
{
echo ‘Sorry, anda memasukkan security code yang salah<br />’;
include “index.php”;
}
}
else
{
include “index.php”;
}
?>

Bookmarks:
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • Twitter

create csv file

Berikut ini adalah contoh script php yang bisa dipakai jika kita ingin membuat file CSV. Bisa juga dikombinasikan dengan data2 yang ada di dalam database.

<?php

$list = array (
‘aaa,bbb,ccc,dddd’,
‘123,456,789′,
‘”aaa”,”bbb”‘
);

$fp = fopen(‘file.csv’, ‘w’);

foreach ($list as $line) {
fputcsv($fp, split(‘,’, $line));
}

fclose($fp);

?>

Bookmarks:
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • Twitter

upload file ke server pada PHP

Dalam pembuatan sebuah website interaktif tak jarang kita memanfaatkan fasilitas upload pada website tersebut. Sedangkan untuk script upload yang biasa digunakan dalam php adalah upload dengan method post. Fasilitas ini seharusnya diikuti dengan menggunakan validasi PHP dan memanipulasi sebuah fungsi, dan anda memiliki kontrol penuh untuk mengizinkan orang-orang dengan hak akses tertentu untuk melakukan proses upload.
Sebuah form untuk file upload dapat dibuat seperti ini :

formupload.php

<!– The data encoding type, enctype, MUST be specified as below –>
<form enctype=”multipart/form-data” action=”process.php” method=”POST”>
<!– MAX_FILE_SIZE must precede the file input field –>
<input type=”hidden” name=”MAX_FILE_SIZE” value=”30000″ />
<!– Name of input element determines name in $_FILES array –>
Send this file: <input name=”userfile” type=”file” />
<input type=”submit” value=”Send File” />
</form>

Fungsi dari hidden field MAX_FILE_SIZE adalah menyatakan kapasitas maksimal file yang akan di upload untuk dilakukan pengecekan oleh php nantinya.
Pastikan pada form terdapat attribute enctype=”multipart/form-data”, jika tidak proses upload tidak akan berjalan.

Dengan menggunakan script $_FILE pada PHP kita dapat mengetahui beberapa keterangan mengenai file yang di upload.
Keterangan yang didapat adalah sebagai berikut :

$_FILES['userfile']['name'] –> nama file yang diupload
$_FILES['userfile']['type'] –> tipe file yang diupload
$_FILES['userfile']['size'] –> ukuran file yang diupload
$_FILES['userfile']['tmp_name'] –> nama file sementara(temporary) pada saat upload
$_FILES['userfile']['error'] –> kode error yang mungkin terjadi pada file yang diupload

Keterangan kode error jika :
0 -> tidak ada error ketika upload
1 -> kapasitas file melebihi yang ditentukan di php.ini(upload_max_filesize)
2 -> kapasitas file melebihi yang ditentukan di form html(MAX_FILE_SIZE)
3 -> file tidak ter upload semua(hanya terkirim sebagian)
4 -> tidak ada file yang di upload
6 -> file temporary tidak bisa ditemukan di server(bisa karena terhapus maupun cacat file)
7 -> gagal penyimpanan di server(bisa dikarenakan oleh permission dari server)

Berikut ini adalah contoh file untuk melakukan upload :

process.php

<?php

$uploaddir = ‘/var/www/uploads/’; //direktori upload file
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo ‘<pre>’;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo “sukses upload file!\n”;
} else {
echo “gagal upload file!\n”;
}

echo ‘Beberapa hasil debug:’;
print_r($_FILES);

print “</pre>”;

?>

Source : PHP Manual

Bookmarks:
  • Facebook
  • Google Bookmarks
  • Digg
  • LinkedIn
  • Twitter