Membuat htaccess dengan multi nama domain untuk satu dokumen website

Pada umumnya sebuah domain memiliki satu dokumen website, namun beberapa kasus ada beberapa domain hanya memiliki satu dokumen, untuk pilihan solusi mari kita pelajari bersama.

Sebagai contoh, saya asumsikan sebuah perusahaan memiliki dua buah domain yakni

http://endangcahyapermana.com

dan

http://endangcahyapermana.net

kedua alamat tersebut mengacu pada sebuah dokumen website, bisa jadi kondisinya adalah satu yang asli, satunya lagi alias.

maka kode di htaccess agar dapat mengakses pada satu dokumen website adalah seperti contoh berikut.

RewriteEngine on

RewriteCond %{HTTP_HOST} ^endangcahyapermana.com/$ [NC,OR]
RewriteCond %{HTTP_HOST} ^endangcahyapermana.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

RewriteCond %{HTTP_HOST} ^endangcahyapermana.net/$ [NC,OR]
RewriteCond %{HTTP_HOST} ^endangcahyapermana.net$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

dengan demikian anda bisa memiliki dua nama domain untuk sebuah dokumen website.

semoga bermanfaat, wassalam.

 

 

Advertisements

Upload multi file dengan menggunakan zend framework 1

Upload file merupakan salah satu proses di dalam dunia web, berikut merupakan contoh script php untuk upload multi file dengan menggunakan framework zend 1. bagi yang tidak menggunakan framework ini, anda bisa skip.

// init upload file value
$file_1 = ”;
$file_2 = ”;
$file_3 = ”;
$file_4 = ”;

$upload = new Zend_File_Transfer_Adapter_Http();
// Limit the extensions to jpg and png files but use array notation
$upload->addValidator(‘Extension’, false, array(‘png’, ‘jpg’, ‘bmp’, ‘pdf’, ‘zip’, ‘rar’));
$adapter->addValidator(‘Size’, false, 3024000); // limit to 3 Mb

// set dest
$upload->setDestination(APPLICATION_PATH. “/../public/uploads/”);
$files = $upload->getFileInfo();

// init array info name
$arrInfoNames = array();

foreach($files as $file => $fileInfo) {

if ($upload->isUploaded($file)) {

if ($upload->isValid($file)) {
//
$info = $upload->getFileInfo($file);

// jika nama file sama dengan nama sebelumnya
// file akan dianggap sama dengan file sebelumnya
if(!in_array($info[$file][‘name’], $arrInfoNames)) {

// rename
$arrFileName = explode(‘.’,$info[$file][‘name’]);
$file_name = $this->view->SetToURI(
strtolower($arrFileName[0])) . ‘.’ . $arrFileName[1];
$file_name = date(“Ymdhis”) . rand() . “-” . $file_name;
$upload->addFilter(‘Rename’,
APPLICATION_PATH . “/../public/uploads/” . $file_name);

// And then we call receive manually
$upload->receive($file);

// simpan nama file di array info
// untuk pengecekan duplikasi nama file
$arrInfoNames[] = $info[‘name’];

// set value table
if(array_key_exists(‘file_1’, $info))
$file_1 = $file_name;
if(array_key_exists(‘file_2’, $info))
$file_2 = $file_name;
if(array_key_exists(‘file_3’, $info))
$file_3 = $file_name;
if(array_key_exists(‘file_4’, $info))
$file_4 = $file_name;

}

}
}
}

pada contoh di atas, file yang bisa diupload adalah 4 file, jika ingin lebih banyak lagi file yang akan diupload anda bisa edit kode diatas dan tambahkan file uploadnya. wassalam.

Menangani application.ini tidak terpanggil di Zendframework 1.12

Pada beberapa layanan hosting fungsi untuk pemanggilan file ini tidak izinkan alias di disabled dengan alasan keamanan atau belum tersetting. Akibatnya, zendframework tidak bisa berjalan karena konfigurasi ini tidak terpanggil seperti bawaan seharusnya.

Untuk itu beberapa jurus alternatif harus di keluarkan, caranya adalah dengan melakukan suntikan langsung pada library/zend/config/ini.php di zend untuk file ini. sehingga mengalami perubahan kode menjadi berikut.

protected function _parseIniFile($filename)
{
set_error_handler(array($this, ‘_loadFileErrorHandler’));
// $iniArray = parse_ini_file($filename, true); // Warnings and errors are suppressed
$iniArray = array
(
“production” => array (
“phpSettings.display_startup_errors” => 1,
“phpSettings.display_errors” => 1,
“includePaths.library” => APPLICATION_PATH . “../library”,
“bootstrap.path” => APPLICATION_PATH . “/Bootstrap.php”,
“bootstrap.class” => “Bootstrap”,
“appnamespace” => “Application”,
“resources.frontController.controllerDirectory” => APPLICATION_PATH . “/controllers”,
“resources.frontController.params.displayExceptions” => 1,
“phpSettings.date.timezone” => “Asia/Jakarta”,
“resources.layout.layoutPath” => APPLICATION_PATH . “/layouts/scripts”,
“resources.view” => array
(
0 => “”
)

),
“staging : production” => array
(
),
“testing : production” => array
(
“phpSettings.display_startup_errors” => 1,
“phpSettings.display_errors” => 1
),
“development : production” => array
(
“phpSettings.display_startup_errors” => 1,
“phpSettings.display_errors” => 1,
“resources.frontController.params.displayExceptions” => 1
),
“db” => array
(
“db.adapter” => “mysql”,
“db.params.host” => “localhost”,
“db.params.username” => “root”,
“db.params.password” => “”,
“db.params.dbname” => “mydb”
)

);

restore_error_handler();

Memang agak terlihat kurang rapih, tapi ini berhasil untuk di jalankan.

Wassalam.

Menjalankan Zendframework 1 Didalam Sub Folder

Secara default zendframework di operasikan dalam domain atau subdomain.
Namun, kadang kebutuhan bisa di panggil dalam sub folder. Agar dapat dijalankan dalam sub folder salah satu jalan adalah dengan melakukan konfigurasi pada htaccess pada direktory public seperti pada kode berikut.

RewriteCond %{REQUEST_FILENAME} !project/public/.*
RewriteRule ^project/(.*)$ project/public/$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /project/public/index.php [NC,L]

semoga bermanfaat, wassalam.

Membuat Captcha Sederhana di Zendframework 1.10

Kode CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) adalah salah satu solusi untuk mencegah serangan spam. captcha ini hampir ada di setiap registrasi form, tampilan contohnya adalah seperti berikut ini.

endangcahyapermana-zendframework-form-captcha

Proses sederhananya adalah program memberikan kode acak dalam bentuk gambar di form, dan pengunjung melakukan input balik kode yang sudah diberikan, lalu program akan memvalidasi kode tersebut. Jika kode yang di inputkan sama dengan kode acak yang diberikan di gambar, maka dapat dipastikan yang melakukan input adalah orang bukan mesin.

Kode acak yang di tampilkan dalam gambar memiliki tampilan yang sudah berbentuk campuran noise yang terdiri dari kombinasi titik, garis, warna dan huruf, sehingga tidak mudah untuk di kenali oleh OCRs (Optical Character Readers).

Zend framework sendiri sudah menyediakan fasilitas captcha itu sendiri, sehingga tidak usah susah-susah membuatnya. Implementasi penggunaanya sederhana, contoh kode nya adalah seperti berikut.

 

endangcahyapermana-zendframework-captcha

Cukup mudah digunakan bukan ? selamat mencoba, terimakasih. wassalam…

Cara Penggunaan Flasmessenger pada zendframework 1.12

Library atau helper flashMessanger berfungsi untuk menampilkan pesan baik dalam satu atau ketika berpindah halaman dalam satu kali urutan proses, setelah itu pesan yang tersimpan dalam variabel tersebut akan hilang dengan otomatisnya. Namanya juga flash , jadi cepat menghilang. intinya pesan hanya sekali penggunaan kurang lebih yang saya ketahui seperti itu.

penggunaan untuk set flashmessangger adalah sebagai berikut.

$this->_helper->flashMessenger->addMessage(“Pesan untuk flashmessanger disini”);

sedangkan untuk pemanggilannya dihalaman lain adalah berikut

if ($this->_helper->FlashMessenger->hasMessages()) {
$flashMessages = $this->_helper->FlashMessenger->getMessages();
$this->view->flashMessages = $flashMessages[0];
}

sekian semoga bisa menambah wawasan anda. wassalam …

 

Buat pdf di php, muncul pesan error he web.example.com page isn’t working web.example.com is currently unable to handle this request. HTTP ERROR 500

Suatu ketika bikin pdf di php dengan data yang sedikit tidak ada masalah lancar-lancar saja, tapi ketika dicoba dengan data yang banyak muncul pesan error

The web.example.com page isn’t working

web.example.com is currently unable to handle this request.
HTTP ERROR 500

lumayan bikin bingung dan menguras otak …
mau tidak mau harus dicari solusinya, the show must go on.

akhirnya gogling-gogling, solusi yang pertama katanya dengan kode ini, untuk gedein max execution timenya, tak cobain …

ini_set(‘max_execution_time’, 100);

setelah di coba, hasilnya masih sama, error

lanjut googling, nemu solusi yang kedua, yaitu dengan besarin memorinya dengan kode dibawah …

ini_set(‘memory_limit’, ‘256M’);

setelah di coba lagi, alhasil bisa tersenyum dan bisa bernafas lega ini eror pun hilang …

alhamdulillah …

Cara redirect atau pindah halaman dengan zendframework 1.x

PHP memiliki cara untuk pindah halaman atau istilah webnya adalah me-redirect halaman. salah satu contoh yang sering dipergunakan adalah ketika login user. script yang dipakai adalah sebagai berikut

header(“location:dashboard.php”);

Di zendframework versi 1.x ini untuk tujuan yang sama scriptnya berbeda, contoh script :

$this->_redirect(“dashboard/index”);

// dashboard : nama controller
// index : nama default action

Walaupun demikian, didalam prakteknya zendframework mengijinkan penggunaan cara yang pertama. silahkan mana yang paling anda sukai. semoga bermanfaat.

Memanggil Action di luar Controller di ZF 1.12

Action atau methode dalam controller atau class berisikan baris script yang memiliki tujuan tertentu. Dalam zendfremework 1.12 action tersebut dapat di panggil di luar controller tersebut, baik di panggil oleh controller lagi atau didalam view. adapun cara pemanggilannya adalah seperti contoh berikut.

di dalam action controller.

class IndexController extends Zend_Controller_Action
{

public function init()
{
/* Initialize action controller here */
$this->getHelper(‘viewRenderer’)->setNoRender();  // jika tidak menggunakan layouts
}

public function indexAction()
{

$this->view->content = $this->view->action(“index”, “frontendtrendingitem”);

}

jika di dalam view.

echo $this->action(“index”, “frontendtrendingitem”);

Mudah-mudahan pengetahuan ini bermanfaat. terimakasih.