Bugün: 08/10/2008. Hoşgeldiniz!

Nisan, 2008

Php - $_request (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

$_REQUEST : PHP 4.1.0 ile gelmiştir. PHP 4.3.0 den önce $_FILES bilgisi $_REQUEST değişkenine dahil edilmişti

$_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer register_globals değişkeni php.ini de ayarlanmışsa bu değişken her yerde (Global Scope) kullanılabilir

Bu değişkenin taşıdığı veriye adres çubuğundan erişilemez

Anlatımlardaki username formdaki metin alanının (textfield) adı olup aynı olmak zorundadır.ilgili veriye erişmek için verinin girildiği alan adı değişkene yazılır

PHP Kodu:
<?php

$_POST['username'];

$_GET['username'];

$_REQUEST['username'];

//veya

//Bu örnekler yukarıda bahsettiğim gibi SuperGlobal değildir

$HTTP_POST_VARS['username'];

$HTTP_GET_VARS['username'];

$HTTP_REQUEST_VARS['username'];

?>

kaynak: ordan burdan

Php - Import_request_variables (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

import_request_variables değişkeni ile
GET/POST/Cookie değişkenlerini Genel Alana (Global Scope) dahil eder

PHP Kodu:
<?php

import_request_variables("GPC", "vb_");

echo $vb_username;

?>
Bu komutta type olarak kullanılan 3 değişken vardır.ve bu harfle hangi değişkeni komuta dahil edeceğinizi belirler ve bunlar için itenilen her kombinasyon kullanılabilir
'G' ————–>GET
'P' ————–>POST
'C'—————>COOKIE

PHP Kodu:
<?php

import_request_variables("GP", "vb_");

//veya

import_request_variables("C", "vb_");

?>
*Eğer G ile P aynı anda kullanılırsa POST , GET üzerine yazacaktır.

Önek seçmeli olup istenilen her şey yazılabilir. fakat boş brakıldığında E_NOTICE hatası alınabilir

kaynak: ordan burdan

Php - Url Kodları (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

HTTP protokolüne göre, temel ASCII listesi içinde yer almayan karakterler, ve tabiî bu arada sadece Türkçe'de bazı diğer alfabelerde bulunan harfler, bir Form'da yer aldığı taktirde, Browser tarafından URL şemasına göre kodlanarak gönderilir. Gerçi bir çok HTTP sunucu programıbu karakterlere tanıyabilir ve bir dosyaya yazarken doğru şekilde yazabilirler; ama bu çevirme işleminin bazen program yardımıyla yapılması gerekebilir. Bizim için önemli karakterler ve URL kodları şöyle:

ü = %FC

Ü = %DC

ö = %F6

Ö = %D6

ı = %FD

İ = %DD

ğ = %F0

Ð = %D0

ş = %FE

Ş = %DE

ç = %E7

Ç = %C7

% = %25

& = %26

[ = +%5B

] = %5D

{ = %7B

} = %7D

? = %3F

= = %3D

kaynak: ordan burdan

Php - Http_env_vars Bilgileri (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

HTTP_ENV_VARS HTTP Sunucu programın çalışmakta olan PHP dosyası için oluşturduğu çevre değişkenlerinin yazılı olduğu dizi değişken. Bu değişkenin içinde şu unsurlar bulunur:

HOSTNAME: Sunucunun IP adresi

SHELL: Unix sisteminde kullanılan Shell programı

HOSTTYPE: Sunucunun adı ve sürünü

OSTYPE: Sunucu'nun işletim sistemi

HOME: Çalışan programın kök dizini

PATH: Çalışan programın Sunucu'daki yolu

HTTP_SERVER_VARS Sunucu programın çalışmakta olan PHP dosyasına sunduğu bazı bilgilerin bulunduğu dizi değişken. Bu değişkenin içinde şu unsurlar bulunur:

PHP_SELF: Çalışan PHP programının bulunduğu dizin ve adı

PATH_TRANSLATED: Çalışan PHP programının fiziksel yolu

HTTP_GET_VARS Bir Form'dan GET metoduyla alınan bilgilerin anahtar=değer çiftleri olarak kaydedildiği dizi değişken

HTTP_POST_VARS Bir Form'dan POST metoduyla alınan bilgilerin anahtar=değer çiftleri olarak kaydedildiği dizi değişken

HTTP_USER_AGENT Ziyaretçinin bilgisayarında kurulu Internet Browser programı

QUERY_STRING Form ile bilgi alırken GET metodunu kullandığımız takdirde, Browser'ın göndereceği bilgilerin tutulduğu değişken

REMOTE_ADDR Ziyaretçinin bilgisayarına ISS tarafından atanmış IP adresi

REQUEST_METHOD Form ile gelen bilgilerin gönderildiği metod: GET veya POST

REQUEST_URI O anda çalışmakta olan PHP dosyasının adı ve varsa bu ada eklenmiş Query_String

SCRIPT_FILENAME O anda çalışmakta olan PHP programının dosya adı

SCRIPT_URI O anda çalışmakta olan PHP programının tam URL adresi

SERVER_ADDR Sunucunun IP adresi

SERVER_PROTOCOL Sunucunun HTTP protokolünün sürümü

kaynak: ordan burdan

Biraz uğraştırıcı yada sıkıcı bir yol olabilir ama php ile istediğimiz sitenin kaynak kodlarını alabiliriz .

&lt;?php $sayfa="http://www.deneme.net"; $kaynak=file_get_contents($sayfa); echo "&lt;textarea cols='400' rows='20'&gt;".$kaynak."&lt;/textarea&gt;"; ?&gt;

Cols='400' ve rows='20' üzerinde değişiklik yaparak istediğiniz sütun ve sıralarda görüntüleyebilirsiniz

kaynak: ordan burdan

Bugünde basit ama yararlı bir konu ele alalım. Php 'de 4.0.1 'den sonra değişkenlere fonksiyon atayabiliyorsunuz. Bu işlem için create_function() fonksiyonunu kullanabilirsiniz. Basit bir örnekle başlayalım:

$carpim_yazdir = create_function('$x,$y','echo $x * $y;');
$carpim_yazdir(5,2);

create_function 'ı eval 'e benzetebilirsiniz. Yanlız unutmayın create_function bir fonksiyonken eval bir dil yapısıdır. Belki create_function ile neler yapabileceğinizi gözünüzde canlandıramadıysanız daha komplek bir örnek vereyim.

$arama = create_function('$anahtar,$array,&$bul','global $bul; foreach ($array as $key => $value) { if (str_pos($value,$anahtar)!==false) $bul[] = $value; }');
$ara = array ( 'Php güzel bir dildir.',
'Php ile hayatınızı kolaylaştırın.',
'Asp nedir bizi ilgilendirmez.',
'Ama perli de severiz.' );

function bul_yazdir($ara,$anahtar,$arama_fonksiyonu) {
$bul = array();
$arama_fonksiyonu($anahtar,$ara,$bul);
foreach ($bul as $value) {
echo '- '.$value.'<br />';
}
}

bul_yazdir($ara,'Php',$arama);

Burda basit bir arama fonksiyonu yazdım, altına da basit normal bir fonksiyon koydum ki farkı görün. Değişken fonksiyonların iyi tarafı bu fonksiyonları serialize edip oturumda veya bir dosyada saklayabilir ve daha sonra tekrar kullanabilirsiniz. Bir diğer kullanımı da callback (geri çağırım) fonksiyonları ile kullanmaktır. Buna da bir örnek verelim çünkü bu kullanım çok önemlidir. Yukarıdaki betiğin callback ile yazılmış halini aşağıda görelim:

$anahtar = 'Php';
$ara = array ( 'Php güzel bir dildir.',
'Php ile hayatınızı kolaylaştırın.',
'Asp nedir bizi ilgilendirmez.',
'Ama perli de severiz.' );
$bul = array();
$arama = create_function('&$deger,$indeks', 'global $anahtar; if (strpos($deger,$anahtar)) {global $bul; $bul[] = $deger; }');
$ara_ve_yazdir = create_function('&$deger,$indeks', 'global $anahtar; if (strpos($deger,$anahtar)) echo $deger.'<br />'; ');
array_walk($ara, $arama);
echo '<pre>',print_r($bul,true),'

kaynak: ordan burdan

Php - Curl Ile Download Yapmak (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

function dosya_indir($link,$name=null)
{

$link_info = pathinfo($link); //Yol bilgilerini değişkene atıyoruz.
$uzanti = strtolower($link_info['extension']); //Dosyanın uzantısını değişkene atıyoruz.
$file = ($name) ? $name.'.'.$uzanti : $link_info['basename']; //Eğer kayıt edilmek üzere dosya adı girilmişse, girilen dosya adını değişkene atıyouruz, girilmemişse orjinal adını değişkene atıyoruz.

$curl = curl_init($link);
$fopen = fopen($file,'w');

curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
curl_setopt($curl, CURLOPT_FILE, $fopen);

curl_exec($curl);
curl_close($curl);
fclose($fopen);

}

dosya_indir('http://site/a.zip');
PHP dosyasının bulunduğu dizine orjinal adında yani [a.zip] şeklinde dosyayı kayıt eder.

dosya_indir('http://site/a.zip','dosya_adi',);
PHP dosyasının bulunduğu dizine 2. parametre yani [dosya_adi.zip] şeklinde dosyayı kayıt eder.

kaynak: ordan burdan

Mysql - Veri Nitelikleri (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

1. KARAKTER NİTELİKLER
CHAR

Belirli sayıdaki karakteri saklamak için kullanılır.
Şayet saklanan değer tanımlanan genişlikten kısa ise, karakter kümesinin sağ tarafına tanımlı genişliğe gelene kadar MySQL tarafından boşluk karakteri eklenir.
Örneğin, CHAR(5) tanımlamasını, bu alanda daima 5 karakter uzunluğundaki değerleri saklamak istediğimizde kullanırız. Şayet bu alana "ABC" karakter kümesi eklenecek olursa veritabanında saklanma şekli "ABC "dir.
VARCHAR

Değişken sayıdaki karakterleri saklamak için kullanılır.
Nitelik tanımlamasında girilen değer saklanacak en büyük karakter uzunluğudur.
MySQL 4.1 belirtimlerine göre bir VARCHAR alan en çok 255 karakter (1 byte=28) saklayabilir, ancak MySQL 5'ten sonra 255 ya da 65535 (2 byte) karakter saklayabilirsiniz.
Şayet tanımlanandan (n olsun) daha uzun bir karakter kümesi girme girişiminde bulunursanız ilk n karakteri veritabanına kaydedilecek geri kalan karakterleri kaybetmiş olacaksınızdır.
2. SAYISAL NİTELİKLER

TINYINT

Belirli genişlikte ikili saklar, her zaman 1 byte'dır.
Yukarıdaki ifadenin pratikteki anlamı tinyint alanda en fazla 255 (28-1) sayının saklanabileceğidir.
Şayet sütunu SIGNED olarak tanımlamışsanız, saklanabilecek en büyük pozitif sayı 127, en küçük negatif sayı da -127 olur; 0(sıfır)'ı da sayarsanız 255 sayı tanımlamış oluruz.
Öte yandan değerlerinizin işaretinin aynı olacağını biliyorsanız, sütunu UNSIGNED yaparak; en büyük pozitif sayı limitini 255'e taşıyabilirsiniz.
SMALLINT

Belirli genişlikte ikili saklar, her zaman 2 byte'dır.
SIGNED özelliği ile saklanabilecek en büyük pozitif sayı , en küçük negatif sayı da -32767.
UNSIGNED olarak en büyük (28*28)-1 = (32767*2)-1 = 65'535 olur.
MEDIUMINT

Belirli genişlikte ikili saklar, her zaman 3 byte'dır.
SIGNED özelliği ile saklanabilecek en büyük pozitif sayı 9'199'871, en küçük negatif sayı da -9'199'871.
UNSIGNED olarak en büyük (28*28*28)-1 = 18'399'743 olur.
INT

Belirli genişlikte ikili saklar, her zaman 4 byte'dır.
SIGNED özelliği ile saklanabilecek en büyük pozitif sayı 2'147'483'647, en küçük negatif sayı da -2'147'483'647.
UNSIGNED olarak en büyük (28*28*28*28)-1 = 4'294'967'295 olur.
BIGINT

Belirli genişlikte ikili saklar, her zaman 8 byte'dır.
Yine benzer şekilde, UNSIGNED olarak (28*28*28*28*28*28*28*28)-1 = 18'446'744'073'709'551'616 sayısı saklanabilir; şayet SIGNED olarak kullanacaksanız da bunun yarısı kadar bir değer tutabilirsiniz.
2. ZAMANSAL NİTELİKLER

DATE

Veritabanında saklanma şekli 3 byte'dır.
Tarih saklamak için kullanılır.
En az etkili (significant) basamak en önce saklanır; yani varsayılan depolama biçimi 'yyyy-aa-gg' dir (y: yıl, a: ay, g:gün)
DATETIME

Veritabanında saklanma şekli 8 byte'dır.
Tarih ve zamanı saklamak için kullanılır.
Varsayılan depolama biçimi 'yyyy-aa-gg SS:dd:ss' dir. (y: yıl, a: ay, g:gün, S: saat, d: dakika, s: saniye)
TIME

Veritabanında saklanma şekli 3 byte'dır.
Zamanı saklamak için kullanılır.
Varsayılan depolama biçimi 'SS:dd:ss' dir. (y: yıl, a: ay, g:gün, S: saat, d: dakika, s: saniye)
TIMESTAMP

Varsayılan depolama şekli 4 byte'dır. Bir UNIX fonksiyonu olan time() fonksiyonu ile aynı işi yapar.
Epoch ismi verilen (00:00:00 UTC, Ocak 1, 1970) tarihinden o ana kadarki zaman uzaklığı saklayabilen bir alandır.
YEAR

UNSIGNED TINYINT gibi saklanır.
Farkı ise YEAR alanının 1901 ötelenmiştir. (YEAR) 0 = 1901 olarak düşünülebilir.
Bazı İpuçları

Veritabanı alanlarınızın niteliklerini tanımlarken, gereksinimlerinizi mutlaka belirleyiniz. Örneğin üye sıra no tutacak bir alan tanımlarken yaklaşık ne kadar üyeniz olacağını düşününüz; 100 kişi civarında bir üye potansiyeli öngörüyorsanız bunun için BIGINT tanımlamayınız, bu ciddi performans israfıdır.
Veritabanında saklayacağınız verileri mutlaka veri tipine uygun tanımlanmış alanlarda saklayınız. Sadece rakamlardan oluşacak bir alanı ya da tarih tipinde bir veriyi asla ve asla VARCHAR tipinde saklamayınız; bu veritabanının sizin veritipine özel sunduğu bir çok güzel özellikten (Sıralama seçeneği esneklikleri gibi) feragat etmektir.
Veritabanında bir işlemin yapılma zamanını girecekseniz,yani o anki zamana ihtiyacınız varsa bunun için PHP kodunuz içinde date() fonksiyonu ile o anki zamanı oluşturup girmenize gerek yoktur, zaten MySQL'de NOW() diye bir fonksiyon vardır, çoğu kişinin farkında olmadığı.
Ve son olarak -kendimi yineliyor gibi olacağım ama- veritabanı tasarımı gerçekten önemli bir iştir, bir uygulama yazmadan veritabanı tasarımına yeterli zamanı ayırınız.

kaynak: ordan burdan

Php - Array_fill() (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

dizinin istenilen yerinden istenilen kadar elaman yazma fonksiyonu

1.parametre dizinin kaçıncı elamanıdan başlayacak
2.parametre kaç adet yazılacak
3.parametre yazılacak değer

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

sonuç

Array
(
[5] => banana
[6] => banana
[7] => banana
[8] => banana
[9] => banana
[10] => banana
)

kaynak: ordan burdan

Php - Array_diff() Açıklaması (scripti, nasıl, nedir?)

Yazan: admin Tarih: Nisan - 15 - 2008

1.paramatre de belirtilen dizideki elamanlarla
2.paramatre deki dizideki elamanlarla karşılaştırır
farklı olanları gösterir

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

sonuç :1.dizideki blue 2.dizide yok
Array
(
[1] => blue
)

kaynak: ordan burdan