<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Sahat Tambunan &#187; Share Knowledge</title>
	<atom:link href="http://blog.sahat-tambunan.com/category/share-knowledge/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sahat-tambunan.com</link>
	<description>my personal blog, a personal view of the global world</description>
	<lastBuildDate>Thu, 03 Nov 2011 02:57:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Reset ML-1640 and ML-2240 for Refill Toner</title>
		<link>http://blog.sahat-tambunan.com/2009/11/28/reset-ml-1640-and-ml-2240-for-refill-toner/</link>
		<comments>http://blog.sahat-tambunan.com/2009/11/28/reset-ml-1640-and-ml-2240-for-refill-toner/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 18:11:35 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=540</guid>
		<description><![CDATA[As I&#8217;ve shared on my previous post about how I tried to look for soft-solution for resetting a Samsung ML-2240 so it can use refill toner, in this post I will give the download link and the howto. Instead of giving you the whole package, I provide them in 2 packages for each printer model, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.sahat-tambunan.com/wp-content/uploads/2009/11/ml-2240-2.jpg" alt="Samsung ML-2240" title="Samsung ML-2240" width="250" height="199" style="float:left;margin-right:10px;" />As I&#8217;ve shared on my previous post about <a href="http://blog.sahat-tambunan.com/2009/11/27/reset-samsung-ml-2240-to-use-refill-toner/">how I tried to look for soft-solution for resetting a Samsung ML-2240 so it can use refill toner</a>, in this post I will give the download link and the howto. Instead of giving you the whole package, I provide them in 2 packages for each printer model, the raw package and the simple package.</p>
<p><strong>The Raw Package</strong> contains the original firmware upgrader from Samsung with the patcher and firmware downloader. With this package you&#8217;ll need to run the complete steps I did.</p>
<p><strong>The Simple package</strong> contains only the patched version of firmware so you only need to do the final step I did.</p>
<p>Feel free to use whichever package you prefer. But before we begin, please read carefully these facts:</p>
<ol>
<li>The patcher are <strong>NOT</strong> made by me, all credit goes to the original creator which I unfortunately don&#8217;t know</li>
<li>The firmware upgrader included in the raw package are official version downloaded from Samsung website</li>
<li>The firmware file included in the simple package are the <em>patched</em> version</li>
<li>I provide the links and the manual but please <strong>use it at your own risk</strong></li>
<li>I&#8217;ve run the patched for a Samsung ML-2240 and it worked, but I never test the fix for ML-1640, however I also supply the file because it&#8217;s provided by the same patcher</li>
<li>My operating system is Windows XP SP2</li>
</ol>
<p><span id="more-540"></span></p>
<blockquote>
<h3>Raw Package for ML-1640</h3>
<p>You will find 5 files in this package:</p>
<ul>
<li><strong>ML-1640_V1.01.00.83.exe</strong> is the official firmware upgrader</li>
<li><strong>downl1640.bat</strong> is the firmware downloader (to printer)</li>
<li><strong>fix1640.bat</strong> is the firmware patcher</li>
<li><strong>fixml40.exe</strong> is the <em>tools</em> run by the patcher</li>
<li><strong>usbprns2.exe</strong> is the <em>tools</em> run by the downloader</li>
</ul>
<p><del datetime="2010-06-12T16:24:01+00:00" style="color:#900;">Click here to download Raw Package for ML-1640</del></p>
<h3>Raw Package for ML-2240</h3>
<p>You will find 5 files in this package:</p>
<ul>
<li><strong>ML-2240_V1.01.00.83.exe</strong> is the official firmware upgrader</li>
<li><strong>downl2240.bat</strong> is the firmware downloader (to printer)</li>
<li><strong>fix2240.bat</strong> is the firmware patcher</li>
<li><strong>fixml40.exe</strong> is the <em>tools</em> run by the patcher</li>
<li><strong>usbprns2.exe</strong> is the <em>tools</em> run by the downloader</li>
</ul>
<p><del datetime="2010-06-12T16:24:01+00:00" style="color:#900;">Click here to download Raw Package for ML-2240</del></p>
<h3>Raw Package Howto</h3>
<p>Please follow these steps if you use the Raw Package:</p>
<ol>
<li>Extract the package, by default it will go to a new folder with the same name as the package</li>
<li>Run the official firmware upgrader (ML-XX40 _V1.01.00.83.exe)</li>
<li>Choose which connection is used for the printer (USB/Network), afaik this printer model is only available with USB connection</li>
<li>See the temporary folder used for the firmware on 2nd panel &#8220;Select Downloaded Firmware&#8221; in File Name field. Open the specified folder and copy the specified filename (with fls extension) to the package folder</li>
<li>Now close the firmware upgrader</li>
<li>Run the firmware patcher (fixXX40.bat) and you will find new firmware file in the same folder with prefix &#8220;FIX_&#8221;, press any key to exit the patcher</li>
<li>Make sure your printer is turned on and is properly connected to your computer.</li>
<li>Run the firmware downloader (downlXX40.bat), DO NOT turn off or disconnect the printer/computer during this process</li>
<li><del datetime="2010-02-10T03:13:26+00:00">That should be it, now press any key to exit the downloader, turn off your printer for about 10 seconds and turn it back on.</del> <span style="color:#900;">Updated BASED ON <strong>ooppoo</strong> comment on February 9th, 2010 at 2:43 am,  DO NOT TURN OFF OR DISCONNECT THE PRINTER/COMPUTER AFTER YOU EXIT THE DOWNLOADER, wait minimum 10 seconds after closing the window before you turn off your printer.</span> Then wait another 10 seconds before turning your printer back on</li>
</ol>
</blockquote>
<blockquote>
<h3>Simple Package for ML-1640</h3>
<p>You will find 3 files in this package:</p>
<ul>
<li><strong>FIX_ML1640_V1010083.fls</strong> is the patched firmware</li>
<li><strong>downl1640.bat</strong> is the firmware downloader (to printer)</li>
<li><strong>usbprns2.exe</strong> is the <em>tools</em> run by the downloader</li>
</ul>
<p><del datetime="2010-06-12T16:24:01+00:00" style="color:#900;">Click here to download Simple Package for ML-1640</del></p>
<h3>Simple Package for ML-2240</h3>
<p>You will find 3 files in this package:</p>
<ul>
<li><strong>FIX_ML2240_V1010083.fls</strong> is the patched firmware</li>
<li><strong>downl2240.bat</strong> is the firmware downloader (to printer)</li>
<li><strong>usbprns2.exe</strong> is the <em>tools</em> run by the downloader</li>
</ul>
<p><del datetime="2010-06-12T16:24:01+00:00" style="color:#900;">Click here to download Simple Package for ML-2240</del></p>
<h3>Simple Package Howto</h3>
<p>You only need to run the firmware downloader (downlXX40.bat), DO NOT turn off or disconnect the printer/computer during this process. <del datetime="2010-02-10T03:13:26+00:00">That should be it, now press any key to exit the downloader, turn off your printer for about 10 seconds and turn it back on.</del> <span style="color:#900;">Updated BASED ON <strong>ooppoo</strong> comment on February 9th, 2010 at 2:43 am,  DO NOT TURN OFF OR DISCONNECT THE PRINTER/COMPUTER AFTER YOU EXIT THE DOWNLOADER, wait minimum 10 seconds after closing the window before you turn off your printer.</span> Then wait another 10 seconds before turning your printer back on
</p></blockquote>
<p>I don&#8217;t know about any legal issues of providing these files and howto, please feel free to share it with me if you do <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  thanks</p>
<p><a class="amazon-link" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26redirect%3Dtrue%26ref_%3Dsr%255Fnr%255Fp%255Fprinter%255Foutput%255F0%26bbn%3D172648%26qid%3D1263146476%26rnid%3D107433011%26rh%3Dn%253A541966%252Cn%253A172635%252Cn%253A172648%252Cp%255F4%253ASamsung%252Cp%255Fprinter%255Foutput%253AMonochrome&#038;tag=blosahtam-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=390957">&raquo; Click here to buy a Samsung Monochrome Laser Printer &laquo;</a><img src="https://www.assoc-amazon.com/e/ir?t=blosahtam-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2009/11/28/reset-ml-1640-and-ml-2240-for-refill-toner/feed/</wfw:commentRss>
		<slash:comments>229</slash:comments>
		</item>
		<item>
		<title>Reset Samsung ML-2240 to use Refill Toner</title>
		<link>http://blog.sahat-tambunan.com/2009/11/27/reset-samsung-ml-2240-to-use-refill-toner/</link>
		<comments>http://blog.sahat-tambunan.com/2009/11/27/reset-samsung-ml-2240-to-use-refill-toner/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 16:20:02 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=527</guid>
		<description><![CDATA[Our office just bought a new printer this month. It’s a Samsung Mono Laser Printer ML-2240. Even with toner save mode we didn&#8217;t need 1 month to dry down the pre-packed toner (^^) At first I thought it was cool to have the smart panel alerting us that the toner was almost empty. But to [...]]]></description>
			<content:encoded><![CDATA[<p>Our office just bought a new printer this month. It’s a Samsung Mono Laser Printer ML-2240. Even with toner save mode we didn&#8217;t need 1 month to dry down the pre-packed toner (^^) At first I thought it was cool to have the <em>smart panel</em> alerting us that the toner was almost empty. But to keep having this alert even after we refill the toner&#8230; hm&#8230; It started to become a bit annoying. Well guess what! The worst has yet to come. Shortly, the printer refuse to print at all and the (not so) smart panel keeps alerting us of exhausted toner.</p>
<p><img src="http://blog.sahat-tambunan.com/wp-content/uploads/2009/11/ml-2240-1.jpg" alt="Samsung ML-2240" title="Samsung ML-2240" width="250" height="168" style="float:left;margin-right:10px;" />As usual, google was the first thing I did. Sadly, most of the answers of this problem I could found were short circuiting 2 pins of a chip inside the printer. Hell no! I ain’t going to do anything like that to a new printer. Well, I’m not really good at handling such tiny things anyway <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  </p>
<p>But, after some times of struggles, I finally found another solution without disassembling the printer. It said we could reset it by upgrading the printer firmware. Hm, sounds like a very good solution. So the next hunt begins. I searched for the printer firmware everywhere with no luck. The guy in the forum said he downloaded it from Samsung website, but I can’t seem to find it. Another BIG THANKS to google, their cache still keep Samsung page that offer the download. I’m not sure why, but looks like Samsung removed the download link from their website. My guess is it was for the same reason why I was looking for it <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  hehe</p>
<p><span id="more-527"></span></p>
<p>It was very easy to upgrade the firmware with the official software from Samsung. It only took a few minutes. But strangely… nothing was changed. I checked and made sure the firmware is upgraded successfully. I tried to rerun the firmware upgrade again, but it refused to do so because the printer already had the same firmware version. Damn, another dead end.</p>
<p>I don’t really like giving up, so I looked again some of the downloaded files and found a small promising light from a set of files. It turned out that these files can “fix” the firmware and download it to the printer. Hola! All I needed then was the firmware file, because it wasn’t provided. I remembered the application from Samsung was saving this file to a temporary folder. So I run it again, grabbed the firmware file from the temp folder, run the “fix”, downloaded it to printer and… Tara! This time it worked (^^) phew… </p>
<p>Anyway, so much for the story, I don’t know if it’s illegal to supply these files but I uploaded it to my website. Feel free to use it in your own risk, choose either the complete steps / simple steps and download the according file. Whoops, it’s not here, please <a href="http://blog.sahat-tambunan.com/2009/11/28/reset-ml-1640-and-ml-2240-for-refill-toner/">get the patcher and steps to reset Samsung ML-2240 for refill toner on my next post</a> <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p><a class="amazon-link" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26redirect%3Dtrue%26ref_%3Dsr%255Fnr%255Fp%255Fprinter%255Foutput%255F0%26bbn%3D172648%26qid%3D1263146476%26rnid%3D107433011%26rh%3Dn%253A541966%252Cn%253A172635%252Cn%253A172648%252Cp%255F4%253ASamsung%252Cp%255Fprinter%255Foutput%253AMonochrome&#038;tag=blosahtam-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=390957">&raquo; Click here to buy a Samsung Monochrome Laser Printer &laquo;</a><img src="https://www.assoc-amazon.com/e/ir?t=blosahtam-20&#038;l=ur2&#038;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2009/11/27/reset-samsung-ml-2240-to-use-refill-toner/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Pendekatan untuk Menjauhkan Iframe Injection</title>
		<link>http://blog.sahat-tambunan.com/2009/07/28/pendekatan-untuk-menjauhkan-iframe-injection/</link>
		<comments>http://blog.sahat-tambunan.com/2009/07/28/pendekatan-untuk-menjauhkan-iframe-injection/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 17:28:16 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Idea]]></category>
		<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=423</guid>
		<description><![CDATA[Menyambung post terakhir mengenai perkenalan dengan iframe injection, kunci utama yang harus kita perhatikan terletak pada poin kedua dari 8 kesimpulan yang saya share. Tidak pernah terbayangkan oleh saya data account FTP kami bisa sampai bocor, tapi faktanya itulah yang terjadi. Agar bisa menentukan pendekatan apa yang perlu kita lakukan untuk menjauhi iframe injection kita [...]]]></description>
			<content:encoded><![CDATA[<p>Menyambung post terakhir mengenai <a href="http://blog.sahat-tambunan.com/2009/07/24/berkenalan-dengan-iframe-injection/">perkenalan dengan iframe injection</a>, kunci utama yang harus kita perhatikan terletak pada poin kedua dari 8 kesimpulan yang saya share. Tidak pernah terbayangkan oleh saya data account FTP kami bisa sampai bocor, tapi faktanya itulah yang terjadi. Agar bisa menentukan pendekatan apa yang perlu kita lakukan untuk menjauhi iframe injection kita perlu lebih tahu mengenai segala kemungkinan penyebab kebocoran dan teknik pencurian data account FTP tersebut.</p>
<h3>Siapa yang mencuri data account FTP?</h3>
<p>Komputer tim kami yang memiliki data account FTP seharusnya cukup terjaga dalam hal keamanan. Saya sendiri tidak bisa percaya adanya kebocoran data account FTP sebelum akhirnya benar-benar terbukti dari log FTP. Lalu bagaimana data tersebut dapat bocor? Seperti yang saya informasikan pada post sebelumnya juga, saya bukan seorang ahli di bidang keamanan. Berdasarkan logika ada 3 kemungkinan penyebab kebocoran, berikut saya urutkan berdasarkan kemungkinan tertinggi:</p>
<ol>
<li>Ada Malware yang berhasil menyusup ke komputer Tim</li>
<li>Hosting Server terkena hack dan data FTP tercuri</li>
<li>Serangan langsung ke jaringan kantor untuk mencuri data FTP</li>
</ol>
<p>Karena serangan iframe injection lebih bersifat massal maka kemungkinan ketiga dapat kita abaikan. Karena kemungkinan kedua ialah perbaikan yang harus dilakukan oleh pihak hosting, maka tidak akan saya bahas di sini. Jadi pendekatan yang akan kita lakukan untuk menjauhkan web kita dari iframe injection ialah berdasarkan kemungkinan pertama, yaitu Malware.</p>
<p><span id="more-423"></span></p>
<h3>Bagaimana data account FTP bisa tercuri?</h3>
<p>Menurut wiki Malware ialah singkatan dari <em>malicious software</em>. Mungkin singkatnya bisa kita artikan sebagai barangempuk (software) yang jahat. Lalu bagaimana cara malware tersebut berhasil mencuri data account FTP? Ada 3 teknik pencurian yang saya tahu mungkin dilakukan, berikut saya urutkan berdasarkan kemungkinan terendah:</p>
<ol>
<li><strong>Merekam penggunaan keyboard (keylogging)</strong>
<p>Salah satu teknik pencurian account ialah dengan merekam data penggunaan keyboard sebuah komputer. Tapi sebenernya kurang tepat bila malware menggunakan metode ini untuk mencuri data account FTP, terutama karena hampir semua <em>FTP Client</em> dapat menyimpan data tersebut sehingga user tidak perlu lagi melakukan pengetikan user dan password pada setiap akses. Jadi sangat kecil kemungkinan bahwa teknik ini yang digunakan.</p>
</li>
<li><strong>Mencuri data Server dari FTP Client</strong>
<p>Karena hampir semua <em>FTP Client</em> dapat menyimpan data account FTP, teknik ini lebih masuk akal dari pada keylogging. Tapi masih lumayan rumit untuk diterapkan karena setiap <em>FTP Client</em> memiliki cara penyimpanan sendiri yang pasti tidak sama.</p>
</li>
<li><strong>Mengendus koneksi FTP (sniffing)</strong>
<p>Cara ini yang paling mudah dan mungkin dilakukan oleh Malware. Dia tidak perlu repot-repot mencari <em>FTP Client</em> apa yg ada pada sebuah komputer serta mencari tahu bagaimana penyimpanan data account FTP. Cukup menunggu adanya koneksi FTP dan syut, data account FTP yang dikirimkan bisa langsung dicopet.</p>
</li>
</ol>
<h3>Amankan data account FTP kita sekarang!</h3>
<blockquote><p>&#8220;Anda bisa jadi korban berikutnya!&#8221;</p></blockquote>
<p>Itulah slogan yang akhir-akhir ini sering kita lihat di TV dalam iklan memerangi terorisme (^_^) Jadi bagaimana cara mengamankan data account FTP kita? Saya menerapkan pendekatan menjadi 9 poin dalam 3 tingkatan:</p>
<p><strong>PERTAMA, amankan semua komputer dari malware.</strong></p>
<ol start="1">
<li>Gunakan AntiVirus yang ampuh, terpercaya dan mudah untuk diupdate.</li>
<li>Pastikan Browser selalu terupdate untuk mencegah adanya celah keamanan dari versi lama. Bila ingin menguji kompatibilitas web dengan browser versi lama, gunakanlah komputer lain untuk pengujian.</li>
<li>Jangan abaikan peringatan keamanan dari browser/antivirus saat mengakses suatu web meskipun web itu ialah milih perusahaan yang sangat kita percaya atau bahkan pemerintah. </li>
</ol>
<p><strong>KEDUA, seandainya masih lolos, minimalkan kemungkinan tercurinya data.</strong></p>
<ol start="4">
<li>Cara paling ekstrim ialah jangan pernah menyimpan password. Ini memang salah satu alternatif yang bisa kita pilih, tapi saya rasa kurang praktis.</li>
<li>Gunakan FTP Client yang tidak menyimpan password secara polos. Saya tidak sempat menguji atau mencari sebanyak-banyaknya, tapi saya tahu <a href="http://www.coreftp.com/" target="_blank">Core FTP</a> ialah salah satunya.</li>
<li>Selalu gunakan koneksi <a href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol" target="_blank">SFTP</a> (SSH FTP/Secure FTP). Koneksi FTP biasa mengirimkan data account FTP secara polos sehingga akan sangat mudah di curi. Koneksi SFTP terenkripsi sehingga jauh lebih aman. Pastikan FTP Server dan Client anda keduanya mendukung koneksi tersebut.</li>
</ol>
<p><strong>KETIGA, seandainya masih juga tercuri, minimalkan dampak penyerangan.</strong></p>
<ol start="7">
<li>Bagi yang memiliki lebih dari satu web pada satu server, buatlah data account FTP terpisah untuk masing-masing web. Ini akan memperkecil dampak serangan. Bila salah satu data bocor maka tidak semua web kita langsung terserang.</li>
<li>Bila perlu buatlah folder dummy dengan file dummy untuk menyerap serangan. Sebagai contoh, untuk berjaga-jaga pada folder web utama saya membuat folder dummy yang berisi banyak subfolder dan total 1000 file index.php. Dummy file tersebut akan mampu menyerap serangan jauh diatas batas maksimal penyerangan iframe injection yang sudah kita ketahui.</li>
<li>Untuk mengetahui dengan mudah siapa yang data account FTP-nya tercuri dalam tim kita, buatlah data account FTP untuk masing-masing user. Hindari menggunakan account FTP yang sama pada lebih dari 1 komputer.</li>
</ol>
<p>Pendekatan diatas akan cukup ampuh untuk menjauhkan kita dari iframe injection. Tapi tetaplah waspada, karena kejahatan selalu dapat terjadi karena adanya kesempatan <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  Apa ada yang sudah terlanjur terserang? Tindakan apa yang harus segera dilakukan? Akan saya share di post berikutnya <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2009/07/28/pendekatan-untuk-menjauhkan-iframe-injection/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Berkenalan dengan Iframe Injection</title>
		<link>http://blog.sahat-tambunan.com/2009/07/24/berkenalan-dengan-iframe-injection/</link>
		<comments>http://blog.sahat-tambunan.com/2009/07/24/berkenalan-dengan-iframe-injection/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 17:35:56 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=413</guid>
		<description><![CDATA[Artikel Post kali ini khusus buat teman2 sesama penggelut dunia web (^_^) Sudah pernah dengar istilah iframe injection? atau bahkan sudah pernah mengalami? Mudah2an belum sempat mengalami, saya doakan dijauhkan dari pengalaman ini dan terlebih lagi dijauhkan dari godaan menjadi seorang pelaku Sebelum mulai perlu saya informasikan bahwa saya bukan seorang ahli di bidang keamanan, [...]]]></description>
			<content:encoded><![CDATA[<p><del datetime="2009-07-25T15:44:03+00:00">Artikel</del> Post kali ini khusus buat teman2 sesama penggelut dunia web (^_^) Sudah pernah dengar istilah <em>iframe injection</em>? atau bahkan sudah pernah mengalami? Mudah2an belum sempat mengalami, saya doakan dijauhkan dari pengalaman ini dan terlebih lagi dijauhkan dari godaan menjadi seorang pelaku <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  Sebelum mulai perlu saya informasikan bahwa saya bukan seorang ahli di bidang keamanan, tapi ingin share pengalaman saja <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
<p><strong>Iframe</strong> ialah sebuah tag html yang digunakan untuk manampilkan halaman lain dalam sebuah frame sebagai bagian dari halaman kita. Kata iframe sendiri dapat diartikan sebagai <em>inline frame</em>. Sementara <strong>injection</strong> pada dunia web sering digunakan untuk menggambarkan adanya sesuatu yang diselipkan/disusupkan, dan sesuatu itu hampir selalu ialah hal-hal yang sangat tidak diinginkan <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  Jadi <strong>iframe injection</strong> bisa kita artikan sebagai serangan terhadap web server dimana tag iframe diselipkan/disusupkan pada satu atau lebih file pada server tersebut.</p>
<p>Berikut ialah 8 poin yang saya simpulkan mengenai iframe injection berdasarkan pengalaman saya:</p>
<ol>
<li>Pelakunya ialah bot/program</li>
<li>Pelaku memiliki data account FTP ke web server (yang tentu saja tidak didapatkan dengan cara yg halal)</li>
<li>Dengan koneksi FTP pelaku akan mengakses semua folder satu persatu bahkan sampai ke sub-folder terdalam untuk mencari semua file yang mengandung kata <strong>index</strong> atau <strong>default</strong></li>
<li>Semua file yang dia temukan tersebut akan di download, di rubah dan di upload kembali ke server</li>
<li>Pada proses &#8220;di rubah&#8221; itulah pelaku berusaha menyelipkan/menyusupkan iframe tersebut</li>
<li>Proses injeksi tidak selalu berhasil pada file PHP sehingga terkadang menyebabkan syntax error</li>
<li>Untuk setiap proses upload dan download pelaku menggunakan IP dari berbeda negara</li>
<li>Pelaku membatasi serangan hanya sampai sekitar <del datetime="2009-07-27T04:50:08+00:00">100 file</del> 50 file</li>
</ol>
<p><span id="more-413"></span></p>
<p>Lalu bagaimana mendeteksi apakah web kita terinfeksi atau aman? Berikut beberapa akibat/alternatif yang bisa dicoba:</p>
<ol>
<li><strong>Blank Page/PHP Syntax Error</strong>
<p>Seperti yang saya simpulkan di poin ke 6, terkadang proses injeksi tidak berjalan sempurna pada file PHP sehingga website hanya akan menampilkan blank page atau syntax error</p>
</li>
<li><strong>Menggunakan AntiVirus</strong>
<p>Tidak semua antivirus sudah mampu mendeteksi website yang terkena iframe injection, tapi yang saya tahu <a href="http://www.avast.com/" target="_blank">Avast</a> bisa. Avast akan meninformasikan ditemukannya virus pada website tersebut dan menghentikan akses.</p>
</li>
<li><strong>View Source</strong>
<p>Cara yang sedikit kasar tapi pasti efektif <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Buka website yang ingin diperiksa lalu lihatlah kode html (view source) dari homepagenya. Carilah kata/tag iframe dan pastikan tidak ada iframe yang tidak anda inginkan</p>
</li>
<li><strong>Online Test</strong>
<p>Kalau ga mau repot, bisa juga menggunakan fasilitas online seperti yang disediakan oleh <a href="http://www.unmaskparasites.com/" target="_blank">Unmask Parasites</a>. Website tersebut dapat melakukan pengecekan pada alamat web yang diberikan.</p>
</li>
</ol>
<p>Bagaimana? Sudah jalankan beberapa uji coba di atas? Apakah web anda saat ini masih aman? Kalau ternyata anda terinfeksi, silahkan baca post saya selanjutnya yang akan membahas tindak lanjut yang diperlukan. Kalau aman bersyukurlah <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  tapi jangan terlalu cepat puas dulu, karena masih ada juga beberapa hal yang harus dipastikan agar web kita benar2 tetap aman. Akan saya share juga di post berikutnya <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  </p>
<p>Baca  selanjutnya:<br />
<a href="http://blog.sahat-tambunan.com/2009/07/28/pendekatan-untuk-menjauhkan-iframe-injection/">&raquo; Pendekatan untuk Menjauhkan Iframe Injection</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2009/07/24/berkenalan-dengan-iframe-injection/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Flex sample for a start</title>
		<link>http://blog.sahat-tambunan.com/2008/07/06/flex-sample-for-a-start/</link>
		<comments>http://blog.sahat-tambunan.com/2008/07/06/flex-sample-for-a-start/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 14:39:08 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=270</guid>
		<description><![CDATA[Untuk iseng saja dan mungkin sedikit bernostalgia, saya coba2 Flex dengan guidance dari rekan kantor (thanks Ted ). Jadi inilah hasil percobaan pertama (^_^) selamat menikmati (bagi yang mau download sourcenya buat belajar atau sekedar iseng silahkan lihat linknya di bawah). Saat kuliah dulu saya sangat suka dengan Macromedia Flash. Saya mulai dengan versi 4 [...]]]></description>
			<content:encoded><![CDATA[<p>Untuk iseng saja dan mungkin sedikit bernostalgia, saya coba2 Flex dengan <em>guidance</em> dari rekan kantor (thanks Ted <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ). Jadi inilah hasil percobaan pertama (^_^) selamat menikmati (bagi yang mau download sourcenya buat belajar atau sekedar iseng silahkan lihat linknya di bawah).</p>
<p><iframe src="http://sahat-tambunan.com/flex/2008/mjp/main.html" frameborder="0" width="571" height="257"></iframe></p>
<p>Saat kuliah dulu saya sangat suka dengan Macromedia Flash. Saya mulai dengan versi 4 yang masih lebih fokus terhadap permainan animasi, terus mengikuti perkembangan ke versi 5 dan sampai beberapa versi berikutnya yang makin canggih dengan ActionScript. Sayangnya berhubung pekerjaan pertama yang saya dapatkan tidak menuntut keahlian di bidang ini, perlahan tapi pasti saya semakin jarang menyentuh Flash.</p>
<p><span id="more-270"></span></p>
<p>Saat ini sudah lewat hampir 10 tahun dari masa-masa perkenalan. Macromedia sebagai pengembang Flash sudah diakuisisi oleh Adobe. Syukurnya pengembangan flash tidak terhenti, bahkan sudah terlahir adiknya yang dikenal dengan nama Flex, Adobe Flex. Perbedaanya saya juga tidak tahu secara terperinci, tapi secara garis besar Flash dari awal diciptakan untuk pengembangan animasi, dan Flex dilahirkan untuk pengembangan pemrograman.</p>
<p>Seperti yang saya katakan di awal, karena iseng dan sedikit bernostalgia, saya coba-coba bikin aplikasi game ringan dari Flex. Ide game ini saya dapatkan dari Rian (thanks Rian <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  ). Katanya ini game-nya perokok saat lagi kurang kerjaan. Jadi, kalau kurang kerjaan ya silahkan dicoba2 deh. Buat yang ingin sourcenya, <a href="http://sahat-tambunan.com/flex/2008/mjp/src.zip">silahkan download di sini</a>, siapa tau bisa membantu rekan-rekan lain yang lagi explore Flex juga. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2008/07/06/flex-sample-for-a-start/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Smart PHP Thumbnailer</title>
		<link>http://blog.sahat-tambunan.com/2008/05/30/smart-php-thumbnailer/</link>
		<comments>http://blog.sahat-tambunan.com/2008/05/30/smart-php-thumbnailer/#comments</comments>
		<pubDate>Fri, 30 May 2008 15:20:12 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=265</guid>
		<description><![CDATA[Dulu sempat bikin code untuk update function thumbnailer supaya hasilnya bisa square (bujur sangkar) dan proporsional di posisi tengah gambar (tidak gepeng secara horizontal/vertical walaupun bentuk image asli tidak square). Karena kebutuhan lain, akhirnya saya update lagi fungsi tersebut supaya bisa lebih pintar. Intinya thumbnailer akan mengecek rasio image source dan membandingkannya dengan rasio image [...]]]></description>
			<content:encoded><![CDATA[<p>Dulu sempat bikin code untuk update function thumbnailer supaya hasilnya bisa <em>square</em> (bujur sangkar) dan proporsional di posisi tengah gambar (tidak gepeng secara horizontal/vertical walaupun bentuk image asli tidak square).</p>
<p>Karena kebutuhan lain, akhirnya saya update lagi fungsi tersebut supaya bisa lebih pintar. Intinya thumbnailer akan mengecek rasio image source dan membandingkannya dengan rasio image destination, memutuskan rasio terbaik untuk membuat thumbnail, dan melakukan crop pada image untuk membentuk thumbnail sesuai dengan ukuran destination yang diinginkan. Berikut keunggulan fungsi thumbnailer ini:</p>
<ol>
<li><strong>Free style</strong>, ukuran thumbnail bebas dan tidak harus sesuai dengan rasio image</li>
<li><strong>Adjust to Width</strong>, ukuran thumbnail bisa disesuaikan dengan rasio image cukup dengan menentukan lebar dari thumbnail</li>
<li><strong>Adjust to Height</strong>, penyesuaian dengan rasio image cukup dengan menentukan tinggi dari thumbnail</li>
<li><strong>Caching</strong>, thumbnail hanya di generate 1 kali, dan setiap permintaan thumbnail akan tetap menggunakan file yang sama, kecuali bila image source lebih baru dari file cache.</li>
<li><strong>Preview Image</strong>, selain berguna untuk membuat thumbnail, fungsi ini juga bisa menampilkan image source.</li>
<li><strong>Various Image Format</strong>, bisa mengenali image dari beragam format (diuji dengan format jpg, gif dan png), tapi tidak mengenal transparansi karena thumbnail yang dihasilkan dalam format jpg.</li>
</ol>
<p><span id="more-265"></span></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'IMAGES_DIR'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'images/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'IMAGES_CACHE_DIR'</span><span style="color: #339933;">,</span> IMAGES_DIR<span style="color: #339933;">.</span><span style="color: #0000ff;">'cache/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'IMAGES_CACHE_QUALITY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'85'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">function</span> draw_image<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$filename</span><span style="color: #339933;">,</span> <span style="color: #000088;">$alt</span><span style="color: #339933;">,</span> <span style="color: #000088;">$width</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$params</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000088;">$src</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #000088;">$filename</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$info</span><span style="color: #339933;">=</span><span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$w</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$info</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$height</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$width</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$height</span><span style="color: #339933;">==</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$width</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">==</span><span style="color: #000088;">$w</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$height</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">!=</span><span style="color: #000088;">$w</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$height</span><span style="color: #339933;">!=</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">//CONTROL RATIO IF ONLY ONE VALUE IS USED</span>
   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$width</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">/</span><span style="color: #000088;">$h</span><span style="color: #339933;">*</span><span style="color: #000088;">$height</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$height</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">/</span><span style="color: #000088;">$w</span><span style="color: #339933;">*</span><span style="color: #000088;">$width</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$cachefile</span> <span style="color: #339933;">=</span> IMAGES_CACHE_DIR<span style="color: #339933;">.</span><span style="color: #000088;">$width</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'x'</span><span style="color: #339933;">.</span><span style="color: #000088;">$height</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #000088;">$filename</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$createcachefile</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachefile</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">filemtime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachefile</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;</span>filemtime<span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$createcachefile</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$createcachefile</span><span style="color: #339933;">===</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$wratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">/</span><span style="color: #000088;">$width</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$hratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">/</span><span style="color: #000088;">$height</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$wratio</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$hratio</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$wtoget</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$htoget</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$height</span><span style="color: #339933;">/</span><span style="color: #000088;">$width</span><span style="color: #339933;">*</span><span style="color: #000088;">$w</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$hdiff</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">-</span><span style="color: #000088;">$htoget</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$xpos</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$ypos</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$hdiff</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$wtoget</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$width</span><span style="color: #339933;">/</span><span style="color: #000088;">$height</span><span style="color: #339933;">*</span><span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$htoget</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$h</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$wdiff</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$w</span><span style="color: #339933;">-</span><span style="color: #000088;">$wtoget</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$xpos</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wdiff</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$ypos</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000088;">$imagesource</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$src</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$image</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">imagecreatefromstring</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$imagesource</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$image_new</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$image_new</span><span style="color: #339933;">,</span> <span style="color: #000088;">$image</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$xpos</span><span style="color: #339933;">,</span> <span style="color: #000088;">$ypos</span><span style="color: #339933;">,</span> <span style="color: #000088;">$width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$height</span><span style="color: #339933;">,</span> <span style="color: #000088;">$wtoget</span><span style="color: #339933;">,</span> <span style="color: #000088;">$htoget</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$image_new</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cachefile</span><span style="color: #339933;">,</span> IMAGES_CACHE_QUALITY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #000088;">$src</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$cachefile</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$src</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$width</span>  <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$width</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$width</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;width='<span style="color: #006699; font-weight: bold;">$width</span>'&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$height</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$height</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;height='<span style="color: #006699; font-weight: bold;">$height</span>'&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #000088;">$image</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;image src='<span style="color: #006699; font-weight: bold;">$src</span>' alt='<span style="color: #006699; font-weight: bold;">$alt</span>' <span style="color: #006699; font-weight: bold;">$width</span> <span style="color: #006699; font-weight: bold;">$height</span> <span style="color: #006699; font-weight: bold;">$params</span> /&gt;&quot;</span><span style="color: #339933;">;</span>
 <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$image</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">echo</span> draw_image<span style="color: #009900;">&#40;</span>IMAGES_DIR<span style="color: #339933;">,</span> <span style="color: #0000ff;">'foto-1.jpg'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Foto 1'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;br /&gt;&lt;br /&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> draw_image<span style="color: #009900;">&#40;</span>IMAGES_DIR<span style="color: #339933;">,</span> <span style="color: #0000ff;">'foto-1.jpg'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Foto 1'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;br /&gt;&lt;br /&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> draw_image<span style="color: #009900;">&#40;</span>IMAGES_DIR<span style="color: #339933;">,</span> <span style="color: #0000ff;">'foto-1.jpg'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Foto 1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;br /&gt;&lt;br /&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> draw_image<span style="color: #009900;">&#40;</span>IMAGES_DIR<span style="color: #339933;">,</span> <span style="color: #0000ff;">'foto-1.jpg'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Foto 1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<ol>
<li>Buat file php baru</li>
<li>kopi seluruh code di atas pada file tersebut</li>
<li>Pada lokasi yang sama, buatlah folder &#8216;images/&#8217; dan &#8216;images/cache/&#8217;</li>
<li>Kopi sebuah file image ke folder images dan rename menjadi &#8216;foto-1.jpg&#8217;</li>
<li>Jalankan file php tersebut, selamat mencoba (^_^)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2008/05/30/smart-php-thumbnailer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Invisible Text in IE</title>
		<link>http://blog.sahat-tambunan.com/2008/05/10/invisible-text-in-ie/</link>
		<comments>http://blog.sahat-tambunan.com/2008/05/10/invisible-text-in-ie/#comments</comments>
		<pubDate>Sat, 10 May 2008 02:27:36 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/?p=262</guid>
		<description><![CDATA[Hari ini lagi test kerjaan di IE, keanehan yang sebenernya udah pernah beberapa kali dapet kembali nongol. Entah bin entah kenapa, ada teks yang tiba-tiba saja hilang (invisible) dari pandangan. Bukan sulap, bukan sihir, hanyalah keisengan normal dari perilaku IE. Anehnya, kalau di select atau scroll, teks ini sebenernya ada dan kadang jadi terlihat (visible) [...]]]></description>
			<content:encoded><![CDATA[<p>Hari ini lagi test kerjaan di IE, keanehan yang sebenernya udah pernah beberapa kali dapet kembali nongol. Entah bin entah kenapa, ada teks yang tiba-tiba saja hilang (<em>invisible</em>) dari pandangan. Bukan sulap, bukan sihir, hanyalah keisengan normal dari perilaku IE. Anehnya, kalau di select atau scroll, teks ini sebenernya ada dan kadang jadi terlihat (<em>visible</em>) kembali.</p>
<p>Utak punya atik, selidak punya selidik, tidak juga kunjung nongol itu teks. Akhirnya mulai <a href="http://www.google.co.id/search?q=invisible+text+in+ie">tanya om goog-goog</a> (baca: guk guk) seperti biasa. Ada beberapa solusi yang layak di coba, dan akhirnya berhasil juga menggunakan trik <a href="http://plone.org/documentation/how-to/internet-explorer-invisible-text">solusi dari plone</a>. Buat yang ingin tahu jelas pembahasannya silahkan klik link solusi tersebut.</p>
<p>Saya share intinya saja, kita perlu menambahkan sedikit hack pada css kita, cukup 1 line saja:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #00AA00;">*</span> html <span style="color: #6666ff;">.visualIEFloatFix</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0.01%</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Kemudian tambahkan class <strong>visualIEFloatFix</strong> ke layer teks yang tersembunyi tersebut. Kalau belum berhasil, coba tambahkan class tersebut pada beberapa layer lain yang masih berhubungan. Selamat berjuang (^_^)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2008/05/10/invisible-text-in-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Min-Width, Min-Height &#8211; IE vs FF</title>
		<link>http://blog.sahat-tambunan.com/2007/10/14/min-width-min-height-ie-vs-ff/</link>
		<comments>http://blog.sahat-tambunan.com/2007/10/14/min-width-min-height-ie-vs-ff/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 15:13:31 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/2007/10/29/min-width-min-height-ie-vs-ff/</guid>
		<description><![CDATA[daru dulu ampe sekarang, masalah paling menyebalkan saat bikin css untuk design web itu hasil yang terkadang beda di bermacam browser. Kalo gw sih yang penting css gw tested di Internet Explorer dan Firefox. Khusus untuk nilai min-width dan min-height, Firefox mengimplementasikannya dengan sangat baik. Jadi kalau kita kasih min-height 200px, ya heightnya minimum bakal [...]]]></description>
			<content:encoded><![CDATA[<p>daru dulu ampe sekarang, masalah paling menyebalkan saat bikin css untuk design web itu hasil yang terkadang beda di bermacam browser. Kalo gw sih yang penting css gw tested di Internet Explorer dan Firefox.</p>
<p>Khusus untuk nilai min-width dan min-height, Firefox mengimplementasikannya dengan sangat baik. Jadi kalau kita kasih min-height 200px, ya heightnya minimum bakal 200px, kalo lebih dia akan expand sesuai content. Tapi si IE (gw coba sih yg versi 6) ga kenal ama css yang namanya min-width and min-height. Jadi di IE cukup pake width aja atau height aja, dia akan expand sesuai content. TAPI! kalo kita specify width atau height (seperti maunya IE), Firefox bakal mempertahankan nilai width/height yg kita kasih, dan ga akan expand sesuai contentnya.</p>
<p>So, solusinya? kembali dengan cara lama, kita acak dikit cssnya supaya ada style yg hanya di baca IE. here&#8217;s a sample of the result:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.suatu_div</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">500px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">min-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">25px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #00AA00;">*</span> html <span style="color: #6666ff;">.suatu_div</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">200px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Contoh diatas akan menghasilkan suatu div memiliki lebar fix 500px, height minimum 200px (bisa expand tergantung isinya) dan margin kiri 25 px.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2007/10/14/min-width-min-height-ie-vs-ff/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Apache, PHP and Windows File Security</title>
		<link>http://blog.sahat-tambunan.com/2007/06/29/apache-php-and-windows-file-security/</link>
		<comments>http://blog.sahat-tambunan.com/2007/06/29/apache-php-and-windows-file-security/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 14:50:08 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/2007/06/29/apache-php-and-windows-file-security/</guid>
		<description><![CDATA[Not again! masa dalam 1 hari gw posting 2 topik yang kagak beda2 jauh nih. Tapi daripada keburu lupa gapapalah. Intinya gini, masih seputar osc juga. Setelah beres instalasi osc di wamp dia terus2an ngasih warning bahwa dia masih bisa nulis ke file konfigurasinya, dan dia bilang itu berbahaya untuk keamanan. Jadi dengan semangat 45 [...]]]></description>
			<content:encoded><![CDATA[<p>Not again! <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  masa dalam 1 hari gw posting 2 topik yang kagak beda2 jauh nih. Tapi daripada keburu lupa gapapalah. Intinya gini, masih seputar <a href="http://www.oscommerce.com">osc</a> juga. Setelah beres instalasi osc di wamp dia terus2an ngasih warning bahwa dia masih bisa nulis ke file konfigurasinya, dan dia bilang itu berbahaya untuk keamanan. Jadi dengan semangat 45 gw berjuang bagaimana set security file tersebut supaya tidak bisa ditulis ama si apache. Sebenernya sih ga perlu2 banget, karena toh itu warning cuma keluar di development server yang ga bisa diakses orang. Tapi ga enak aja liatnya nongol2 terus. Udah gw utak atik ga bisa2 juga. Gw sampe bikin user windows yg khusus cuma buat jalanin service apache doang, masih ga bisa juga. Sementara kalo di linux kan tinggal maenin chown atau chmod-nya aja <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  hiks.</p>
<p><span id="more-174"></span></p>
<p>Akhirnya, hari ini gw kembali memutuskan untuk lihat2 ke codenya (kayanya semua masalah jadi lama gara2 gw ga langsung liat ke codenya deh <img src='http://blog.sahat-tambunan.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  hehe). Alhasil, gw menemukan bahwa fungsi PHP yang dipakai untuk ngecek itu ialah <a href="http://www.php.net/is_writable"><strong>is_writable</strong></a>. Mulai keliling2 lagi naek bus google, ketemu juga masalahnya. Ternyata eh ternyata, is_writable di windows HANYA memeriksa STATUS <strong>Read Only</strong> dari file tersebut. Please deh, bisa2nya gw lupa selama ini kalau ada status begituan di windows. Yah, paling gak sekarang masalahnya sudah beres.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2007/06/29/apache-php-and-windows-file-security/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP, Apache and Cookie</title>
		<link>http://blog.sahat-tambunan.com/2007/06/29/php-apache-and-cookie/</link>
		<comments>http://blog.sahat-tambunan.com/2007/06/29/php-apache-and-cookie/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 19:45:23 +0000</pubDate>
		<dc:creator>kocu</dc:creator>
				<category><![CDATA[Share Knowledge]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.sahat-tambunan.com/2007/06/29/php-apache-and-cookie/</guid>
		<description><![CDATA[What about it? Ada masalah apakah dengan PHP, Apache dan Cookie? Seharusnya sih gak ada, tapi saat lagi kerja di development server yang di akses dengan http://localhost, entah kenapa fungsi setcookie() ga berhasil2 menyimpan data yg gw mau. Gw cobain di firefox dan ie, tapi tetep aja ga bisa2. Padahal kalo udah di deploy ke [...]]]></description>
			<content:encoded><![CDATA[<p>What about it? Ada masalah apakah dengan PHP, Apache dan Cookie? Seharusnya sih gak ada, tapi saat lagi kerja di development server yang di akses dengan <strong>http://localhost</strong>, entah kenapa fungsi <a href="http://www.php.net/setcookie">setcookie()</a> ga berhasil2 menyimpan data yg gw mau. Gw cobain di firefox dan ie, tapi tetep aja ga bisa2. Padahal kalo udah di deploy ke server dengan real domain name kagak ada masalah, fine2 aja semua.</p>
<p>Sedikit flashback, awal mulanya gw cari solusi biar <a href="http://www.oscommerce.com">osc</a> selalu ga nampilin <a href="http://www.php.net/session">session id</a> di url. Cara tercepat pastinya dengan <strong>aktifin force cookie di admin</strong>. Dengan sedikit efek samping yaitu meningkatnya probabilitas kehilangan calon customer yang settingan browsernya nge-disabled cookie. Syukurlah kata bos gw nilainya sangat tidak signifikan, sehingga masih bisa diabaikan. Tapi entah kenapa, browser gw selalu dianggep mendisabled cookie, padahal gw yakin banget kagak gw disabled, wong melanglang buana di web2 yang butuh cookie di internet selalu bisa ko.</p>
<p><span id="more-173"></span></p>
<p>Akhirnya gw cuekin aja dulu bbrp hari, kerja2in yang laen dulu, sampai kemaren bos telepon dan masalah ini harus di solve secepatnya (.,) hiks &#8211; Mulailah gw oprek2 codingnya. Ternyata gw menemukan bahwa <strong>setcookie() yang dijalankan tidak pernah berhasil menyimpan data</strong>. hm&#8230; that&#8217;s strange. Setelah gw keliling2 naek bus google, gw turun di <a href="http://www.aeonity.com/frost/php-setcookie-localhost-apache">halte ini</a> dan gw menemukan secercah <a href="http://www.sinarharapan.co.id/">sinar harapan</a> yang kayanya cocok banget ama kondisi gw. Ehem, link sinar harapan cuma bercanda ya (gubrak!)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// set the cookie domain</span>
<span style="color: #000088;">$cookie_domain</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$request_type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'NONSSL'</span><span style="color: #009900;">&#41;</span> ? HTTP_COOKIE_DOMAIN <span style="color: #339933;">:</span> HTTPS_COOKIE_DOMAIN<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$cookie_path</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$request_type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'NONSSL'</span><span style="color: #009900;">&#41;</span> ? HTTP_COOKIE_PATH <span style="color: #339933;">:</span> HTTPS_COOKIE_PATH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//FOR PHP APACHE DEVELOPMENT (localhost)</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cookie_domain</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;localhost&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$cookie_domain</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">setcookie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cookie_test'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'please_accept_for_session'</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">24</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">30</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cookie_path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cookie_domain</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Intinya! Ternyata eh ternyata, beliau share bahwa untuk menjalankan setcookie() di localhost mesti pake format tertentu. Pasti sudah pada tahu, ada beberapa argumen yang harus disertakan saat memanggil fungsi ini, tapi gw ga akan bahas itu karena bukan bagian dari share ini (^_^) Intinya, dari semua argumen tersebut, ada argumen <strong>domain</strong> (berisi nama domain) yang bernilai <strong>localhost</strong> dalam kasus gw. Ternyata eh ternyata, sesuai anjuran akang FrosT di <a href="http://www.aeonity.com/frost/php-setcookie-localhost-apache">halte tadi</a>, setelah gw ganti nilainya dari <strong>string:localhost</strong> jadi <strong>boolean:false</strong>, CRING! Tiba2 aja jadi bisa. Ga tahu deh kenapa, akhirnya di scriptnya gw selipin untuk cek kalo nama cookie domain nya localhost, ganti jadi false. Jadi ga bakal error juga kalo di deploy nanti. Kutipan codenya liat di atas ya, good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sahat-tambunan.com/2007/06/29/php-apache-and-cookie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

