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.

Menambahkan Recaptcha di Zend Framework 1.12

Recaptha Google merupakan fasilitas dari google untuk memberikan tambahan keamanan di form input halaman web, dengan cara pengunjung harus melakukan input kode huruf atau angka secara acak yang sudah disediakan, jika input tersebut salah maka proses input tidak akan dieksekusi. Hal tersebut dilakukan untuk menghindari adanya ancaman input secara acak yang dilakukan oleh mesin.

Untuk cara menggunakannya disini akan di kombinasikan dengan zend framework 1.12, pertama download file di link berikut.

http://www.4shared.com/rar/SdrSumNOce/recaptcha-php-111endangcahyape.html

Setelah didownload, extract file tersebut dan copy kan ke dalam direktori \library, karena recaptcha ini sudah di bundling menjadi sebuah class.

Untuk pemakainnya, masukan kode tersebut ke dalam action di controller.

// recapthca
require_once(‘recaptcha-php-1.11/recaptchalib.php’);

// view recaptcha public key (contoh key)
$publickey = “6Lcl5uASAAAAANZCzNOcVMgTrkawi63gxxxxxx”;
$this->view->recaptcha_html = recaptcha_get_html($publickey);

// recaptcha private key (contoh key)
$privatekey = “6Lcl5uASAAAAAJqKFjwcMeHq2s_xxxxx”;

$resp = recaptcha_check_answer ($privatekey,
$_SERVER[“REMOTE_ADDR”],
$_POST[“recaptcha_challenge_field”],
$_POST[“recaptcha_response_field”]);

 

if (!$resp->is_valid) {

}

 

 

 

Mengirim e-mail dengan ZF 1.12

Zendframework 1.12 menyediakan fasilitas untuk mengirimkan email. Berikut ini cara penggunaannya.

require_once ‘Zend/Mail.php’;

//
try
{
//
$bodyHtml = ‘ Sending at ‘.date(“Y-m-d H:i:s”);
@$mail = new Zend_Mail();
@$mail->setBodyHtml($bodyHtml);
@$mail->setFrom(‘from@gmail.com’, ‘ http:// ‘.$_SERVER[‘HTTP_HOST’]);
@$mail->addTo(‘endangcahyapermana@gmail.com’, ‘Recipient ‘);
@$mail->setSubject(‘from@gmail.com’);
@$mail->send($mailTransport);
}
catch (Exception $e)
{
//throw new Exception( ‘Something really gone wrong’, 0, $e);
}

Membuat pdf menggunakan dompdf-0.6.1 di ZF 1.12

Membuat PDF dapat dilakukan dengan menggunakan dompdf, untuk file-file tersebut silahkan download link berikut.

http://www.4shared.com/rar/5BOUIQkmba/dompdf-061.html

Simpan di folder library/.

Kemudian tambahkan kode berikut, masukan kode cetak sesuai dengan kebutuhan.

//
$html = <<<EOF
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<style>
body {
font-family: ‘Helvetica’;
font-size: 8px;
padding: 30px 0;
}
#header,
#footer {
position: fixed;
left: 0;
right: 0;
color: #aaa;
font-size: 0.9em;
}
#header {
top: 0;
border-bottom: 0.1pt solid #aaa;
}
#footer {
bottom: 0;
border-top: 0.1pt solid #aaa;
}
#header table,
#footer table {
width: 100%;
border-collapse: collapse;
border: none;
}
#header td,
#footer td {
padding: 0;
width: 50%;
}
.page-number {
text-align: right;
}
.page-number:before {
content: “Page ” counter(page);
}
hr {
page-break-after: always;
border: 0;
}
table {
border-collapse: collapse;
}
</style>
</head>
<body>
< div id=”header”>
<table>
<tr>
<td></td>
<td style=”text-align: right;”> {$variabel} </td>
</tr>
</table>
</div>
< div id=”footer”>
<table>
<tr>
<td style=”width:600px;”></td>
<td style=”text-align: right;width:100px;”><span class=”page-number”></span></td>
</tr>
</table>
</div>
EOF;

$html .= $contents;

$html .= <<<EOF
</body>
</html>
EOF;

//
$filename =”filename.pdf”;

//
ini_set(‘max_execution_time’, 0);
require_once “dompdf-0.6.1/dompdf_config.inc.php”;

$dompdf = new DOMPDF(‘1.0’, ‘UTF-8’);
$dompdf->set_paper(“A4″,”potrait”);

$html = mb_convert_encoding($html, ‘HTML-ENTITIES’, ‘UTF-8’);

// load the html content
$dompdf->load_html(‘<?xml encoding=”UTF-8″>’ . $html);
$dompdf->render();
$output = $dompdf->output();

// $canvas = $dompdf->get_canvas();
// $font = Font_Metrics::get_font(“helvetica”, “bold”);
// $canvas->page_text(16, 800, “Page: {PAGE_NUM} of {PAGE_COUNT}”, $font, 8, array(0,0,0));
// $dompdf->stream($filename, array(“Attachment”=>0));

$file_to_save = ‘./uploads/’ . $filename;
file_put_contents($file_to_save, $output);

Merubah Ukuran Gambar di ZF 1.12

Kebanyakan kasus ukuran gambar yang sudah di upload bisa dirubah secara otomatis, alias tidak perlu beberapa kali upload gambar yang sama tapi ukuran yang berbeda-beda. Agar ukuran bisa di rubah secara online, salah satu caranya adalah sebagai beriku, download file dibawah.

SmartResizeImage.php

Simpan di direktori application/views/helpers/

panggil di file bagian views, dengan penggunaan script berikut sebagai contoh.

$this->SmartResizeImage($file , 100 , 80 , false , $resizedFile , false , false , 100 );

Upload File di Zendframework 1.12,

Upload File di Zendframework 1.12, contoh dibawah merupakan kombinasi dengan validasi dan juga rename file.

Form


< div class=”form-group”>
<input type=”file” name=”fileupload” id=”fileupload”/>
< /div>

Proses

// Upload File
$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->setDestination(APPLICATION_PATH. “/../public/uploads/”);

// init upload
$uploadSuccess = true;

// validasi upload
$adapter->addValidator(‘Size’, false, 20480000);
if (!$adapter->isValid()) {

$uploadSuccess = false;

} else {

$adapter->addValidator(‘Extension’, false, array(‘doc’, ‘docx’, ‘xls’, ‘xlsx’, ‘pdf’, ‘jpg’, ‘png’, ‘gif’, ‘zip’, ‘rar’));
if (!$adapter->isValid()) {
$uploadSuccess = false;
}

}

if($uploadSuccess) {

foreach($adapter->getFileInfo() as $file => $info) {

if($file != ‘uploadfile’) {

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

$name = $adapter->getFileName($file);

// rename
$arrFileName = explode(‘.’, $info[‘name’]);
$file_name = preg_replace(‘/[\s\W]+/’, ‘_’, strtolower($arrFileName[0])) . ‘.’ . $arrFileName[1];

// Let’s inject the renaming filter
// $adapter->addFilter(new Zend_Filter_File_Rename(array(‘target’ => $fname, ‘overwrite’ => true)), null, $file);

// cek exists
if(file_exists(APPLICATION_PATH. “/../public/uploads/” . $file_name)) {
$adapter->addFilter(‘Rename’, APPLICATION_PATH. “/../public/uploads/”. date(“Ymdhis_”).$file_name);
} else {
$adapter->addFilter(‘Rename’, APPLICATION_PATH. “/../public/uploads/”. $file_name);
}

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

//
echo $file_name);

}

}

}
}