nedir

@mysql_connect('localhost','kullanıcı_adı','şifre');

@ işareti konur

kaynak: ordan burdan

makalele dokumanlardaki kodlarını olarak bulup renklendirmesini istersek?

Alemini ilk açtığımda bulduğum yeni tekniklerini gösterirken, yazdıgım örnek kodları tek tek kendim renklendirmek zorunda kalıyordum. Acaba bu işi yapmanın kolay bir yolu yok muydu? Başladım manual i ıştırmaya. Evet de kod highlighting fonksiyonları vardı. Ama bence biraz yetersizler çünkü mevcut üç fonksiyonda sadece verilen kaynağı renkli olarak ekrana basabiliyorlar. Peki bence neleri eksik?

Verilen kaynağı işlemden geçirdikten sonra değişkenkenlere atayamıyorlar.
ışık(text+code) bir kaynakta tarama yaparak ilgili kısımları renklendiremiyorlar.
kodları statik(Açık için düşünülmüş). Yani Sayfa renklerinizin koyu bir olması kodun okunmasını zorlaştırıyor.
Bu fonksiyonların açıklarını kapatacak yeni fonksiyonlarımı tmadan önce mevcut bu üç fonksiyona bir gözatalım.

<?
highlight_string("string") //string kısmına kodu yazmalısınız.
highlight_file ("string filename") // kodu içeren dosya yolu kullanılarak dosya içeriğini basar.
show_source (string filename) // Üsttek fonksiyonla işlevi aynıdır.
?>

Ewet gördüğünüz gibi hepsinin işlevi hemen hemen aynı.

Peki bir kodu renklendirdikten sonra bir değişkende saklayabiliriz. Bunu için output kontrol fonksiyonlarını kullanmamız lazım. Burada bu fonksiyonlardan bahsetmeyeceğim. Ama konu ile ilgili manual(output control) ı burada bulabilirsiniz.

Renklendirimiş kodu değişkene atayan fonksiyon:

<?
function phpcode($code)
{

ob_start();
highlight_string(stripslashes($code));
$buffer = ob_get_contents();
ob_end_clean();

return $buffer;
}
?>

Peki diyelimki tıpkı bu sayfada olduğu gibi ışık(text + + ) bir dosyanız var. Bu sayfadaki sadece ilgili kodları renklendirirsiniz. Bunun için tek yapmanız gereken bir Regex araştırması ile kodları bulup yukardaki fonksiyonu ugulamak yani:

<?
/* Bu örnek arama kaplama işinde ben yazıma [ ] ile başlayıp [ / ] ile biten kodları aratıyorum. Bu benim kişsel terchim. Tabii istenirse direkt olarak <? ?> kelimeleri de aranabilir. */
preg_replace('/[][nr]*(.+?)[nr]*[/]/esi',"phpcode('1')",$mixtext);
?>

Son olarak ı koyu sayfalar için yazdıgım highlighting fonksiyonuna bir gözatalım:

<?
// Bu fonksiyon default .ini dosyasındaki değeler için tasarlanmıştır.
function phpcode($code)
{
ob_start();
highlight_string(stripslashes($code));
$buffer = ob_get_contents();
ob_end_clean();
$buffer = eregi_replace("000000","CCCCCC",$buffer);
$buffer = eregi_replace("006600","33cc00",$buffer);
$buffer = eregi_replace("0000CC","0099ff",$buffer);
$buffer = eregi_replace("CC0000","ffffcc",$buffer);
return $buffer;
}
?>

kaynak: ordan burdan

Birçok web sitesinin, web programcısının yardımcısı olan Robots.txt, arama motorları örümceklere sitenizdeki dosya klasörlerin hangisini gezip hangisini de bu işlem dışında bırakıp içeriğine girmeyerek onlardan uzak tutan dosyadır.

Dosya temelinde basit bir txt dosyasından olusur ismi "Robots.txt" şeklindedir. bu dosya kullanılacak ise, tüm web sayfanızın bulundugu ana dizinde bulunmalıdır.
(Örnek: Şuanda bulundugunuz 'umun ; blogs.datasenkron.com/engintopcuoglu oldugundan klasorum engintopcuoglu oldugundan robots.txt bu klasorun icinde olmalı blogs.datasenkron.com/engintopcuoglu/robots.txt olarak ulaşılabilmelidir.)

Peki Ama, Robots.txt dosyasına ihtiyaç duyarız?

Birçok Arama Motoruna Ait Örümcekler, Web Sitenizi Ziyaret Ettiği İlk Anda Hemen Robots.txt 'yi ararlar web sitenizin herhangi bir üne girilmesini istiyor yada istemiyorsanız bu dosyadan veri alırlar bu dosyadaki izinler dahilinde sitenizi dolaşırlar.

Aslında diğer bir değişle bu dosyalar sitenizin arama motorlarında indeksleyicisi, yani görünmesini istediğimiz verilerin neler olduğunu mlayan şılama dosyalarıdır.

Robots.txt 'nin Genel İçeriği

İlk önce, robots.txt 'yi oluşturmak için notepad uygulamasını (Not Defteri : Başlat > Programlar > Donatılar > Not Defteri) çalıştıralım.
İçerisine,

User-agent: *
Disallow:

yazalım. Biz bu şekilde, sayfamız için oluşturacak olduğumuz robots.txt ile "bana ait web sayfasının tüm dosyalarını internet üzerinde arama sonuçlarında görüntüleyebilirsin" dedik tamamen tüm dosyalara izin verdik.

Fakat, diyelim ki bizim web sitemizde "veritabanlari" adinda bir klasor olsun bunun icindeki hicbir verinin dolayli yada dolaysiz bir sekilde , , gibi arama motorlarında cıkmasını istemiyorsak, üstteki mlamada yer alan "disallow" satırını,

Disallow: /images/

seklinde mlamamız gerekmektedir. Fakat, yine bu klasorumuz bir tane degil, birden fazla ise, disallow satırını cogaltmamız gerekmektedir.

Örnek:
Disallow: /klasor1/
Disallow: /klasor2/ gibi..

kaynak: ordan burdan

Uygulamalarımızda string manipulation dediğimiz metin değerlerin şekillendirilmesinde kullanılan bazı fonksiyonlar vardır. 'nin dahili fonksiyonları malesef çe karakterlerle (ğüşıöç-ÐÜŞİÖÇ) uyumlu çalışmıyor. Geliştirdiğim uygulamalarda kullandığım bazı fonksiyonları bir araya topladım bir sınıf (class) haline getirdim. Bunu da sizlerle paylaşayım dedim.

class.strtrfunc.

<?
/*
* Sınıf : strtrfunc
*
* @Geliştirici : İzzet Emre Erkan <kara@karalamalar.net>, <eerkan @graf2.com>
* URL : http://www.karalamalar.net
*
* @Versiyon : 1.0
* : 09.01.2007
* Amaç : Metin şekillendirme işlemlerinin çe karakterler ile uyumlu bir şekilde yapılması
*/

class strtrfunc {
private $kHarf; // çe karakterler (Küçük)
private $bHarf; // çe karakterler (Büyük)

function __construct() {
$this->kHarf = array("i","ı","ş","ğ","ö","ü","ç");
$this->bHarf = array("İ","I","Ş","Ð","Ö","Ü","Ç");
}
/*
* çe karakterleri dikkate alarak kelimenin tüm harflerini büyütür.
*
* @param string $metin
* @return string
*/
function buyut($metin) {
return strtoupper(str_replace($this->kHarf,$this->bHarf,$metin));
}
/*
* çe karakterleri dikkate alarak kelimenin tüm harflerini küçültür.
*
* @param string $metin
* @return string
*/
function kucult($metin) {
return strtolower(str_replace($this->bHarf,$this->kHarf,$metin));
}
/*
* çe karakterleri dikkate alarak, parametre olarak gönderilen kelimeyi ilk harfi büyük,
* geriye kalan harfleri küçük hale getirir. (Cümleler için ihbc fonksiyonunu kullanın)
* ihb = ilk harf büyük
*
* @param string $metin
* @return string
*/
function ihb($metin) {
$metin = $this->kucult($metin);
return strtoupper($this->buyut(substr($metin,0,1))).substr($metin,1);
}
/*
* Bir cümlenin ilk harfini ($tumu = false) ya da bütün kelimelerinin ilk harflerini ($tumu = true) büyüten fonksiyon
* Kelimelerin ilk harflerini büyütürken ihb fonksiyonunu kullanır. Tümü büyük harften oluşan kelimeleri pas geçer.
* (Örneğin AIDS, TBMM vb)
* ihbc = ilk harf büyük cümle
*
* @param string $metin
* @param boolean $tumu
* @param boolean $bKelime
* @return metin
*/
function ihbc($metin, $tumu = false) {
$kelimeler = explode(" ", $metin);
$metin = "";
if(count($kelimeler)>1) {
$i=0;
foreach($kelimeler as $kelime) {
if($kelime == $this->buyut($kelime)) $metin .= $kelime." ";
else {
if($i < 1) $metin .= $this->ihb($kelime)." ";
else $metin .= ($tumu?$this->ihb($kelime):$kelime)." ";
$i++;
}
}
$metin = substr($metin,0,-1);
}
else {
if($kelimeler[0] == $this->buyut($kelimeler[0])) $metin .= $kelimeler[0];
else $metin = $this->ihb($kelimeler[0]);
}
return $metin;
}
}
?>

Kullanımı için örnek:
ornek.

<?
include("./class.strtrfunc.");

$tr = new strtrfunc();

echo $tr->buyut("belki ağlamıyordu ama ne kadar saklamaya çalışsa da üzüntüsü gözlerinden okunabiliyordu.");
echo "<br />";
echo $tr->kucult("BELKİ AÐLAMIYORDU AMA NE KADAR SAKLAMAYA ÇALIŞSA DA ÜZÜNTÜSÜ GÖZLERİNDEN OKUNABİLİYORDU.");
echo "<br />";
echo $tr->ihb("belki");
echo "<br />";
echo $tr->ihbc("belki ağlamıyordu ama ne kadar saklamaya çalışsa da ÜZÜNTÜSÜ gözlerinden okunabiliyordu.");
echo "<br />";
echo $tr->ihbc("belki ağlamıyordu ama ne kadar saklamaya çalışsa da ÜZÜNTÜSÜ gözlerinden okunabiliyordu.",true);
?>

kaynak: ordan burdan

gettext fonksiyonlarını C, C++, Phyton, , Perl gibi bir çok dilde kullanabilirsiniz. Ben size 'deki kullanımından bahsedeceğim.

Öncelikle sunucunuzun ayarlarını kontrol etmelisiniz. gettext fonksiyonlarını kullanabilmek için php_gettext genişleme paketinin aktif olması gerekmektedir. phpinfo() ile kurulum ayarlarınızı ekrana dökün. "gettext" kelimesini arattırın. şınıza "GetText Support enabled" yazısını bulduysanız bir şey yapmanıza gerek yok. Eğer phpinfo() çıktısında gettext ile ilgili bir şey bulamıyorsanız, .ini dosyanızda "php_gettext.dll" diye aratın, bulduğunuz satırın başındaki noktalı virgül (;) işaretini kaldırın dosyayı kaydedin. Web sunucunuzu baştan başlatın tekrar phpinfo() çıktısını kontrol edin. Her şey yolunda gittiyse phpinfo() çıktısında "gettext" diye arattığınızda "GetText Support enabled" yazısını görmeniz lazım. Bunları yapmanıza rağmen göremiyorsanız kurulumunuzu gözden geçirin.

gettext fonksiyonlarının aktif olduğunu kabul ederek devam ediyorum. Bu noktadan sonra oluşturacağınız tüm dosyaları UTF-8 karakter setini kullanarak oluşturun. İlk olarak yeni bir dosyası yaratın içine şunları yazın.

<?
echo gettext("Merhaba ");
?>

Tarayıcınızla bu dosyayı çağırdığınızda "Merhaba " çıktısını alacaksınız. her seferinde gettext yazmaya üşenenler _() fonksiyonunu da kullanabilir. Aşağıdaki kod da "Merhaba " çıktısını üretecektir.

<?
echo _("Merhaba ");
?>

Dil değiştirmenin zamanı geldi. Öncelikle uygulamamızda dil değiştiğinde değişmesi gereken metinlerden bir katalog oluşturmamız lazım. Bunun için bir kaç seçeneğimiz var. Bunlardan biri GNU gettext for WIN32 benzeri için hazırlanmış bir kullanmak bir diğeri de ücretsiz poEdit ını kullanmak. Katalog dosyanızı kendiniz de yaratabilirsiniz ama büyük projelerde etmem. (Hatta hiç etmem) Benim tercihim poEdit'den yana. versiyonunu kullanıyorum. Kısaca katalog oluşturmayı da anlatayım.

Dosya menüsünden Yeni katalog seçeneğini seçtiğinizde şınıza bir pencere geliyor. Birinci sekmede kataloğun genel ayarlarını yapıyorsunuz. Projenin ismi, kataloğun hangi dilde hazırlandığı, karakter kümesi, kaynak dosyaların karakter kümesini projenize uygun olarak seçtikten sonra ikinci sekmede projenizin çalıştığı yolu ekliyorsunuz. örneğin "c:apachehtdocsgettext_ornek" şeklinde. Üçüncü sekmede ise projede kullandığınız çeviri için kullanılacak fonksiyon isimlerini giriyorsunuz. Eğer projenizde "_" ya da "gettext" fonksiyonlarından birini ya da ikisini beraber kullandıysanız bu kısımdan ekleyin. Tamam tuşuna bastığınızda .po dosyanızı nereye kaydetmek istediğinizi soracak. Şimdilik kolayca erişebileceğiniz bir yere kaydedin. Kaydet tuşuna bastığınızda projeniz taranacak belirtmiş olduğunuz fonksiyonlardan çevirisi yapılacak metinlerin bir listesi ekrana gelecek. Tamam'a tıkladığınızda çevrilecek metinler ekranda sizi bekliyor olacak. "Merhaba " metnini "Hello " olarak çevirip .po dosyanızı "mesajlar.po" ismiyle edin. ettiğinizde olarak .mo dosyanız da oluşacaktır. .mo dosyası da nereden çıktı diyeceksiniz. .mo dosyası da .po dosyanızdan üretilen paketlenmiş katalogdur diyebiliriz.

Katalog dosyamızı da oluşturduğumuza göre bu katalog dosyasını ile kullanarak projemizi başka bir dilde çalışır hale getirebileceğinizi bir örnek ile anlatayım.

Öncelikle projenizin kök dizininde "diller" adıyla bir klasör yaratın. "diller" klasörünün altına de ingilizce için "en" adıyla yeni bir klasör yaratın son olarak da "en" klasörünün altında "LC_MESSAGES" adıyla yeni bir klasör yaratın. Daha önceden poEdit ile hazırlamış olduğumuz .po .mo dosyalarını "LC_MESSAGES" klasörünün altına taşıyın isimlerini "mesaj.po", "mesaj.mo" olarak değiştirin. Aşağıdaki gibi bir klasör yapınız oluşmuş olması lazım.

/diller
/en
/LC_MESSAGES
mesaj.po
mesaj.mo

Artık her şey yerli yerinde. Şimdi sıra kodunda. Kodunuzu aşağıdaki gibi değiştirin.

<?
$locale = "en";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("mesaj", "./diller");
textdomain("mesaj");

echo _("Merhaba ");
?>

ınızı çalıştırdığınızda ekranda "Hello " çıktısını göreceksiniz. Peki projeniz yeni kodlar eklediniz bunların da kataloğa eklenmesi gerekiyor. Ne yapacaksınız? çok basit. Örneğin kodumuza yeni bir satır ekleyin.

<?
$locale = "en";
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("mesaj", "./diller");
textdomain("mesaj");

echo _("Merhaba ")."<br>";
echo _("Websiteme hoşgeldiniz");
?>

poEdit ile ingilizce .po dosyanızı açın araç çubuğundan güncelleme çubuğuna basın (eğer değişmediyse soldan sağa üçüncü tuş. Dünyanın çevresinde dönen oklar olan.) kodunuzu inceleyerek yeni satırı kataloğa ekleyecektir. Hemen yeni cümleyi çevirin. "Welcome to my website". Dosyı kaydedip ınızı çağırdığınızda aşağıdaki çıktıyı elde edeceksiniz.

Hello
Welcome to my Website

Diyelim ki gettext ile çevrilen bu metinleri her seferinde echo ile ekrana basmak yerine ufak bir fonksiyon kullanmak istediniz. Örneğin;

<?
function _e($metin) {
echo _($metin);
}

_e("Merhaba ");
?>

Katalog ayarlarında anahtar kelimeler sekmesinde bu yeni fonksiyonunuzu da tırsanız ilk güncelleme sırasında yeni fonksiyonunuz ile kullandığınız metinler de katalog dosyasına eklenecektir.

Genel olarak gettext ile anlatacaklarım bu kadar. Kafanıza takılan ya da anlamadığınız bir nokta varsa elimden geldiğ yardımcı olmaya çalışırım.

kaynak: ordan burdan

function rastgeleSatir($tablo, $rowid, $secilecekler = "*") {
$maks = mysql_result(mysql_query("SELECT max($rowid) FROM $tablo"),0,0);
$rastgeleSayi = mt_rand(1,$maks);
$rastgeleSatir = mysql_fetch_array(mysql_query("SELECT $secilecekler FROM $tablo WHERE $rowid >= $rastgeleSayi ORDER BY $rowid ASC LIMIT 1"));
if(!is_array($rastgeleSatir))
$rastgeleSatir = mysql_fetch_array(mysql_query("SELECT $secilecekler FROM $tablo WHERE $rowid < $rastgeleSayi ORDER BY $rowid DESC LIMIT 1"));
return $rastgeleSatir;
}
?>

<?
// Tüm sütunlarla beraber rastgele bir satır döndürmek için
print_r(rastgeleSatir("tablo_adi", "tanimlayici_sutun"));

// Belirli sütunlarla beraber rastgele bir satır döndürmek için
print_r(rastgeleSatir("tablo_adi", "tanimlayici_sutun", "sutun1, sutun2, sutun3"));
?>

kaynak: ordan burdan

Yazının geri kalanında constant kelimesi yerine sabit kelimesini kullanacağım.

Şimdi düşününce önceki yazıda sabitlerden bahsetmemek isabet olmuş. diye soracak olursanız, değişkenlerden, değişken değişkenlerden bahsederken sabitlerden bahsetmek kafa ıştırabilirdi. Neyse lafı fazla uzatmadan konuya girelim.

Değişkenlerle şılaştırıldığında çok daha az özelliğe sahip olan sabitlerin en önemli özelliği global mlayıcılar olmalarıdır. Bir kere mladıktan sonra isterseniz fonksiyon içinde isterseniz sınıf içinde rahatça kullanabilirsiniz. Sabitlerde saklayabileceğiniz veri tipleri sınırlıdır(metin(string), tamsayı(integer), mantıksal(boolean) ). Global olmaları sınırlı veri tipi gibi sebeplerden genellikle uygulamaların ayar bilgilerini saklamak için kullanılır bu işte oldukça iyidirler.

Sabitleri mlamak değişkenlere nazaran oldukça farklılık gösterir. Sadece define() fonksiyonu ile mlanabilirler bir kere mlandıktan sonra içeriği değiştirilemez ya da yok edilemez (Sihirli sabitler (Magic Constants) haricinde (ki onlar da aslında sabit sayılmazlar)). Değişkenleri mlarken değişken isminin başına konan $ işareti sabitlerde kullanılmaz. İsimlendirme konusunda değişkenlerle hemen hemen aynı kurallara tabidir. Büyük/Küçük harf duyarlıdırlar ama bir zorunluluk olmasa da sabit isimleri genelde tamamıyla büyük harflerden oluşur. Geçerli bir sabit ismi bir harf ya da alt çizgi ile başlar devamında istenildiği kadar harf, sayı ya da alt çizgi kullanılabilir.

<?
// Geçerli sabit mlamaları
define("MEYVA", "Elma");
define("SEBZE3", "Patlıcan");
define("_ARABA", "Şahin");

// Geçersiz sabit mlamaları
define("3SEBZE", "Patlıcan");
define("SEBZE-3", "Patlıcan");
?>

Ufak bir uyarı; aşağıdaki kullanım doğru geçerli olmakla beraber kullanılmaması edilir. gelecekte sizin verdiğiniz isimle aynı isimde bir sihirli sabit mlarsa uygulamanızda problemler ortaya çıkabilir

<?
define("__SEBZE__", "Patlıcan");
?>

'de önceden mlanmış bir çok sabit vardır. Bunları Öntanımlı Sabitler(Predefined Constants) başlığı altında Manual'da bulabilirsiniz. (PHP_OS, PHP_VERSION vb.) Bir çok öntanımlı sabit bulunmasına rağmen her zaman bunların hepsini kullanamayabilirsiniz. Bazı öntanımlı sabitler belli uzantıların (extension) yüklü olmasını gerektirir. (PEAR_INSTALL_DIR vb.) Değişken yaratırken kullanırken bunları aklınızdan çıkarmayın.

Gelelim yazıda da bir kaç kez adı geçen sihirli sabitlere. Şu an için 5 olan bu sabitlerin isimleri sabit olsa da belirli durumlarda değerleri değişebilir.

İsim Açıklama
__LINE__ O an derleyicisi tarafından İşlenen satır numarası
__FILE__ Çalışmakta olan sayfanın tam
__FUNCTION__ İşletilmekte olan fonksiyonun ismi
__CLASS__ İşletilmekte olan sınıfın ismi
__METHOD__ Sınıfa ait metodun ismi

kaynak: ordan burdan

502 Bad Gateway
HTTP 502 - Kötü Geçiş
____________________________________
501 Not Imlemented
____________________________________
500.100 Internal Server Error
HTTP 500.100 - İç Sunucu Hatası - ASP hatası
____________________________________
500.15 Internal Server Error Direct requests for GLOBAL.ASA
HTTP 500-15 - global.asa ya ilişkin isteklere izin verilmiyor
____________________________________
500.13 Internal Server Error Server too busy
HTTP 500-13 - Sunucu çok meşgul
____________________________________
500. Internal Server Error Application restarting
HTTP 500- - Uygulama Yeniden Başlatılıyor
____________________________________
500 Internal Server Error
HTTP 500 - İç sunucu hatası
____________________________________
414 Request - URI Too Long
HTTP 414 - İstek - URI Çok Uzun
____________________________________
412 Precondition Failed
HTTP 412 - Önkoşul sız Oldu
____________________________________
407 Proxy Authentication Required
HTTP 407 - Proxy Kimlik Denetimi Gerekiyor
____________________________________
406 Not Acceptable
HTTP 406 - Kabul Edilemez
____________________________________
405 Method Not Allowed
HTTP 405 - Kaynağın kullanılmasına izin verilmiyor
____________________________________
404 Not Found
HTTP 404 Sunucu ya da DNS Bulunamadı Hatası
____________________________________
403.17 Forhidden - Client certificate has expired or is not yet valid
HTTP 403,17 : İstemci sertifikasının süresi sona erdi ya da henüz geçerlilik kazanmadı
____________________________________
403.16 Forhidden - Client certificate untrusted or ill-formed
HTTP 403,16 : İstemci sertifikası güvenilir bulunmadı ya da geçersiz
____________________________________
403.15 Forhidden - Client Licenses Exceeded
HTTP 403,15 : İstemci Erişimi Lisansları aşıldı
____________________________________
403.14 Forhidden - Directory Listing Denied
HTTP 403,14 Erişim izin Listelemesi geçersiz
____________________________________
403.13 Forhidden - Client certificate revoked
HTTP 403,13 : İstemci sertifikası iptal edildi
____________________________________
403. Forhidden - Mapper Denied
HTTP 403. - Erişim : Eşleyici erişimi reddetti
____________________________________
403.11 Forhidden - Password Change
TP 403,11 - Erişim : değişikliği
___________________________________
403.10 Forhidden - Invalid Configuration
HTTP 403,10 - Erişim : Geçersiz yapılanma
____________________________________
403.9 Forhidden - Too many user
HTTP 403,9 - Erişim : Çok fazla kullanıcı bağlı
____________________________________
403.8 Forhidden - denied
HTTP 403,8 : Siteye erişim reddedildi
____________________________________
403.7 Forhidden - Client certificate requred
HTTP 403,7 : İstemci sertifikası gerekiyor
____________________________________
403.6 Forhidden - IP address rejected
HTTP 403,6 : IP reddedildi
____________________________________
403.5 Forhidden - SSL 128 required
HTTP 403,5 : SSL 128 gerekiyor
____________________________________
403.4 Forhidden - SSL required
HTTP 403,4 : SSL gerekiyor
____________________________________
403.3 Forhidden - Write forhidden
HTTP 403,3 : Yazma Erişimi
____________________________________
403.2 Forhidden - Read forhidden
HTTP 403,2 : Okuma Erişimi
____________________________________
403.1 Forhidden - Execute forhidden
HTTP 403.1 : Yürütme Erişimi
____________________________________
401.5 Unauthorized - Authorization failed by ISAPI/CGI app
HTTP 401.5 - Yetki yok: ISAPI ya da CGI uygulaması tarafından yetki verilmedi
____________________________________
401.4 Unauthorized - Authorization failed by filter
HTTP 401,4 - Yetki yok: Yetkilendirme işlemi filtre tarafından reddedildi
____________________________________
401.3 Unauthorized - Authorization due to ACL on resource
HTTP 401.3 - Erişim; kaynaktaki EDL tarafından reddedildi
____________________________________
401.2 Unauthorized - Authorization to server configuration
HTTP 401,2 - Yetki yok: Sunucu yapılandırması nedeniyle oturum açılamadı
____________________________________
401.1 Unauthorized - Logon failed
HTTP 401,1 - Yetki yok: Oturum Açılamadı
____________________________________
400 - Bad Request
HTTP 400 - Yanlış İstek

kaynak: ordan burdan

HTTP filter kullanarak yasaklamak istediğimizde kullandığımız bazı programların imzaları;

ISA Server üzerinde başlıca 3 tip client vardır.

SECURENAT:

Bu client tipinde ISA SERVER'ımızı bir yönlendirici gibi kullanabiliriz.Yapmamız gereken clientlar üzerindeki default gateway adreslerini isa server olarak göstermek.Zaten halihazırda DHCP kullanıyorsak işimiz oldukça kolay.
Bu işlemden sonra kullanıcı internet üzerindeki her hareketini isa server üzerinden gerçekleştirir.Isa server gerekli bilgili client'tan alır yönlendirmeleri gerçekleştirir.

CLIENT:

Bu yöntemde ise server üzerinde bulunan client yazılımının tüm istemcilere yüklenmesi gereklidir.Bu yükleme işleminden sonra client yazılımı sorumluluğu üzerine alır.Aynı zamanda kullanıcı bazlı kontrol sağlanabilir.

WEB PROXY:

Bu client tipinde istemci makinalar üzerinde düzenleme yapmamız gerekiyor.Bildiğimiz gibi kullanıcılar internete erişim için tarayıcılarını kullanırlar.Bu tarayıcılar üzerinde proxy server ayarlarını gerçekleştirebiliriz.Aynı şekilde ISA Server'ın kendisi zaten bir proxy olduğu için proxy ayarlarına isa server'ın ipsi 8080 portunu girdiğimizde kullanıcılar internet üzerinde proxy üzerinden çıkmaya başlayacaklardır.Dezavantajı ise gördüğümüz üzere isa server'ımızı burada sadece internete tarayıcı aracılığı ile çıkışlarda kullanabilyoruz.Interneti kullanan diğer uygulamaları kontrol şansımız burada bulunmuyor.
Ayrıca client'lar üzerinde GPO kullanarak proxy ayarlarını gerçekleştirmemiz gerekiyor.

kaynak: ordan burdan

Isa server üzerinde oluşturduğumuz kurallar sayesinde kullanıcılar üzerinde bazı denetimler sağlayabiliyoruz.Aynı şekilde bu kurallar üzerindeki bazı oynamalarla kullanıcıların tarayıcıları üzerinden ulaştıkları adresleri uzantı bazında filtreleyebiliriz.
Örneğin .mp3 yada .exe gibi.
Çünkü kullanıcılar artık http protokolünü üzerinden istenmeyen birçok işlemi gerçekleştirir oldu.
Bu filtrelemeyi uygulamak için;

-ISA konsolu üzerinden istediğimiz kurala sağ tılayarak "Configure HTTP filter"'ı seçeriz.

-Extensions tabına geliriz.Uzantı bazlı kısıtlamaları bu sayfadan yapacağız.

ISA Server üzerinde url setleri tanımlayarak kullanıcıların belirli sitelere erişim gerçekleştirmesini sağlayabiliriz.Böylece istemci bilgisayar url setlerin dışında bir adrese girmeye çalıştığında başarılı olamayacaktır.
Örnek olarak kullanıcıların sadece

anilerduran.com
yahoo.com
mynet.com

adreslerine girişlerine izin verelim.
Bunun için sırasıyla yapmamız gereken işlemler;

-İlk önce sağdaki menuden toolbax'a geliriz Network Objects altında New diyerek URL Seti seçeriz.

arkadaşlar dünyada oluşan bu yeni virüs şöle yayılıyor…birinin adresine gidiyor ardından o kişinin adres defterine kayıtlı tüm kişilere gidiyor böle yayılıyor…genelde hotmailde oluyor….orta derecede virüs alarmı verdi programlar bende… bazı dosyalarım açılmıyor…..lütfen gelen foto şeklindeki dosyayı açmayın.arkadaşınızdan geliyor gibi görünüyor ama o yollammamış arkadaşlar…dikkatlı olun

kaynak: ordan burdan

Programın kullanımı çok basit arkadaşlar. Sağ fare menüsüne yerleşiyor klasörün üstüne gelip sağ fareye bastıp "lock" dediğimizde klasörü kitliyor "unlock" deyim şifreyi doğru yazdığımızda şifreyi kaldırıyor.
ben şimdi size bazı ayarları anlatcam.
1. ilk şifremiz "SECURITY"
[img]http://img84.imageshack.us/my.php?image=ilksifrekh9.jpg[/img]
2.programa giri için ilk şifreyi yazıyoruz.

'de header fonksiyonu sayfaya kolay yoldan istenilen meta tagı ekleyen fonksiyondur. Bu yazımızda header il "Location" tagını kullanarak sayfa yönlendirmeyi inceleyeceğiz.

Belirli bir sayfamızdan farklı sayfaya yönlendirme yapmak için;

header("Location: http://www.deneme.com");

kodlarını kullanıyoruz. Yanlız header fonksiyonunun şu şekilde bir sorunu vardır. Kendisinden önce hiç bir şekilde tagı içermemelidir. İçeriyorsa eğer verecektir.

<div align="center">deneme yazısı</div>
<?
header("Location: http://www.phpogreniyorum.info");
?>

bu kodlar verecektir. Çünkü header fonksiyonundan önce sayfa "

Örneğin:

<?
ob_start();
?>
<div align="center">deneme yazısı</div>
<?
header("Location: http://www..com.tr");
ob_end_flush();
?>

kodları sorunsuz çalışacaktır. Yanlız ob_start() ile açılan fonksiyon sayfa sonunda ob_end_flush(); fonksiyonu ile kapatılmalıdır.

Bu yönlendirmeyi koşullu da yapabiliriz:

<?
ob_start();
$page=$_GET[page];
if (isset($page)) {
header("Location: $page");
exit();
}
ob_end_flush();
?>

burada koşullu olarak yönlendirmemizi yaptık dikkat ederseniz yönlendirmeden sonra exit() fonksiyonunu kullandık. Bunuda şu yüzden yaptık. Eğer sayfaya curl ile bağlantı açılırsa header fonksiyonları yorumlanırken kendisinden sonra gelen fonksiyonlarda yorumlanacaktır. Bu güvenlik sorunları yaratabilir. Onun için exit() kullanarak kendisinden sonra gelen fonksiyonların yorumlanmasını engellemiş olduk.

kaynak: ordan burdan

Paypal, kredi kartı kullanmadan, internet üzerinden güvenli alışveriş
yapmanızı ya da istediğiniz kişiye sadece bir e- aracılığıyla
yollayabilmenizi sağlayan bir nevi bankacılık sistemidir.

Sistem çalışıyor?

Paypal Belçika, Almanya, Avusturya, Fransa, İsviçre, İngiltere Amerika
Birleşik Devletleri'nde yerel web siteleri bulundurarak bu ülkelerde sorunsuz
çalışıyorsa da 'nin de aralarında bulunduğu 37 ülkedeki kişiler
tarafından belli kısıtlamalarla kullanılabiliyor. Burada dikkat edilmesi
gereken nokta, 'nin de dahil olduğu bir grup ülkede bulunan yerel bir banka hesabına ödeme yapılamaması. Paypal ile Amerikan ı Yen gibi birden çok birimini kullanarak ödeme alabilir veya yapabilirsiniz.

Bu

birimleri arasındaki değişimleri Paypal olarak yaptığı için
parite gibi detaylarla uğraşmanız gerekmiyor. Tabii bu işlemler için belirli
bir ücret alınıyor. Gelin isterseniz üye olarak Paypal'a ilk adımımızı atalım.

Paypal üyelik işlemleri
Welcome - PayPal adresine girdikten sonra sol üst kısımda bulunan Sign Up

linkine tıklayın. Açılacak ilk sayfada öncelikle hesap türünüzü belirlemeniz
gerekiyor. Bu hesap türleri Personal Business olarak ikiye ayrılsa da,
Personal hesap türü daha sonra Premium hale getirilebiliyor. Personal hesap
türü kişisel kullanım için tasarlanmış olup, internet üzerinden ürün alımında
kullanılabiliyor bunu e- adreslerini kullanarak yapıyor. Eğer aynı
zamanda e- yoluyla veya kredi kartları ile almak isterseniz bu

durumda Premium Account türüne geçiş yapmanız gerekiyor. Eğer işiniz için tüm alım-satım işlemlerinde Paypal kullanmak isterseniz bu durumda Business seçimi yapmanız gerekiyor.

Biz başlangıç olarak Personal hesap türünü seçiyoruz bunun yanında bulunan listeden de seçimini yapıyoruz. Daha sonra Continue düğmesine basarak bir sonraki sayfaya geçiyoruz. Bu ekranda isim adres bilgilerini doldurup olmayan e- adresimizi Paypal için belirlediğimiz şifreyi yazıyoruz. Daha sonra şifre kaybı gibi durumlarda gerekli olan iki gizli soruyu seçip cevaplarını yazıyoruz. Hesabımızın Premium olup olmamasını istemediğimize vereceğimiz soruya Yes No olarak cevap veriyoruz. Eğer bu seçime Yes cevabı verirseniz yollamak halen iken alma durumunda belirli oranlarda kesinti yapılacağını söylememiz gerekiyor. Bunlarla ilgili detaylı bilgileri Learn More linkine tıklayarak öğrenebilirsiniz. Ardından Paypal kullanıcı sözleşmesin onay vermek için Yes seçimini yapıyor yine sözleşmenin anlaşılıp anlaşılmadığına dair soruya da Yes cevabını veriyoruz. Daha sonra Sign Up düğmesine basarak bir sonraki aşamaya geçiyoruz. Bu sayfada Paypal ile yollayabilmeniz için gerekli olan kredi kartı bilgilerini giriyoruz. Dilerseniz Cancel düğmesine basarak bu işleminizi sonraya erteleyebilirsiniz. Bu işlemleri bitirdikten sonra e- adresinize gelen linke tıklayarak hesabınızı aktif hale getirebilirsiniz. Bu işlem de tamamlandıktan sonra artık Paypal üyesi oluyorsunuz.

Genel Paypal kullanımı

Aktivasyon işleminden sonra göreceğiniz gibi My Account ü altında
hesabınızın detaylarına ulaşabiliyorsunuz. Gelin isterseniz bu bölümleri tek
tek inceleyelim.

Overview
Bu bölümden hesabınıza genel bir bakış yapabilirsiniz. Eğer hesabınıza bir

kredi kartı eklemediyseniz, ın sol ünde bulunan Add Credit Card
linkine tıklayarak kredi kartı eklemesi yapabilirsiniz. Yine ın solunda bulunan Upgrade Account linkine tıklayarak hesabınızı genişletebilirsiniz.

Add funds
Daha çok ABD'de banka hesapları bulunan kullanıcılar için tasarlanmış. Kredi kartı kullanmadan banka hesabınız üzerinden Paypal hesabınıza yüklemeniz mümkün. Eğer 'de yaşıyorsanız, bu ü kullanamazsınız. Ancak kredi kartı eklediyseniz, Paypal hesabınızda olmasa da başka hesaplara aktarabilirsiniz. Göndereceğiniz miktar kredi kartınızdan olarak çekilir.

Withdraw
Benzer şekilde ABD bankalarında bir hesabınız varsa bu bölümden Paypal
hesabınızda bulunan parayı bu hesaba geçirebilirseniz.

History

ya da geçmiş ü olarak düşünülmesi gereken bu ıyla geçmişte Paypal üzerinden yaptığınız tüm işlemleri görebilirsiniz.

Resolution center
Çözüm alanı temelde Paypal hesapları kullanılarak alınmış bir ürünün sorunlu
olması veya ücreti ödenmiş hizmetin alınamaması gibi durumlar için
kullanılıyor. File a Claim linkine tıklayarak Paypal kullanarak yapmış

olduğunuz bir alışveriş için hak talebinde bulunabilirsiniz.

Profile
Bu bölümden Paypal hesabınız ile ilgili tüm ayarlamaları yapıyorsunuz.
Profile ü Account Information (hesap bilgileri), Financial Information
(finasal bilgiler), Selling Preferences (satış tercihleri) olmak üzere üçe

ayrılıyor. Credit Cards linkine tıklayarak kredi kartı bilgilerini fatura
adreslerini girebilirsiniz.

yollama
Send Money üne tıklayarak yollama üne girdikten sonra
göreceğiniz gibi Pay Anyone Pay For eBay Items olmak üzere iki alt bölüme

ulaşabiliyorsunuz.

Pay anyone
Öncelikle Recipient's Email üne alıcı kişinin e- adresini
yazıyorsunuz. Altında bulunan Amount üne yollayacağınız miktarını giriyorsunuz. Currency ünden yollayacağınız paranın birimini
belirliyorsunuz ($,â?¬). olurken belirlediğiniz birimi dışında bir

birimiyle yollayacaksınız, bu işlemden bir miktar komisyon
kesileceğini unutmamalısınız. Type üne ise parayı yollama nedeninizi
yazıyorsunuz. Subject Note bölümleri ise alıcıya yollanacak bilgilendirme
mailinde kullanılıyor. Bu yüzden doldurmak zorunlu değil.

Pay for items

Bu özellikle eBay'den alışveriş yapan kullanıcılar tarafından
kullanılmaktadır. Böyle bir düşünceniz yoksa bu ü es geçebilirsiniz.
Ebay hakkında detaylı bilgi için tıklayın…

talep etmek
Paypal'da iki şekilde talebinde bulunabilirsiniz.

Create a money request
Bu ekranda e-mailini yazacağınız kişiden talebinde bulunabiliyorsunuz.
Basit olarak tasarlandığı için ilgili bölümleri doldurmada zorlanmayacaksınız.

Create an invoice

Invoice (fatura) ü talebinin biraz daha gelişmiş halidir. New
Invoice ile oluşturacağınız yeni faturaya talep ettiğiniz ücretleri
bunların detaylarını yazabiliyorsunuz.

Merchant
Paypalı yoğun olarak girişleri için kullanan kişilerin işine

yarayabilecek bir . Bu bölümde düğmeler oluşturarak web sitenize
koyabilir ziyaretçilerinizden size bağış ya da ödeme yapmasını
sağlayabilirsiniz. Burada hazır butonlar bulabileceğiniz gibi kendi
istediğiniz ya da belirlediğiniz düğmeleri de kullanabilirsiniz.

kaynak: ordan burdan

greatest ile aynı mantıkta, en küçük değeri döndürür.

PLAIN TEXTSQL:
least(163,34,546,1405,8723) "en küçük"
en küçük 34

kaynak: ordan burdan

Listedeki en büyük değeri döndürür.

greatest(163,34,546,1405,8723) "en büyük"
en büyük 8732

kaynak: ordan burdan

Tablo içindeki verileri belirtilen değerler ile değiştirir. Büyük/küçük harf duyarlı olarak çalışır.

Örneğin kullanıcı bilgilerini içeren people tablosunda, statu sütunu engineer, manager, president şeklinde veriler içersin.

SELECT statu, decode(statu,'engineer','',
1 'manager','yönetici',
2 'president','Başkan') yetki
3* FROM people

statü yetki
——— ———
engineer
manager yönetici
president Başkan

kaynak: ordan burdan

verilerini biçimlendirir.

to_char(sysdate,'DD-MONTH-YYYY DAY') bugün
bugün 15 Haziran 2007 Cuma

kaynak: ordan burdan

İki arasında ki ay sayısını bulur, pozitif veya negatif değer alır.

PLAIN TEXTSQL:
moths_between('01.06.2007','01.01.2007') 5
moths_between('01.01.2007','01.02.2007') -1

kaynak: ordan burdan

İlk değerde verilen değere, ikinci değer kadar ay ekler.

sysdate 15/06/2007

add_months(sysdate,3)

add_months 15/09/20007

kaynak: ordan burdan

Sayısal değeri istenilen basamağa göre kısaltır, eğer değer belirtilmezse, tam sayıya çevirir.

trunc(457.67943,2) 437.67
trunc(15/4) 3

kaynak: ordan burdan

Sayısal değerin karekökünü alır

sqrt(625) 25
sqrt () 3.4641016

kaynak: ordan burdan