Netbeans 6.8 Html Error

open source, php Yorum Yok »

Netbeans editör kullananlar netbeans’ın 6.5.1 versiyonundan sonra html kodlarında “unknown html tag” gibi bir hata alabilirler. Bu hatadan kurtulmak için netbeans 6.8′i kurduktan sonra kurulum dizinindeki “/home/netbeans-6.8/etc/netbeans.conf” dosyasını açıp “netbeans_default_options=” ile başlayan satırın sonuna “–locale en:US” seçeneğini ekleyin.

netbeans_default_options="-J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true --locale en:US"

Grub Loader Bozuldu! Ne Yapmalıyım?

linux, open source Yorum Yok »

Çoklu işletim sistemi kullanırken (linux + windows gibi) veya çeşitli işlemlerden dolayı grub loader’ı kaybettiğiniz veya bozduğunuz durumlar olabilir. Bu durum en çok da linux üzerine windows işletim sistemi kurulduğunda gerçekleşir. Bu durumda da bilgisayarınıza erişemezsiniz. Paniğe gerek yok. Dosyalarınız ve işletim sistem(ler)iniz olduğu gibi duruyor. Aşağıda anlatılan bir kaç basit işlemden sonra grub boot loader yeniden çalışacaktır.

Öncelikle buradaki grub loader iso dosyasını indirip bir cd ye yazarak kendimize bir boot cd si hazırlayalım. (1.2 MB) Bu cd yardımı ile kaybettiğimiz grub yerine bu cd deki grub loader ile sistem açılışını yapacağız.

Not: Elinizde Ubuntu Live CD’niz varsa bu CD ile boot yaptıktan sonra açılan live işletim sisteminde de aşağıdaki işlemleri yapabilirsiniz.

Boot cd sini hazırladıktan sonra bilgisayarımızı bu cd ile açıyoruz. Açılışta yine bir grub loader ekranı çıkacak ve burdan ilk seçeneği seçip mevcut işletim sistemimizle bilgisayarımızın açılmasını sağlayacağız. Kendi işletim sisteminizle oturum açtıktan sonra komut satırında

# sudo grub

komutu ile grub komut satırını başlatıyoruz. Şimdi çöken grub loader’ı tamir edelim. Grub komut satırında iken

grub> root (

yazdıktan sonra tab tuşuna basıyoruz. Parantezden önceki boşluk önemli. Bilgisayarımızdaki takılı disk sayısı bir tane ise burası hd0 şeklinde tamamlanacaktır veya aşağıda diğer seçenekler listelenecektir. (hd0,hd1.. gibi) Burada önemli nokta işletim sisteminizin hangi diskte olduğunu bilmeniz. Bu ilk parametre genellikle hd0 dır. Komut satırında artık

grub> root (hd0,

yazıyor olmalı. Biz yine tab tuşuna basıyoruz ve diskimizdeki bölümleri ve dosya sistemlerinin listelenmesini sağlıyoruz.

grub> root (hd0,
    Possible partitions are:
    Partition num: 0,  Filesystem type unknown, partition type 0x7
    Partition num: 4,  Filesystem type unknown, partition type 0x82
    Partition num: 5,  Filesystem type is ext2fs, partition type 0x83

Sistemi başlatmak istediğimiz işletim sistemine göre buradaki disk bölümünün id sini 2. parametre olarak veriyoruz. Ext2 formatındaki linux işletim sistemi için id si 5 olan bölüm seçilecek.

grub> root (hd0, 5);

şeklinde komutu yazıyoruz. Daha sonra bu ayarların geçerli olması için

grub> setup (hd0);

komutunu veriyoruz. Daha sonrada

grub> quit

komutu ile çıkış yapıyoruz. Artık sistemi yeniden başlatabiliriz.

# sudo reboot

Takılı olan boot cd sini çıkarıyoruz ve sistemimiz normal bir şekilde açılıyor. (öyle olması gerekiyor!)

Son Derece Kullanışlı 50 Adet PHP Aracı

php Yorum Yok »

Samashing Magazine sitesi Php uygulama geliştiricilerin kesinlikle işine yarayacak 50 adet kullanışlı bir araç listesi oluşturmuş. Liste kategorilendirilmiş. Aradığınız veya ihtiyacını olan bir çok şeyi bu listede bulabilirsiniz.

Hata Ayıklama Araçları
Test ve Optimizasyon Araçları
Dökümantasyon Araçları
Güvenlik Araçları
Resim ve Grafik Oluşturma Araçları
Php Kod Düzenleyiciler
Versiyon Kontrol Sistemleri
Kullanışlı Eklenti, Uygulama ve Kütüphaneler
Online Php Araçları ve Kaynakları
Php Frameworkler
Php Editörleri ve IDE’ler

Php’de serialize ve base64_encode ile sayfalar arasında dizi veya nesneleri taşımak

php 3 Yorum »

Php sayfaları arasında POST veya GET metoduyla gelen değerleri veya sayfa içindeki dizi veya nesnelerin alt elemanlarıyla beraber değerlerini taşımak için aşağıdaki yöntemi kullanabilirsiniz.

form.html // Form verilerinin POST metodu ile gönderileceği form sayfası.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Form</title>
</head>
<body>
	<form action="islem1.php" method="POST">
		Adı : <input type="text" name="adi" size="30"><br>
		Soyadı : <input type="text" name="soyadi" size="30"><br>
		Email : <input type="text" name="email" size="50"><br>
		Telefon : <input type="text" name="Telefon" size="30"><br>
		Şehir : <select name="sehir">
          	<option>İstanbul</option>
          	<option>Ankara</option>
          	<option>İzmir</option>
        	</select><br>
    <input type="submit" value="Gönder">
	</form>
</body>
</html>

islem1.php //Formdan POST metoduyla gelen değerler islem2.php dosyasına aktarılacak.

<?
$param=base64_encode(serialize($_POST));
 
$link = 'islem2.php?data='.$param;
?>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>1. Adım</title>
</head>
<body>
	<a href="<?=$link?>">2. Adıma Geç</a>
</body>
</html>

Burada form verilerini aktarmak için php’nin serialize ve base64_encode fonksiyonlarını kullanıyoruz. Serialize fonksiyonu bir değişken(dizi veya nesne) içindeki değerleri string’e dönüştürür. base64_encode fonksiyonu ise verilen değeri 64 bit olarak şifreler ve yine string bir değer oluşturur. Oluşturduğumuz bu string değeri sayfalar arasında taşımak, formdaki her bir değeri ayrı ayrı yazıp taşımaktan daha kolaydır. Hatta bazı durumlarda değişkenlerde değişebileceği için bu yöntem daha sağlıklı olacaktır.

<?
$renk[0]='mavi';
$renk[1]='kırmızı';
$renk[2]='yeşil';
$data = serialize($renk);
 
echo $data;
//a:3:{i:0;s:4:"mavi";i:1;s:10:"kırmızı";i:2;s:6:"yeşil";}
 
$data=base64_encode($data);
 
echo $data;
//YTozOntpOjA7czo0OiJtYXZpIjtpOjE7czoxMDoia8Sxcm3EsXrEsSI7aToyO3M6NjoieWXFn2lsIjt9
?>

islem2.php //islem1.php sayfasındaki form değerleri bu sayfaya aktarıldı.

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>2. Adım</title>
</head>
<body>
<?
if(isset($_GET['data']))
{
	$_POST=unserialize(base64_decode($_GET['data']));
	echo 'Adı : '.$_POST['adi'].'<br>';
	echo 'Soyadı : '.$_POST['soyadi'].'<br>';
	echo 'Email : '.$_POST['email'].'<br>';
	echo 'Şehir : '.$_POST['sehir'].'<br>';
}
?>
</body>
</html>

islem1.php dosyasından aktarılan değerleri yeniden kullanabilmemiz için yaptığımız işlemlerin tersini gerçekleştirmemiz gerekiyor. base64_encode ile şifrelediğimiz veriyi base64_decode fonksiyonu ile dönüştürüyoruz. serialize ile string hale dönüştürdüğümüz verieri de unserialize ile dönüştürüyoruz. Artık değişkenlerimizi sayfa içerisinde kullanabiliriz.

XML – Dizi Dönüştürmesi Yapmak İçin Php Sınıfı (XML<->Array)

php Yorum Yok »

Aşağıdaki assoc_array2xml php sınıfı ile dizileri xml’e, xml verilerini de php dizilerine dönüştürebilirsiniz. Daha çok php4 kullananlar bu sınıfa ihtiyaç duyacaktır. Php5 kullananlar SimpleXML sınıfı ile aynı işlemleri ve daha fazlasını yapabilirler. SimpleXML ile ilgili örnekleri ve bilgileri yakında yayınlarız.

<?php
class assoc_array2xml
{
	var $text;
	var $arrays, $keys, $node_flag, $depth, $xml_parser;
 
	function array2xml($array)
	{
		$this->text="<array>";
		$this->text.= $this->array_transform($array);
		$this->text .="</array>";
		return $this->text;
	}
 
	function array_transform($array)
	{
		foreach($array as $key => $value)
		{
			if(!is_array($value))
			{
				$this->text .= "<$key>$value</$key>";
			}
			else
			{
				$this->text.="<$key>";
				$this->array_transform($value);
				$this->text.="</$key>";
			}
		}
		return $array_text;
	}
 
	function xml2array($xml)
	{
		$this->depth=-1;
		$this->xml_parser = xml_parser_create();
		xml_set_object($this->xml_parser, $this);
		xml_parser_set_option ($this->xml_parser,XML_OPTION_CASE_FOLDING,0);
		xml_set_element_handler($this->xml_parser, "startElement", "endElement");
		xml_set_character_data_handler($this->xml_parser,"characterData");
		xml_parse($this->xml_parser,$xml,true);
		xml_parser_free($this->xml_parser);
		return $this->arrays[0];
	}
 
	function startElement($parser, $name, $attrs)
	{
		$this->keys[]=$name;
		$this->node_flag=1;
		$this->depth++;
	}
 
	function characterData($parser,$data)
	{
		$key=end($this->keys);
		$this->arrays[$this->depth][$key]=$data;
		$this->node_flag=0;
	}
 
	function endElement($parser, $name)
	{
		$key=array_pop($this->keys);
		if($this->node_flag==1)
		{
			$this->arrays[$this->depth][$key]=$this->arrays[$this->depth+1];
			unset($this->arrays[$this->depth+1]);
		}
		$this->node_flag=1;
		$this->depth--;
	}
}
 
 
$dizi=array('seviye1_1'=>'45','seviye1_2'=>array('seviye2_1'=>'56','seviye2_2'=>'78'),'seviye1_3'=>'62');
$cevir= new assoc_array2xml;
$xml=$cevir->array2xml($dizi);
 
echo htmlentities($xml);
echo "<br>";
 
$xml_dizi=$cevir->xml2array($xml);
print_r($xml_dizi);
 
?>

Zeev Suraski ve Derick Rethans Türkiye’de!

Diğer, php 1 Yorum »

PHP’nin yaratıcısı ve geliştiricisi Zeev Suraski ile PHP dilinin aktif geliştiricilerinden biri olan Derick Rethans, 24 Ocak 2009‘da Taksim Nippon Otelde düzenlenen web programcıları platformu etkinliği için Türkiye’ye geliyorlar.

Golden Horn Ventures’un liderliğinde gerçekleştirilen etkinlik hakkında bilgi almak ve diğer katılımcıları görmek için www.webprogramcilariplatformu.org adresini ziyaret edebilirsiniz. Etkinlik programı için buraya, kayıt yaptırmak için buraya.

Web programcılarının kaçırmaması gereken bir etkinlik…

Özgürlük İçin OOXML’e Karşı!

open source Yorum Yok »
http://www.ozgurlukicin.com/media/ooxml/ooxmlekarsi.png

Özgürlükiçin.com adresinde OOXML(Office Open XML)‘e karşı kampanya başlatılmış. OOXML ve XML arasındaki farkı, neden karşı olduklarını buradan öğrenebilir ve yine buradan kampanyaya destek verebilirsiniz.

“OpenDocument dosya biçimlerinin birer uluslararası ISO standardı olarak kabul edilmesi üzerine, pek çok ülkede “özgür ve açık standartlar” kullanma eğilimi artış gösterdi. Bu gelişmeden rahatsız olan ve OASIS üyesi olmasına karşın OpenDocument’ın standartlaşması aşamasında işbirliği davetlerini reddeden Microsoft, kendi Office serisi ürünlerinde kullanacağı XML tabanlı dosya biçiminin bir ISO standardı olarak kabulü için çalışmalara başladı. Microsoft’un bir ISO standardı olarak kabul edilmesini istediği bu yeni dosya standardının adı OOXML…”

Linux – Unix Sistemlerde Sadece Bulunduğunuz Dizinde Dosya veya Dizin Arama

linux Yorum Yok »

Bir dizin içerisinde alt dizin ve dosyaları içermeyecek bir arama yapabilmek için find komutunun maxdepth parametresinin kullanılması gerekir.

find / -maxdepth 1

komutu kök dizinde bulunan dosya ve dizinleri bulur. Find komutunda diğer parametrelerle birlikte kullanabilirsiniz.

find / -maxdepth 1 -amin -10

komutu kök dizinde bulunan son 10 dakika içeresinde erişilmiş olan dosyaları bulup listeleyecektir.

FTP Dosyalarını Lokal Dosya Gibi Kullanmak (ftp mount)

linux 1 Yorum »

Linux kullanırken bazı programların ftp desteği olmaması canımızı sıkabilir. Bu durumun üstesinden gelmek için linux kernelinin fuse desteği ile derlendiği veya fuse modüllerinin çalıştırılabiliceği linux dağıtımlarında curlftpfs paketini kurarak lokalde oluşturduğumuz bir klasörü bir ftp sunucusuna bağlayıp istediğimiz ftp sunucusunu lokal bir klasörmüş gibi kullanabiliriz.
debian için;

apt-get install  curlftpfs

komutuyla veya aptitude yardımıyla paketi kurulum için işaretlemek ve kurmak yeterli olacaktır.

Kurulumu tamamladıktan sonra ftp üzerinden dosya düzenlemek veya benzeri işlemler için gerekli bağlantıyı kurmak için öncelikle mount edilecek bir dizin oluşturalım.

mkdir /mnt/ftp

Dizini oluşturduktan sonra

curlftpfs ftp://kullaniciadi:sifre@sunucuadresi/ /mnt/ftp/

komutu ile ftp dizinini lokal dizinimize bağlamış oluruz. Bundan sonra bu dizinde yapacağımız tüm işlemler otomatik olarak ftp’deki sisteme yansıyacaktır.Unmount etmek için ise basitçe

umount /mnt/fs

komutunu vermek yeterlidir.

Mysql “The table is full” hatası ve Max_data_length

mysql Yorum Yok »

Mysql myisam depolama motoru varsayılan olarak 32bit bir adresleme yaptığı için index dosyaları 4gb’dan daha büyük bir data (MYD dosyası) adresleyememektedir. Bu sorunu aşmak için tablo oluşturulurken verilecek olan ayarlarla adreslenecek data miktarının en fazla boyutu belirlenebilir. Tablo zaten var olan bir tablo ise alter table komutu ile tablonun oluşturma ayarları değiştirilebilir. Burada dikkat edilmesi gereken nokta ise alter table komutunun çalışması esnasında tüm indexler yeniden oluşturulacağı için komutun çalışma süresidir. Primary index dışında hiçbir indexi olmayan bir tabloda bu işlem 2 dakika civarında sürerken (4XOpteron,4X15K RPM SCSI,20GB RAM makina konfigürasyonu) index sayısına ve makinanın konfigürasyonuna bağlı olarak bu işlem saatlerce sürebilmektedir.

Eğer kullandığınız bir tabloda “The table is full” hatası alıyorsanız sorunu çözmek için öncelikle tablo yapısını incelemek için:

mysql> show table status like 'tablo' \G
*************************** 1. row ***************************
           Name: tablo
           Type: MyISAM
     Row_format: Dynamic
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 4294967295
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2003-03-03 00:43:43
    Update_time: 2003-03-03 00:43:43
     Check_time: 2003-06-14 15:11:21
 Create_options:
        Comment:
1 row in set (0.00 sec)

Dikkat ederseniz maksimum data boyutu Max_data_length 4gb. Bunu düzeltmek için

mysql> alter table tablo max_rows = 200000000000 avg_row_length = 50;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> show table status like 'tablo' \G
*************************** 1. row ***************************
           Name: tablo
           Type: MyISAM
     Row_format: Dynamic
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 1099511627775
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2003-06-17 13:12:49
    Update_time: 2003-06-17 13:12:49
     Check_time: NULL
 Create_options: max_rows=4294967295 avg_row_length=50
        Comment:
1 row in set (0.00 sec)

Şimdi mysql daha çok veri depolamamıza izin verecek.

Burada max_rows parametresi en fazla eklenebilecek kayıt sayısını, avg_row_length ise yaklaşık satır boyutunu belirtmektedir. Verdiğimiz rakamlar sonuçta gene bazı limitleri ifade etmektedir. Limitsiz hale getirmemektedir.

Dikkat edilmesi gereken bir diğer husus ise işletim sisteminin desteklediği maksimum dosya boyutudur. Bazı işletim sistemleri (örneğin solaris)  dosya boyutuna 4gb gibi bir sınır koymuş ise bu yapılan işlemler işe yaramayacaktır. Sistem planlaması esnasında bu tür konular gözönünde bulundurulmalıdır.

Lampforweb 2007 Tüm hakları saklıdır. Tema N.Design Studio
İçerik RSS Yorum RSS Giriş