aslında amacım fck editörün textarea olarak kullanımı hakkında bir makale yazmaktı fakat şunuda bunuda eklesem fena olmaz derken elde ettiğim sonuç basit bir iys oldu.betiğimizin amacını kısaca; html sayfaları fckeditor aracılığı ile düzenlemek, sayfaları kopyalamak, silmek ve adlarını değiştirmek olarak açıklayabiliriz.temel php kodları tüm işlemlerimizi eksiksiz yerine getiriyor.fck editör kullanımı hakkında bilgilerle açıklamalarımıza başlayalım;fckeditor kendisini bir textarea nın yerine koyabiliyor. üstelik oldukça kolay bir şekilde sayfamıza uyarlayabiliyoruz.<head> … </head> kodları arasına;<link href="fckeditor/_samples/sample.css" rel="stylesheet" type="text/css" >
<script type="text/javascript" src="fckeditor/fckeditor.js"></script>
kodlarını ekliyoruz,<body> … </body> kodları arasınada;<script language="javascript" type="text/javascript"><!–var oFCKeditor = new FCKeditor(‘yazi’,’800′,’600′) ;oFCKeditor.BasePath = ‘fckeditor/’ ;oFCKeditor.ToolbarSet = "Default";oFCKeditor.Config[ "ImageUpload" ] = false ;oFCKeditor.Config[ "LinkUpload" ] = false ;oFCKeditor.Config[ "FlashUpload" ] = false ;oFCKeditor.ReplaceTextarea() ;</script>
kodlarını ekliyoruz.sonrasında;<form action="xx.php" method="post" name="yazi">
textarea mızın isminide fck editör ün “new FCKeditor(‘yazi’,’800′,’600′) ;” kodları içindeki isimle aynı yaparsak fck editör otomatik olarak textarea nın yerine gececektir.”‘800’,’600′” parametresi ise düzenleyicinin en boy oranı.oFCKeditor.Config[ "ImageUpload" ] = false ;oFCKeditor.Config[ "LinkUpload" ] = false ;oFCKeditor.Config[ "FlashUpload" ] = false ;
kodlarımız ise güvenlik sorunu olmaması için resim, flash ve adres üzerinden dosya yüklemesinin kapatılmasını sağlıyor. eğer ihtiyacımız olmazsa bu kodları silebiliriz. bunun dışında fckeditor/editor/filemanager/connectors/php/config.php dosyası içerisinde detaylı ayalar mevcut.diğer bilgiler için fckeditor wiki sayfasını ziyaret edebiliriz.oFCKeditor.ReplaceTextarea() ;oFCKeditor.BasePath = ‘fckeditor/’ ;
kodlarımız ise fck editorun textarea yerine geçmesi ve fckeditor un yuklu olduğu klasorü belirtmemizi sağlıyor.fck editör ün sayfamıza temel uyarlanması bu şekilde son buluyor. bunun dışında sunucumuza dosya yükleyebilmemiz için; “fckeditor/editor/filemanager/connectors/php/” klasoru altındaki ayar dosyalarını düzenlenemiz gerekli.———————————————-sistemimize dair dosyalara gelirsek;yonet.php
sunucudaki html uzantılı dosyaların ekrana yansıtılması, komut butonları sayesindede işlemleri yapmamızı sağlayan dosyamız. <?phpinclude("password_protect.php");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>SUNUCUDAKI DOSYALARIN LISTESI …</title></head><body><center><!– SILME KOMUTU ICIN ONAYLAMA PENCERESI VE DIGER BUTON KODLARI –><SCRIPT LANGUAGE="JavaScript">function onaylabeni(yol){if (confirm("Son kararinmi? bak gitcek bilgi!n")){location = String(yol);}else{javascript:alert("Emriniz Uzerine Iptal Ettik");}};function tus(yol){location = String(yol)};</SCRIPT><div align="center" style="height:50px; width:800px; color:#FF0000; font-size:20px; font-style:bold;"><p>SUNUCUDAKI HTML VE HTM UZANTILI DOSYALARIN LISTESI …</p></div><p><a href="yonet.php?cikis=1">&Ccedil;IKI&#350;!</a><p><table border="1"><?php// SUNUCDAKI DOSYALARI LISTELEMEK ICIN GEREKLI KODLAR// ACILACAK KLASOR$klasor = opendir(‘.’);// BUTUN DOSYALARIN LISTELENME BILMESI ICIN SUREKLI OKUMAYI DONDURMEK. EGER AYNI AD 2. KERE OKUNMAYA KALKARSA KOMUT DURDURULUR.while (FALSE !== ($htmldosya = readdir($klasor))) {if ($htmldosya != ‘.’ && $htmldosya != ‘..’ && is_file($htmldosya) && strpos($htmldosya, ‘.htm’)) {// LISTELEME ICIN DOSYA ADLARI VE BUTONLARclearstatcache();echo "<tr><td><a href="$htmldosya" target="blank_">$htmldosya</a></td><td><input name="button" type="button" value="DUZENLE" onclick="javascript:tus(‘duzenle.php?x=$htmldosya’)";/> |<input name="button" type="button" value="KOPYALA" onclick="javascript:tus(‘kopyala.php?x=$htmldosya’)";/> |<input name="button" type="button" value="SIL?!" onclick="javascript:onaylabeni(‘dosyasil.php?x=$htmldosya’)";/> <P><form action="addegis.php?ad1=$htmldosya" method="post" name="ad2"><input type="text" name="ad2" value="YENiAD" /><input type="submit" name="submit" value="AD DE&#286;&#304;&#350;T&#304;R!" /></form>";// her dosyanin chmod girdisini yazdirmak icin kodecho "Yetki (chmod): ";echo substr(decoct(fileperms("$htmldosya")),2);}}closedir($klasor);?></table><!– YASAL UYARILAR 🙂 –><P><P>KOPIRAYT CXC<br />[email protected]<p></center></body></html> ———————————————-duzenle.php
yonet.php den get ile aldığı sayfa ismi doğrultusunda fckeditor e düzenlenecek sayfanın include edilmesi kaydet butonuna nasıldığındada yaz.php dosyasını bilginin post edilmesini sağlar. <?phpinclude("password_protect.php");// GET ILE DUZENLENECEK DOSYA ISMININ ALINMASI$dosya = $_GET["x"];?><!– HTML BASLANGICI –><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>FCK EDITOR ILE HTML DOSYANIN DUZENLENMESI …</title><link href="fckeditor/_samples/sample.css" rel="stylesheet" type="text/css" ><script type="text/javascript" src="fckeditor/fckeditor.js"></script></head><body><CENTER><!– ONAYLAMA ICIN SCRIPT –><SCRIPT LANGUAGE="JavaScript">function onaylabeni(yol){if (confirm("Yaptigin Degisiklikler Iptal Olacak…n n Ne dusunuyosun bu konu hakkinda?")){location = String(yol);}else{javascript:alert("Emriniz Uzerine Iptal Ettik");}};</SCRIPT><p><!– BASLIK –><div align="center" style="height:50px; width:800px; color:#FF0000; font-size:20px; font-style:bold;">D&uuml;zenleyece&#287;iniz Dosyan&#305;n Ad&#305;: <?php echo "$dosya" ?></div><p><!– FORM BASLANGICI –><form action="yaz.php?x=<?php echo $dosya ?>" method="post" name="yazi"><!– GET ILE ALDIGIMIZ SAYFA ISMINI, TEXTAREA YA INCLUDE KULLANARAK YANSITIYORUZ. –><textarea name="yazi" rows="10" cols="10"> <?php include "$dosya" ?> </textarea><P><input type="submit" name="submit" value="KAYDET!" /><input name="button" type="button" value="IPTAL ET!" onclick="javascript:onaylabeni(‘yonet.php’)";/></form><!– TEXTAREA YERINE FCK EDITORU YERLESTIRMEK ICIN KODLAR –><script language="javascript" type="text/javascript"><!–var oFCKeditor = new FCKeditor(‘yazi’,’800′,’600′) ;oFCKeditor.BasePath = ‘fckeditor/’ ;oFCKeditor.ToolbarSet = "Default";oFCKeditor.Config[ "ImageUpload" ] = false ;oFCKeditor.Config[ "LinkUpload" ] = false ;oFCKeditor.Config[ "FlashUpload" ] = false ;oFCKeditor.ReplaceTextarea() ;//–></script></CENTER></body></html> ———————————————-yaz.php
duzenle.php den aldığı dosya ismi ve post bilgisi uyarınca hedef dosyayabilgiyi yazar. sunucu kaynaklı bir sorun olmaması için dosyanın chmod değerini yazım öncesinde 777 sonrasında ise 775 yapar. <?phpinclude("password_protect.php");//PARAMETRELERIMIZI ALALIM$dosya = $_GET[‘x’];$yazi = $_POST[‘yazi’];// DOSYANIN YAZLILABILIRLIGINI KONTROL EDELIM …if (is_writable($dosya)) {// DOSYANIN OKUNABILIRLIGINI KONTROL EDELIMif (!$islem = fopen($dosya, ‘w+’)) {echo "$dosya DOSYASI OKUNAMIYOR …<P><P>";echo "<p> <a href="yonet.php">&lt;&lt;&lt; Menuye D&ouml;n &lt;&lt;&lt; </a>";exit;}// YAZIM ICIN CHMOD DEGISTIRELIM SONRADA DOSYAYI YAZLAIM.chmod($dosya, 01777);if (fwrite($islem, $yazi) === FALSE) {chmod($dosya, 01775);echo "$dosya DOSYASINA YAZIM BASARISIZ …<P><P>";echo "<p> <a href="yonet.php">&lt;&lt;&lt; Menuye D&ouml;n &lt;&lt;&lt; </a>";exit;}// DOSYANIN CHMOD UNU DEGISTIRELIMchmod($dosya, 01775);echo "<html><head><script>document.location = "yonet.php?DURUM=$dosya ITINA ILE GUNCELLENDI …";</script></head<body></body></html>";fclose($islem);} else {// ISLEM HATASI UYARISIecho "$dosya DOSYASINA YAZIM BASARISIZ …<P><P>";echo "<p> <a href="yonet.php">&lt;&lt;&lt; Menuye D&ouml;n &lt;&lt;&lt; </a>";}?> ———————————————-kopyala.php
yonet.php den aldığı dosya isminin başına 0 ila 100 arasında bir rakam ekleyerek kopyalar. <?phpinclude("password_protect.php");// KOPYALAMA ICIN DEGERLERI ALMAK$al = $_GET["x"];// 0 ILA 100 ARASI BI SAYFA NUMARA YARATALIM …$salla = rand(0, 100);//DEGERLERI BIRLESTIRELIM$ver = "$salla-$al";// KOPYALIYALIM …if (!copy($al, $ver)) {// ISLEM HATASI UYARISIecho ‘KOPYALAMA_HATASI… UZGUNUM … HAYAT ISTE …<p><p><a href="yonet.php?DURUM=KOPYALAMA_HATASI"> &lt; Geri D&ouml;n </a>’;}else{// ISLEM TAMAMSA DOSYALAR SAYFASINA YONLENDIRMEecho "<html><head><script>document.location = "yonet.php?DURUM=$al DOSYASI $ver OLARAK KOPYALANDI …";</script></head<body></body></html>";}?> ———————————————-addegis.php
yonet.php den aldığı dosya ismi, post ile aldığı değerin sonuna .html ekleyerek değiştirir. index.html in adını değiştirmez … <?phpinclude("password_protect.php");// DEGERLERIMIZI ALALIM …$ad1 = $_GET["ad1"];$ad2 = $_POST["ad2"];// VARSAYILAN DEGERLERIMIZ$varsayilanad = "YENiAD";$indexad = "index.html";// AD VARSAYILAN AD ISE HATA VERELIM …if ("$ad2" == "$varsayilanad") {echo "BU VARSAYILAN AD … LUTFEN ADI DEGISTIRIN …<p><p><a href="yonet.php?DURUM=BU VARSAYILAN AD … LUTFEN ADI DEGISTIRIN"> &lt; Geri D&ouml;n </a>";}else{// AD INDEX ISE HATA VERELIM …if ("$ad1" == "$indexad") {echo "INDEX.HTML DOSYASININ ADINI DEGISTIRMEYE CALISIYORSUN. YAPMA BOYLE HATALAR EFENDI …<p><p><a href="yonet.php?DURUM=INDEX_ADI_DEGISMEMELI"> &lt; Geri D&ouml;n </a>";}else{// ISMI DEGISTIRELIM …if (rename("$ad1","$ad2.html")) {echo "<html><head><script>document.location = "yonet.php?DURUM=$ad1, $ad2.html OLARAK DEGISTIRILDI OLEYYY";</script></head<body></body></html>";} else {echo "DOSYA ADI DEGISIMINDE BIR HATA OLDU …<p><p><a href="yonet.php?DURUM=DOSYA ADI DEGISIMINDE BIR HATA OLDU"> &lt; Geri D&ouml;n </a>";}}}?> ———————————————-dosyasil.php
yonet.php den aldığı dosya ismini siler … index.html dosyasını silmez. <?phpinclude("password_protect.php");$dosya = $_GET["x"];// DOSYAMIZ INDEX SE SILMEYELIM ….if($dosya == "index.html"){echo "Silmeye Calistigin Dosya index.html ,dosyayi silersen<p>site acilmayacaktir. Bu yuzden islem iptal edildi.<p><p><a href="yonet.php?DURUM=INDEX_SILINMEMELI"> &lt; Geri D&ouml;n </a>";exit;} else {echo ‘Bu index.html Degil … Dosya Siliniyor …’;if (!unlink($dosya)) {// ISLEM HATASI UYARISIecho "UZGUMUN DOSYA SILINEMEDI …<p><p><a href="yonet.php?DURUM=DOSYA_SILINEMEDI"> &lt; Geri D&ouml;n </a>";}else{// ISLEM TAMAMSA DOSYALAR SAYFASINA YONLENDIRMEecho "<html><head><script>document.location ="yonet.php?DURUM=$dosya-ADLI_DOSYA_YALAN_OLDU!"; </script></head<body></body></html>;";}}?> —– ——- —— ——– ——— —–dosyalarımızın kaynak kodları bunlar … her dosyanın başında kullandığımız include("password_protect.php"); parametresi şifre desteğimizi sağlayan betiğimiz. betik hakkında daha fazla bilgi için burayı inceleyebilirsiniz.fckeditor hakkında daha fazla bilgi için buraya, password_protect.php hakkında bilgi için buraya ve herdaim yardımcımız olan php.net in türkçe sayfaları için burayı inceleyebilirsiniz.