Konular
Link Değişimi
Php
Mysql
Html
Javascript
Windows Vista
Program Anlatımı
Internet
Arama Motorları
Windows 2003 Server
Komikler
Windows Xp
Isa Server
Network
Ofis Programları
Css
Photoshop
Donanım
Joomla
Hava Trafik
Youtube Video
Diğer Konular
Ajax - Jquery örnekler

Linklerimiz
Herşey Dahil Oteller
Eskişehir Anlık İddia Sonuçları
Hire Gulet Turkey
Otel Yorumları
Site Ekle
Add Your Link
Oteller Fiyatlar
Yat Kiralama Marmaris
Sailing in Bodrum
Araç Kiralama Dizini
Fethiye Ferryboat Tickets
Herşey Dahil Oteller Dizini

 
PHP kullanıcının girdiği verileri güvenli hale getirmek (saldırıları engellemek)
<?

function guvenliHtml ($metin) {
global $baslangic;
$konumK = 0; # < (Kucuktur) karakterinin goruldugu son konum
$konumB = 0; # > (Buyuktur) karakterinin goruldugu son konum
$tag_mi = False; # tag icerisinde miyiz?
$ozellikSablon = ''; # ozellik=deger formatindaki aramalar icin kullanilacak global
$tagTablosu = array(); # tag bilgilerinin yer alacagi global
$ozellikTablosu = array(); # ozellik (attribute) bilgilerinin yer alacagi global
$degerTablosu = array(); # deger (value) bilgilerinin yer alacagi global

# global degiskenlerin degerlerini set et
guvenliGlobal();

# metni islemeden once yapilan on duzeltme islemi
$metin = onDuzeltme($metin);

$i = 0;
$buffer = '';
$konumK = strpos($metin, '<', $i); # < karakterinin rastlandigi ilk konum
$konumB = strpos($metin, '>', $i); # > karakterinin rastlandigi ilk konum

# metin icindeki tag'lari tara
while (True) {
# eger < karakterine daha once rastlandiysa
# veya < karakteri bulundu ama > karakteri bulunamadiysa
if (($konumK !== False && $konumK < $konumB) || ($konumK !== False && $konumB === False)) {
#tag icerisindeysek
if ($tag_mi) {
# tag icinde < olamayacagi icin tag sandigimiz kismin
# basindaki < karakterini &lt; ifadesine cevir
$buffer .= '&lt;' . substr($metin, $i, $konumK - $i);

# tag icerisinde degilsek
} else {
#
$buffer .= substr($metin, $i, $konumK - $i);
}

$i = $konumK + 1;
$konumK = strpos($metin, '<', $i);
# tag baslat
$tag_mi = True;

# eger > karakterine daha once rastlandiysa
# veya > karakteri bulundu ama < karakteri bulunamadiysa
} elseif (($konumB !== false && $konumK > $konumB) || ($konumK === False && $konumB !== False)) {
# tag icerisindeysek
if ($tag_mi) {
# duzeltilmis tag'i ekle
$buffer .= guvenliTag(substr($metin, $i, $konumB - $i));

# tag'i kapat
$tag_mi = False;

# tag icerisinde degilsek
} else {
# buraya kodar olan kismi al
# ve > karakterini &gt; ifadesine cevir
$buffer .= substr($metin, $i, $konumB - $i) . '&gt;';
}

$i = $konumB +1;
$konumB = strpos($metin, '>', $i);

# eger < veya > karakterine rastlanmadiysa
} else {
# tag icerisindeysek
if ($tag_mi) {
# son rastlanan < karakterini &lt; ifadesine cevir
# ve metnin devamini buffer'a ekle
$buffer .= '&lt;' . substr($metin, $i);
} else {
# son kalinan konumdan itibaren metnin devamini buffer'a ekle
$buffer .= substr($metin, $i);
}

# artik tag kalmadigina gore donguden cik
break;
}
}

return $buffer;
}



# --------------------------------------------------------------------------------------------------
function onDuzeltme($metin) {
$degisiklikOncesi = '';

# degistirilmesi gereken bolum oldugu surece devam et
while ($degisiklikOncesi != $metin) {

$degisiklikOncesi = $metin;

# &#xx formatinda yazilmis bazi karakterler, ASCII karsiliklarina cevriliyor
# bazi tag'lar ve icerikleri atiliyor
$metin = preg_replace('/<!--.*?-->/si', '', $metin);
$metin = preg_replace('/<head[>\s]+.*?<\/head>/si', '', $metin);
$metin = preg_replace('/<script[>\s]+.*?<\/script>/si', '', $metin);
$metin = preg_replace('/<applet[>\s]+.*?<\/applet>/si', '', $metin);
$metin = preg_replace('/<object[>\s]+.*?<\/object>/si', '', $metin);
$metin = preg_replace('/<frameset[>\s]+.*?<\/frameset>/si', '', $metin);
$metin = preg_replace('/<iframe[>\s]+.*?<\/iframe>/si', '', $metin);
$metin = preg_replace('/<title[>\s]+.*?<\/title>/si', '', $metin);
$metin = preg_replace('/<style[>\s]+.*?<\/style>/si', '', $metin);
$metin = preg_replace('/(&#0*38;)|(&#0*38(?![0-9A-F]))|(&#x0*26;)|(&#x0*26(?![0-9A-F]))/i', '&', $metin);
$metin = preg_replace('/(&#0*35;)|(&#0*35(?![0-9A-F]))|(&#x0*23;)|(&#x0*23(?![0-9A-F]))/i', '#', $metin);
$metin = preg_replace('/(&#0*34;)|(&#0*34(?![0-9A-F]))|(&#x0*22;)|(&#x0*22(?![0-9A-F]))/i', '"', $metin);
$metin = preg_replace('/(&#0*39;)|(&#0*39(?![0-9A-F]))|(&#x0*27;)|(&#x0*27(?![0-9A-F]))/i', '\'', $metin);
$metin = preg_replace('/(&#0*60;)|(&#0*60(?![0-9A-F]))|(&#x0*3C;)|(&#x0*3C(?![0-9A-F]))/i', '<', $metin);
$metin = preg_replace('/(&#0*62;)|(&#0*62(?![0-9A-F]))|(&#x0*3E;)|(&#x0*3E(?![0-9A-F]))/i', '>', $metin);
$metin = preg_replace('/(&#0*58;)|(&#0*58(?![0-9A-F]))|(&#x0*3A;)|(&#x0*3A(?![0-9A-F]))/i', ':', $metin);
$metin = preg_replace('/(&#0*47;)|(&#0*47(?![0-9A-F]))|(&#x0*2F;)|(&#x0*2F(?![0-9A-F]))/i', '/', $metin);
$metin = preg_replace('/(&#0*61;)|(&#0*61(?![0-9A-F]))|(&#x0*3D;)|(&#x0*3D(?![0-9A-F]))/i', '=', $metin);
#$metin = preg_replace('/(&#0*63;)|(&#0*63(?![0-9A-F]))|(&#x0*3F;)|(&#x0*3F(?![0-9A-F]))/i', '?', $metin);
#$metin = preg_replace('/(&#0*37;)|(&#0*37(?![0-9A-F]))|(&#x0*25;)|(&#x0*25(?![0-9A-F]))/i', '%', $metin);
#$metin = preg_replace('/(&#0*46;)|(&#0*46(?![0-9A-F]))|(&#x0*2E;)|(&#x0*2E(?![0-9A-F]))/i', '.', $metin);
}

return $metin;
}



# --------------------------------------------------------------------------------------------------
function guvenliTag ($metin) {
global $tagTablosu;
$slash = False;

# son karakter / ise
if (preg_match('/\s\/$/', $metin)) {
$metin = substr($metin, 0, strlen($metin)-1);
$slash = True;
}

if (preg_match('/^(\/?)([^\s]*)\s*$/i', $metin, $grup) # <tag> veya </tag> veya <tag /> formatindaysa
&& !($grup[1] && $slash) # ayni anda </ ve /> yoksa
&& array_key_exists(strtolower($grup[2]), $tagTablosu)) { # tag, $tagTablosu'nda varsa
# 1. benzerlik, varsa bastaki / karakterini
# 2. benzerlik, tag'i verir

# <tag /> formatindaysa
if ($slash) {
$metin = '<' . $grup[2] . ' />';

# <tag> veya </tag> formatindaysa
} else {
$metin = '<' . $grup[1] . $grup[2] . '>';
}

return $metin;

} elseif (preg_match('/([^\s]+)\s*(.*)$/si', $metin, $grup) # <tag ozellik1="deger1" ... ozellikN="degerN"> formatindaysa
&& array_key_exists(strtolower($grup[1]), $tagTablosu)) { # tag, $tagTablosu'nda varsa
# 1. benzerlik, tag'i
# 2. benzerlik, ozellikler listesini verir
$metin = '<' . $grup[1];
$metin .= guvenliOzellikler($grup[2], $tagTablosu[strtolower($grup[1])]);

if ($slash) {
$metin .= ' />';
} else {
$metin .= '>';
}

return $metin;
}

# tag gecersiz. tag yerine 1 bosluk dondur
# '' dondurmeyin, yoksa guvenlik acigi olusur
return ' ';
}



# --------------------------------------------------------------------------------------------------
function guvenliOzellikler ($ozellikler, $izin_verilenler) {
global $ozellikSablon, $ozellikTablosu, $degerTablosu;

$temp_ozellikler = '';

# ozellik veya ozellik=deger formatina rastlandigi surece devam et
while (preg_match($ozellikSablon, $ozellikler,$grup)) {

# 1. benzerlik, ozelligi...
# 2. 3. veya 4. benzerlik, degeri...
# 5. benzerlik, geri kalan ozellikler listesini verir
$ozellikler = $grup[5];

# bu ozellik, bu tag icin izin verilen ozellikler listesindeyse...
# bu ozellik, HTML standartlarina uygun ozellikler listesindeyse...
if (in_array(strtolower($grup[1]), $izin_verilenler) && array_key_exists(strtolower($grup[1]), $ozellikTablosu)) {
# bu ozelligin deger almasi gerekiyorsa
if ($ozellikTablosu[strtolower($grup[1])]) {
# degerin sablona uyup uymadigini kontrol et
preg_match($degerTablosu[$ozellikTablosu[strtolower($grup[1])]][0], $grup[2]|$grup[3]|$grup[4], $grup2);

# sablona uygun deger bulunduysa...
# ve yasaklilar sablonuna uyulmuyorsa...
if ($grup2[1] && !preg_match($degerTablosu[$ozellikTablosu[strtolower($grup[1])]][1], $grup[2]|$grup[3]|$grup[4])) {
# deger icinde " karakteri olma ihtimali varsa
if ($grup[3]) {
# ozellik='deger' formatinda kaydet
$temp_ozellikler .= ' ' . $grup[1] . '=\'' . $grup2[1] .'\'';

# deger icinde " karakteri olma ihtimali yoksa
} else {
# ozellik="deger" formatinda kaydet
$temp_ozellikler .= ' ' . $grup[1] . '="' . $grup2[1] .'"';
}
}

# bu ozelligin, deger almamasi gerekiyorsa...
# ve deger verilmeye de kalkilmadiysa...
} elseif (!($grup[2] || $grup[3] || $grup[4])) {
# ozellik formatinda kaydet ( ornegin: disabled )
$temp_ozellikler .= ' ' . $grup[1];
}
}
}

return $temp_ozellikler;
}



# --------------------------------------------------------------------------------------------------
function guvenliGlobal () {
global $tagTablosu;
global $ozellikSablon, $ozellikTablosu, $degerTablosu;

# izin verilen tag'larin listesi
# her tag icin izin verilen ozellikler, array icinde belirtilmelidir
$tagTablosu = array (
'a' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'shape', 'coords', 'target', 'tabindex', 'accesskey', 'name', 'href', 'hreflang', 'type', 'rel', 'rev', 'charset'),
'abbr' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'acronym' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'address' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'area' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'alt', 'href', 'target', 'tabindex', 'accesskey', 'shape', 'coords', 'usemap', 'nohref'),
'b' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'bdo' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'big' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'blockquote' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite'),
'br' => array('id', 'class', 'title', 'style', 'clear'),
'button' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'value', 'type', 'accesskey', 'tabindex'),
'caption' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'center' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'cite' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'code' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'col' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'span', 'width', 'char', 'charoff', 'valign'),
'colgroup' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'span', 'width', 'char', 'charoff', 'valign'),
'dd' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'del' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite', 'datetime'),
'dfn' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'div' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'dl' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'dt' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'em' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'fieldset' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'accesskey'),
'font' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'size', 'color', 'face'),
'h1' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'h2' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'h3' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'h4' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'h5' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'h6' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'hr' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'size', 'width', 'noshade'),
'i' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'img' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'src', 'longdesc', 'name', 'ismap', 'usemap', 'width', 'height', 'border', 'hspace', 'vspace'),
'input' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'alt', 'accept', 'readonly', 'disabled', 'tabindex', 'accesskey', 'usemap', 'ismap', 'type', 'name', 'value', 'size', 'maxlength', 'checked', 'src'),
'ins' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite', 'datetime'),
'isindex' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'prompt'),
'kdb' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'label' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'accesskey', 'for'),
'legend' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'accesskey'),
'li' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'),
'map' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'alt', 'href', 'target', 'tabindex', 'accesskey', 'shape', 'coords', 'usemap', 'nohref'),
'noframes' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'noscript' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'ol' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'),
'optgroup' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'disabled', 'tabindex', 'name', 'size', 'multiple', 'label'),
'option' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'disabled', 'tabindex', 'name', 'size', 'multiple', 'label'),
'p' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'pre' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'width'),
'q' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'cite'),
's' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'samp' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'select' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'size', 'multiple', 'disabled', 'tabindex'),
'small' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'span' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align'),
'strike' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'strong' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'sub' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'sup' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'table' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'summary', 'width', 'bgcolor', 'frame', 'rules', 'border', 'cellspacing', 'cellpadding'),
'tbody' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'),
'td' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign', 'headers', 'scope', 'abbr', 'axis', 'rowspan', 'colspan', 'nowrap', 'width', 'height'),
'textarea' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'name', 'rows', 'cols', 'readonly', 'disabled', 'tabindex', 'accesskey'),
'tfoot' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'),
'th' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign', 'headers', 'scope', 'abbr', 'axis', 'rowspan', 'colspan', 'nowrap', 'width', 'height'),
'thead' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'align', 'char', 'charoff', 'valign'),
'tr' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'bgcolor', 'align', 'char', 'charoff', 'valign'),
'tt' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'u' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
'ul' => array('id', 'class', 'title', 'style', 'dir', 'lan', 'type', 'start', 'value', 'compact'),
'var' => array('id', 'class', 'title', 'style', 'dir', 'lan'),
);


# ozelliklerin listesi ve degerlerinin sablon kodlari
# eger ozellik, deger almiyor, sadece set edilebiliyorsa, Null yazilacak
$ozellikTablosu = array (
'abbr' => 'TEXT',
'accept' => 'CONTENTTYPES',
'accesskey' => 'CHARACTER',
'align' => 'CUSTOM_ALIGN',
'alt' => 'TEXT',
'axis' => 'CDATA',
'bgcolor' => 'COLOR',
'border' => 'PIXELS',
'cellpadding' => 'LENGTH',
'cellspacing' => 'LENGTH',
'char' => 'CHARACTER',
'charoff' => 'LENGTH',
'charset' => 'CHARACTER',
'checked' => Null,
'cite' => 'URI',
'class' => 'CDATA',
'clear' => 'CUSTOM_CLEAR',
'color' => 'COLOR',
'cols' => 'NUMBER',
'colspan' => 'NUMBER',
'compact' => Null,
'coords' => 'COORDS',
'datetime' => 'DATETIME',
'dir' => 'CUSTOM_DIR',
'disabled' => Null,
'face' => 'CDATA',
'for' => 'IDREF',
'frame' => 'TFRAME',
'headers' => 'IDREFS',
'height' => 'LENGTH',
'href' => 'URI',
'hreflang' => 'LANGUAGECODE',
'hspace' => 'PIXELS',
'id' => 'ID',
'ismap' => Null,
'label' => 'TEXT',
'lan' => 'LANGUAGECODE',
'longdesc' => 'URI',
'maxlength' => 'NUMBER',
'multiple' => Null,
'name' => 'CDATA',
'nohref' => Null,
'nohshade' => Null,
'nowrap' => Null,
'prompt' => 'TEXT',
'readonly' => Null,
'rel' => 'LINKTYPES',
'rev' => 'LINKTYPES',
'rows' => 'NUMBER',
'rowspan' => 'NUMBER',
'rules' => 'TRULES',
'scope' => 'SCOPE',
'shape' => 'SHAPE',
'size' => 'NUMBER',
'span' => 'NUMBER',
'src' => 'URI', # sunucu disindan resim gosterilmesi istenmiyorsa 'YEREL_URI' olacak
'start' => 'NUMBER',
'style' => 'STYLESHEET',
'summary' => 'TEXT',
'tabindex' => 'NUMBER',
'target' => 'CDATA',
'title' => 'TEXT',
'type' => 'CUSTOM_TYPE',
'usemap' => 'URI',
'valign' => 'CUSTOM_VALIGN',
'value' => 'CDATA',
'vspace' => 'PIXELS',
'width' => 'LENGTH',
);


# dizinin ilk degeri, uyulmasi gereken pattern'i
# dizinin ikinci degeri, uyulmamasi gereken pattern'i belirler
# uyulmamasi gereken pattern yoksa, 'veri yok' anlamina gelen '/^\s*$/' ifadesini yazin
# degerin kabul edilmesi icin ilk pattern'a uyup, digerine uymamasi zorunludur
$degerTablosu = array (
'CDATA' => array('/^\s*(.*[^\s]+)\s*$/i', # ilk ve son karakter \s olmamak kosuluyla herhangi bir metin
'/^\s*$/'),
'CHARACTER' => array('/^\s*([\w????????????])\s*$/i', # sadece tek bir karakter
'/^\s*$/'),
'COLOR' => array('/^\s*((?:#[0-9abcdef]{6})|(?:[\w]+))\s*$/i', # renk adi ya da #000000 formatinda renk kodu
'/^\s*$/'),
'CONTENTTYPES' => array('/^\s*([^,]+.*[^\s,]+)\s*$/i', # , karakteri ile ayrilmis liste
'/^\s*$/'),
'COORDS' => array('/^\s*([0-9\.]+[0-9\.,\s]*[0-9\.]+)\s*$/i', # , karakteri ile ayrilmis sayilar
'/^\s*$/'),
'CUSTOM_ALIGN' => array('/^\s*((?:top)|(?:middle)|(?:bottom)|(?:left)|(?:center)|(?:right)|(?:justify))\s*$/i',
'/^\s*$/'),
'CUSTOM_CLEAR' => array('/^\s*((?:none)|(?:all)|(?:left)|(?:right))\s*$/i',
'/^\s*$/'),
'CUSTOM_DIR' => array('/^\s*((?:ltr)|(?:rtl))\s*$/i',
'/^\s*$/'),
'CUSTOM_TYPE' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'CUSTOM_VALIGN' => array('/^\s*((?:top)|(?:middle)|(?:bottom)|(?:baseline))\s*$/i',
'/^\s*$/'),
'DATETIME' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'ID' => array('/^\s*([a-zA-Z]+[\w\.\-:]*)\s*$/i', # ilk karakteri harf olmak zorunda
'/^\s*$/'),
'IDREF' => array('/^\s*([\w\.\-:]+)\s*$/i',
'/^\s*$/'),
'IDREFS' => array('/^\s*([\w\.\-:\s]+)\s*$/i', # bosluk ile ayrilmis IDREF listesi
'/^\s*$/'),
'LANGUAGECODE' => array('/^\s*([a-zA-Z]+[\w\.\-:]*)\s*$/i', # ID
'/^\s*$/'),
'LENGTH' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'LINKTYPES' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'NUMBER' => array('/^\s*([0-9]+)\s*$/i', # en az bir rakkam olmak zorunda
'/^\s*$/'),
'PIXELS' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'SCOPE' => array('/^\s*((?:col)|(?:row)|(?:colgroup)|(?:rowgroup))\s*$/i',
'/^\s*$/'),
'SHAPE' => array('/^\s*((?:rect)|(?:circle)|(?:poly)|(?:default))\s*$/i',
'/^\s*$/'),
'STYLESHEET' => array('/^\s*(.*[^\s]+)\s*$/i',

'/(' . # STYLESHEET icinde yasak olan ifadeler
'express[iI]on|' . # expression
'scr[iI]pt|' . # script
'&#|' . # &#
'\/\*|' . # /*
'\*\/' . # */
')/'),

'TEXT' => array('/^\s*(.*[^\s]+)\s*$/i', # CDATA ile ayni
'/^\s*$/'),
'TFRAME' => array('/^\s*((?:void)|(?:above)|(?:below)|(?:hsides)|(?:lhs)|(?:rhs)|(?:vsides)|(?:box)|(?:border))\s*$/i',
'/^\s*$/'),
'TRULES' => array('/^\s*((?:none)|(?:groups)|(?:rows)|(?:cols)|(?:all))\s*$/i',
'/^\s*$/'),
'URI' => array('/^\s*([^\s]*)\s*$/i',

'/(' . # URI icinde yasak olan ifadeler
'express[iI]on|' . # expression
'scr[iI]pt|' . # script
'&#|' . # &#
'\/\*|' . # /*
'\*\/' . # */
')/'),

'YEREL_URI' => array('/^\s*(' . # bulundugu sunucu disindan link kabul etmeyen URI
'((?:http:\/\/' . str_replace('.', '\\.', $_SERVER['SERVER_NAME']) . '[^\s]*)|' .
'(?:[^:\s]*))' .
')\s*$/i',

'/(' . # URI icinde yasak olan ifadeler
'express[iI]on|' . # expression
'scr[iI]pt|' . # script
'&#|' . # &#
'\/\*|' . # /*
'\*\/' . # */
')/'),
);

# ozellik="deger" veya ozellik formatina bakan sablon
$ozellikSablon = '/^\s*([\w]+)(?:\s*=\s*(?:' .
'(?:"([^"]*)")|' . # "deger" formatinda, bu durumda deger icinde " kullanilamaz
'(?:([^"\'\s,]*))|' . # deger formatinda, bu durumda deger icinde ' " , ve bosluk kullanilamaz
'(?:\'([^\']*)\')' . # 'deger' formatinda, bu durumda deger icinde ' kullanilamaz
'))?\s*(.*)/si';

return True;
}

?>
Böyyük Patron Tarafından 23-09-2008 Tarihinde Gönderilmiştir.   Bu Konuyu Yazdır
Kaynak : perfectgate

 

En Son Eklenenler
PHP
array_map fonksiyonu ile büyük kolaylıklar
PHP
php ile cache sistemi
PHP
google sitemap pinglemek
MYSQL
Default Değer
MYSQL
Bit Veri Tipi:
MYSQL
Primary Key ile Unique Key Arasındaki Fark
ajax - jquery örnekler
Bazı jQuery Fonksiyonlarınızı $(window).load Olayı İçerisine Yazın
Javascript
javascript kodlarını sıkıştırma veya şifreleme
ajax - jquery örnekler
jquery siblings
MYSQL
SQL Saldırıları ve Önlemler
MYSQL
MySQL ile Trigger Oluşturma
Arama motorları
google incelikleri
Arama motorları
Google Sizi Sevsin
PHP
PHP ile aranan kelimeyi renklendirme
PHP
PHP 5.3.0 da dikkat etmeniz gerekenler
MYSQL
MySQL Root Şifresini Sıfırlama
MYSQL
MySQL Root Şifresini Sıfırlama
PHP
php ile resimlere watermark yapmak
Arama motorları
Ref Saldırıları ve çözümleri
MYSQL
Tablodaki aynı kayıtları silmek
MYSQL
Regular Expression kullanımı
MYSQL
Regular Expression kullanımı
MYSQL
Regular Expression kullanımı
PHP
Dosya izinlerini kontrol etme
ajax - jquery örnekler
jquery bir elementin altındakilere bir class atamak
ajax - jquery örnekler
jquery bir elementin class (style) özelliklerini değitirmek
PHP
GDI ile progress bar yapmak
PHP
.htaccess ile sayfaları klasör olarak göstermek
ajax - jquery örnekler
jquery seçilen radio butonu bulmak
ajax - jquery örnekler
jquery 18 yaş kontrolü
Javascript
jquery browser öğrenmek
ajax - jquery örnekler
jquery mouse x y pozisyonunu bulmak
ajax - jquery örnekler
jquery mouse sağ tuşu kitlemek disabled
ajax - jquery örnekler
jquery jquery.js yüklenmişmi
ajax - jquery örnekler
jquery elementin disabled özelliğini aktif veya pasif yapmak
ajax - jquery örnekler
jquery checkbox kutusu kontrolü checked
ajax - jquery örnekler
jquery seçilen elementten kaç tane var
ajax - jquery örnekler
jquery css seçiciler (style selector)
ajax - jquery örnekler
jquery öznitelik seçicileri (attributes selector)
ajax - jquery örnekler
jquery tag (etiket) seçiciler (selector)
İletişim : bpatron@codekodu.com
429037Kişi Tarafından Sitemiz Ziyaret Edilmiştir. Kişi Online
Bugün 06 Saat 15 Dakikada Sitemizi Tekil 86 Kişi Ziyaret Etmiştir.
Dün Sitemizi Tekil 392 Kişi Ziyaret Etmiştir.
Sitemizi En Çok Tekil 10-03-2010 Tarihinde 402 Kişi Ziyaret Etmiştir.
Sitemizdeki bilgilerin büyük çoğunluğu alıntıdır.İlgili yazının yazarının veya kaynak sahibinin istemesi halinde ilgili yazı sitemizden kaldırılacaktır.
Sitemizin İmalatı Böyyükpatron Tarafından Yapılmıştır.