< Php Makaleleri, Php Tasarım, Php testleri, Hazır tasarımlar, Php Dersleri, Bedava hazır tasarımlar, hazır şablonlar, php kodları - Blogcu





Klasördeki resimleri gösterme ve sayfalama( --- RESİM GALERİSİ

< table width="410" height="710" bgcolor="#000000"  border="0" cellspacing="8" cellpadding="8" align="center">

< table width="400" height="700" bgcolor="#f4f4f4"  border="0" cellspacing="8" cellpadding="8" align="center">
< td>
< center>
< ?php
# Resimleri cek
$dizin "resim dizini(resim dosyası)";//Resminizin Bulunduğu Yolu Yazınız 
$tutucu opendir($dizin);
while(
$dosya readdir($tutucu)){
if(
is_file($dizin."/".$dosya))
$resim[] = $dosya;
}
closedir($tutucu);

# Ön bilgiler
$limit 21//Bir sayfada gösterilecek resim sayısı 
$sf $_GET["sf"]; 
if(
$sf 1$sf 1
$toplam count($resim); 

# Bu bilgiler doğrultusunda
$kactan = ($sf-1) * $limit
$kaca = ($kactan+$limit); 
if(
$kaca $toplam$kaca $toplam;

# $kactan başlayıp $kaca kadar resim bas
for($i=$kactan$i $kaca$i++){
echo 
"
< a href='"
.$dizin."/".$resim[$i]."' target='_blank'>
< img onContextMenu='return false' src='"
.$dizin."/".$resim[$i]."' width='100' height='100' border='0'>< /a>n";
}
echo
" < /br>< /br>< /br>";
# Birden başlayıp sayfa sayısı kadar link bas
for($i=1$i $toplam $limit$i++){
if(
$sf == $i)
echo 
"$in"; else
echo 
"< a href='resim.php?sf=$i'>$i< /a>n";
}
?>
< /center>< tr>< /td>< /tr>< /table>
< tr>< /td>< /tr>< /table>

----
Not:
------------------------------

onContextMenu='return false'

bu kod resminizin kopyalanmasını engeller.
Dilerseniz kaldırabilirsiniz

-------------------------------


< a href='".$dizin."/".$resim[$i]."' target='_blank'>< /a>


Alıntıdır...

Rastgele kod üretimi

otomatik şifre üretmek için kullanılabilir yararlı bir kod parçası...

f unction kod($uzunluk)
{
  
$karakterler array();
  
$karakterler array_merge(range(0,9),range('a','z'),range('A','Z'));
  
srand((float)microtime()*100000);
  
shuffle($karakterler);
  
$sonuc '';
  for(
$i=0$i<$uzunluk$i++)
  {
    
$sonuc .= $karakterler[$i];
  }
  unset(
$karakterler);
  return (
$sonuc);
}

//Ornek Kullanimi
echo kod(10); //10 haneli rastgele kod üretir

alıntıdır...

Php'de Eposta adresini kontrol etmek

f unction eposta_kontrol($eposta, $uzanti) {    
$uzanti="/^$uzanti$/";    
$sonu= substr($eposta,(strpos($eposta,'@'))+1);    
$var= preg_match($uzanti,$sonu);   
 return $var; }

echo eposta_kontrol("deneme@com.tr","com.tr");

Php ile Arama motoru yapmak

Asagidaki kod parcasi mysql veritabaninda nasil arama islemi yapabileceginizi anlatmaktadir.

  1. < html>
  2.   < head>
  3.   < title>PHP ile veritabaninda Arama Ornegi - turk-php.com
  4.   < /head>
  5.   < body>
  6.  
  7.   < ?php
  8.  
  9.   $string=$_POST['string'];
  10.  
  11.   echo $string;
  12.  
  13.   $baglanti=mysql_connect("localhost","root","");
  14.  
  15.   mysql_select_db("veritabani_adi");
  16.  
  17.   $SQL="SELECT id FROM edergi WHERE makale_keywords like '%$string%' or makale_ad like
  18.  
  19.   '%$string%' or makale_yazar like '%$string%'";
  20.  
  21.   $sorgu=mysql_query($SQL) ;
  22.  
  23.   if (!$sorgu)
  24.  
  25.   {
  26.  
  27.   echo "

    Hata Olustu: " . mysql_error() . "

    ");  exit();
  28.  
  29.   }
  30.  
  31.   $arguman=0;
  32.  
  33.   $adet=0;
  34.  
  35.   while($sira=mysql_fetch_array($sorgu))
  36.  
  37.   {
  38.  
  39.   $sonuc[$arguman]=$sira["id"];
  40.  
  41.   $arguman++;
  42.  
  43.  
  44.   }
  45.  
  46.   if($string{0}!='"')
  47.  
  48.   {
  49.  
  50.   $pieces=explode(" ",$string);
  51.  
  52.   for($i=0;$i<(count($pieces)-1);$i++)
  53.  
  54.   {
  55.  
  56.   $SQL="SELECT id FROM edergi WHERE makale_keywords like '%$pieces[$i]%'or
  57.  
  58.   makale_yazar like '%$pieces[$i]%' or makale_ad like '%$pieces[$i]%' ";
  59.  
  60.   $sorgu=mysql_query($SQL) ;
  61.  
  62.   if (!$sorgu)
  63.  
  64.   {  echo("

    Hata Olustu:  " . mysql_error() . "

    ")exit();}
  65.  
  66.   $i=0;
  67.  
  68.   echo count($sonuc);
  69.  
  70.  
  71.   while($sira=mysql_fetch_array($sorgu))
  72.  
  73.   {
  74.  
  75.   while($i<(count($sonuc)-1))
  76.  
  77.   {
  78.  
  79.   if($sira["id"]!=$sonuc[$i])
  80.  
  81.   $sonuc[$arguman]=$sira["id"];
  82.  
  83.   $arguman++;
  84.  
  85.   $i++;
  86.  
  87.   }
  88.  
  89.   }
  90.  
  91.   }
  92.  
  93.   }
  94.  
  95.   for($i=0;$i<count($sonuc);$i++)
  96.  
  97.   {
  98.  
  99.   $SQL="SELECT * FROM edergi WHERE id='$sonuc[$i]'";
  100.  
  101.   $sorgu=mysql_query($SQL) ;
  102.  
  103.   if (!$sorgu)
  104.  
  105.   {  echo("

    Hata Olustu:  " . mysql_error() . "

    ")exit();}
  106.  
  107.   while($sira=mysql_fetch_array($sorgu))
  108.  
  109.   {
  110.  
  111.   echo $sira["makale_ad"];
  112.  
  113.   ? >
  114.  
  115.   < BR>
  116.  
  117.   < ?php
  118.  
  119.   }
  120.  
  121.   }
  122.  
  123.   ? >
  124.  
  125.   < /body>
  126.  
  127.   < /html>

Php ile sayfa çağırmak

Php'de, aynı kodu bir çok sayfada tek tek yazmak yerine, bu kodu bir sayfaya kaydedip o sayfayı gereken yerlere çağırabiliriz. Php'de bu işlemi gerçekleştirmek için include() fonksiyonunu kullanıyoruz.
Örneğin index.php adında bir sayfamız olsun. Bu sayfaya alt_index.php sayfasını çağıralım.

  < ?php
echo "
Burası index.php sayfasıdır.
";

include("alt_index.php");

? >

bu kod parçısıyla index.php ile aynı dizinde bulunan alt_index.php dosyasını çağırabilir. Eğer çağıracağımız dosya başka bir dizinde ise dizin yolunu da belirtmemiz gerekir.

Php ile Kategorileme

MySQL de kategorileme adında bir veritabanı yaratın ve bu sorguyu çalıştırın.
 
 
CREATE TABLE `kategoriler` (
  `kat_id` int(11) NOT NULL auto_increment,
  `kat_baslik` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`kat_id`)
) ENGINE=MyISAM;


INSERT INTO `kategoriler` VALUES (1, 'PHP');
INSERT INTO `kategoriler` VALUES (2, 'ASP');
INSERT INTO `kategoriler` VALUES (3, 'HTML');
 
CREATE TABLE `makaleler` (
 `makale_id` int(11) NOT NULL auto_increment,
 `makale_baslik` varchar(150) NOT NULL default '',
 `kat_id` varchar(150) NOT NULL default '',
 `makale_metni` text NOT NULL,
 PRIMARY KEY (`makale_id`)
) ENGINE=MyISAM;
 
INSERT INTO `makaleler` VALUES (1, 'PHP de fonksiyonlar', '1', 'PHP de fonksiyonlar makalesi');
INSERT INTO `makaleler` VALUES (2, 'ASP de server nesneleri', '2', 'ASP de server nesneleri makalesi');
INSERT INTO `makaleler` VALUES (3, 'HTML de link vermek', '3', 'HTML de link vermek makalesi');
 
 
Şimdi sorgumuzda ne yaptık onu bir anlatalım.Öncelikle kategoriler adında bir tablo ve kat_id ( kategorinin id numarası ) , kat_baslik ( kategorinin adı ) adında iki field (alan) oluşturduk.Sonra örnek olması açısından 3 tane kategori ekledim.(PHP,ASP,HTML)
 
Diğeri ise makaleler tablomuz.Bu tabloda ise makale_id ( makalenin id numarası), makale_baslik ( makalenin adı ), kat_id ( makalenin olduğu kategori id numarasının tutulacağı alan ), makale_metni ( makalenin metni ).Ve yine örnek olarak 3 ayrı kategoriye 3 tane makale ekledim.
 
Kodlarımızı yazmaya başlayalım.Bir veritabanı bağlantısı oluşturalım.
 
Ayarlar.php olarak kaydedin.
 


******** db_baglanti()
{
  
$db_host = "localhost";
  
$db_kullanici = "root";   // Db kullanıcı adınız
  
$db_sifre = "";           // Db şifreniz
  
$db_adi = "kategorileme";       // Db adınız

  
@$baglanti = mysql_connect($db_host,$db_kullanici,$db_sifre);
  @
mysql_select_db($db_adi,$baglanti);
  if (
mysql_errno())
  {
    echo
'Veritabanına bağlanılamıyor ...';
    exit;
  }
}
?>
 
Ayarlar.php de bir db bağlantısı fonksiyonu oluşturduk.(Bunu kullanacağımız sayfalarda kolaylık olması açısından yaptık.)
Db bağlantımızı oluşturduğumuza göre şimdi kategorilerimizi ekrana yazdıralım.
 
Kategoriler.php olarak kaydedin.Gerekli açıklamaları kod içinde belirttim.
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// Bağlantıyı oluştur.
db_baglanti();

// kat_id, kat_baslik alanlarını kategoriler tablosundan seç ve kat_id e göre diz.
$sorgu = mysql_query("SELECT kat_id, kat_baslik FROM kategoriler ORDER BY kat_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
". $yaz['kat_id'] . "&kategori=" . $yaz['kat_baslik'] .">" . $yaz['kat_baslik'] . "
"
;
}
?>
 
Veritabanında olan kategorileri listeledik.Bu sayfanın çıktısı şu şekilde olmalıdır.
Şimdi ise bir kategoriye girdiğimizde makalelerin başlıklarını yazdıralım.
Katgoster.php olarak kaydedin.Gerekli açıklamalar kod içinde.
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den kategorinin id numarasını alıyoruz.
@$kat_id = $_GET['kat_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id ve makale_baslik alanlarını makaleler tablosundan seç ve url üzerinden gelen kat_id i tabloda olan kat_id e eşitle.Bu da bize hangi kategori ise bize o kategorinin makalelerini listeliyor.
*/
$sorgu = mysql_query("SELECT makale_id, makale_baslik FROM makaleler WHERE kat_id = '" . $kat_id . "' ORDER BY makale_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
'. $yaz['makale_id'] .'"> '.$yaz['makale_baslik'] .'
'
;
}
?>
 
Bu sayfanın çıktısı şu şekilde olmalıdır.Burda PHP kategorisine girdiysek PHP kategorisindeki makalelerin başlıklarını yazdıracağız.( Örnek: PHP de fonksiyonlar.) O zaman çıktı şu şekilde olacaktır.
Ve son olarak da makaleoku.php sayfamız;
 


// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den makalenin id numarasını alıyoruz.
@$makale_id = $_GET['makale_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id, makale_baslik, makale_metni alanlarını makaleler tablosundan seç.Ve url üzerinden gelen makale_id i tabloda olan makale_id e eşitle.Bu da bize hangi makaleden geldiysek bize onun makale_metinini göstermemizi sağlar.  */
$sorgu = mysql_query("SELECT makale_id, makale_baslik, makale_metni FROM makaleler WHERE makale_id = '" . $makale_id . "'");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo
$yaz['makale_metni'];
}
?>
 
Bu sayfanın çıktısı ise PHP de fonksiyonlar makalesinin metini yani ;
ALINTIDIR

PHP ile Güvenlik Kodu Oluşturma

Signup, login vs. gibi kullanıcıdan form aracılığıyla bilgi girmesini beklediğimiz uygulamalarda,
post (veya get) edilen datayı, gerçekten kullanıcınınmı(insan) yoksa iyi niyetli olmayan bir
programınmı gönderdiğini anlamamız gerekebilir. Bu noktada insanın algı mekanizmasını kullanıp,
kötü niyetli programın resim olarak algıladığı, ama insanın resimdeki şekilleri harf ve rakam
olarak algıladığı bir atlatmaca kullanırız. İçinde harfler ve rakamlardan oluşan text bulunan bir
resim bu atlatmacayı kolayca yapacaktır. Ancak bazı OCR uygulamaları image dosyası içindeki
şekilleri ascii karakterlere çevirebilmektedir. OCR programları kitap harfleri ve bilinen
fontlardaki düzgün şekilleri ascii ye çevirebilmektedirler. Bunun için resmimizdeki texti biraz
okunması zor hale getirmek yeterli olacaktır. Hele yazı için yamuk bir font kullanırsak ocr nin işi
çok zorlaşacaktır.

Kod:


< form name=formlogin method=post action="dologin.php">
Kullanıcı Adı :
< input name=user_title>< br>
Kullanıcı Şifre:
< input type=password name=user_pass>< br>
Güvenlik Kodu:
< input name=security_code>< br>
< img src="s_code.php" width="144" height="32" border="0">
< /form>

Yukarıdaki basit giriş formuna s_code.php ile resim dosyası oluşturalım;

Kod:

  < ? php
  // s_code.php dosyamızın .png olarak algılanabilmesi için header
  header("content-type: image/png");
  session_start();
  // hafızada boş bir image oluşturalım
  $im = imagecreate(144, 32);
  // resmimizin arka plan rengi için beyaz, yazı rengi için siyah renklerini oluşturalım;
  $byz = imagecolorallocate($im, 255, 255, 255);
  $syh = imagecolorallocate($im, 0, 0, 0);
// resmimizi beyaza boyayalım. (default siyah oluşur)
  imagefill($im, 0, 0, $byz);
 // resmimizin arkasına desen yapıyoruz
  // bunun için 20 adet boyutları ve rengi rastele elips ekleyelim
  for($i=0;$i<20;$i++) {
  $e_x = rand(0,144);
  $e_y = rand(0,32);
  $e_genislik = rand(3, 100);
  $e_yukseklik = rand(3, 100);
  $e_renk = imagecolorallocate($im, rand(200,255), rand(200,255), rand(200,255));
  imagefilledellipse($im, $e_x, $e_y, $e_genislik, $e_yukseklik, $e_renk);
  }
  // güvenlik için session_id yi hash edip ilk 5 karekterini alalım
 $kod = substr(md5(sha1(session_id())), 0, 5);
  // bu beş karekteri resmin içine yazalım.
  // yazarken bu dosyanın yanına koyacağımız
  // True Type bir fontu kullanabiliriz.
  // Burdaki 16 = font boyutu, 10 = açısı, 30 = x ve 22 = y
  imagettftext($im, 16, 10, 30 , 32, $syh, 'ace.ttf', $kod);
  // oluşan image i gösterelim
  imagepng($im);
  //hafızadaki resmi silebiliriz
  imagedestroy($im);
 ? >

Düzenleme: Gurur Polat
Alıntı:turk-php.com

İF yapısı

İF kelimesi İngilizce'de "Eğer" anlamına gelmektedir. PHP'de ise bundan farklı bir görev üstlenmemektedir. Yani koşullu cümleleri oluşturabilmek için if değimini kullanırız. Hemen bir örneğe geçelim.


< ? php
$yazi1="yazi1";
$yazi2="yazi";

if($yazi1=="yazi1")
{ echo "yazi1 değişkeni yazi1'e eşit oluduğu için bu metni görebiliyorsun"; }

if($yazi2=="yazi2")
{ echo "yazi2=değişkeni örneğimizde yazi2'ye eşit değil bunun için bu metni sayfada göremeyeceksin";}
? >

Evet, gördüğünüz gibi $yazi1 değişkeni yazi1 'e eşitse sayfaya yazımızı yazdıracak değilse yazdırmayacak (yazi2'de görüldüğü gibi) . Bu çok basit bir örnekti. Diğer makalelerimizde daha ayrıntılı şekilde if değimini görecek ve örnekler üzerinde daha iyi inceleme fırsatı bulacaksınız.

Yazan:Gurur Polat

Form'dan Bilgi Alma

 Bir çok sitede görmüşsünüzdür bu formları. Çeşitli formlar vardır sitelerde. Örneğin; iletişim, üyelik, yorum ekleme gibi. Şimdi bunların nasıl yapıldığını inceleyeceğiz ve basit bir iletişim formu yapacağız.

Form sayfaları genellikle "text" kısımlarından ve butonlardan oluşur. Formda yazılan yazılar bir değişkene atanır ve bunlar veritabanına kayıt edilir veya bir eposta adresine gönderilir. Yani bilgilerin kullanım yönü çeşitlidir. Biz daha acemi olduğumuzu varsayarak, bilgileri sayfaya yazdıracağız. Şimdi basit bir iletişim formu yapalım ve bu işin mantığını örneğimizle birlikte anlayalım.

İlk önce işe ziyaretçimizden bilgilerini alacağımız form sayfasını oluşturarak başlıyoruz. Ben form.html isminde bir dosya oluşturdum. Form kısmında php kodu kullanmayacağım için bu dosyayı html yaptım. Kullanıcıdan ismini, epostasını ve yorumunu alacağım bunun için aşağıdaki kodları kullandım.


< head >
< meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"  />
< title >Form< /title >
< /head >

< body >
< form name="form1" method="post" action="gonder.php" >
  İsminiz:
 
  < input name="isim" type="text" id="isim" >
  < /label >
  < br>
  < br>
  E-Postanız:
  < label>
  < input name="eposta" type="text" id="eposta">
  < /label>
 

  < br>
  Mesajınız:
  < label>
  < textarea name="mesaj" id="mesaj">
  < /label>
  < br>
 

  < label>
  < input name="postala" type="submit" id="postala" value="Gönder">
  < /label>
< /form>

< /body>
< /html>

Hemen ardından bilgileri alınacağı ve sayfaya yazdırılacağı gonder.php dosyasını oluşturuyorum.
Bu sayfada php kodu kullanacağımız için dosyayı php olarak kaydediyoruz.
Hemen gonder.php dosyasının kodlarına bakalım.


< ? php
$isim=$_POST["isim"];
$eposta=$_POST["eposta"];
$mesaj=$_POST["mesaj"];

echo "< b>İsminiz:< /b> $isim < br> < b>Epostanız:< /b> $eposta < br> < b>Mesajınız:< /b> $mesaj";
? >


Evet... Yukarıdaki kodda formdan gelen bütün bilgileri bir değişkene atadık sonra da bu bilgileri echo ile sayfaya yazdırdık.Geliştirmek size kalmış. Daha sonraki yazılarımızda PHP ile formdan gelen bilgileri veritabanına kayıt edeceğiz ;)

İyi çalışmalar

Yazan: Gurur Polat


Php Dilinin Yapısı

PHP, HTML gömülü bir dildir. Yani aynı dosya içinde hem HTML, hem de PHP kodu kullanılabilmektedir. Kod içinde HTML'den PHP'ye geçmek için bazı ayıraçlar kullanılması gerekir. Örneğin:


< TABLE SIZE="500" >
< TR >
< TD >< ? Buraya PHP kodu yazılacak ?> < TD >
...
>

HTML taglari içinde de PHP kullanmak için şu metod seçilmeli:

< TABLE SIZE="< ? php Buraha PHP kodu yazılacak ? >" ...

Sayfaya Yazı Yazdırma:

< ? php echo"Merhaba Uzaylı"; ? >

Bu kodu tarayıcımız bize: 'Merhaba Uzaylı' şeklinde gösterecektir.

« Önceki ::