PHP ile mail göndermek çok basit ve hızlı bir fonksiyonla işilerimizi çözebiliyoruz.

hepsi bu kadar. Şimdi daha iyi anlayabilmemiz için küçük bir örnek yazmak istiyorum.

<?php

$to = "info@epostaadresiniz.com.tr";

$subject = "Mail Başlığınız";

$message ="Firma Adi :".$_POST['firma_ismi']." \r\n
“;
$message .=”Ad Soyad :”.$_POST['ad'].”\r\n
“;

$headers = ‘MIME-Version: 1.0′ . “\r\n”;
$headers.= ‘Content-type: text/html; charset=iso-8859-9′ . “\r\n”;
$headers.= ‘From: ‘.$_POST['eposta'].”\r\n”;
mail($to, $subject, $message,$headers);

?>

Herkese iyi çalışmalar

Kaynak : blog.fettahkurtulus.com

Kısaca mantığı açıklamaya çalışayım bir tane dosyamız olacak ve bu dosyamızın içine de sitemizde olmasını istediğimiz dilleri ekleyeceğiz ve basit bir kontrol işlemiyle hangi dil seçildiyse sitemizde o dili görüntüleyeceğiz. Şimdi öncelikle bir language.php adında boş bir dosya oluşturalım ve aşagıdaki kodları içerisinie ekleyelim.

Evet dil dosyamız bitti bu mantıkla istediğiniz kadar dil ekleyebilirsiniz sitenize. Şimdi gelelim bu sayfayı sitemize nasıl dahil edeceğimize. Öncelikle language.php dosyasını sayfamıza include ederek işe başlıyoruz. Yeni bir boş sayfa açalım ve adını menuler.php koyalım ve bu dosya üzerinde çalışmaya başlıyalım.

<?php

include “language.php”; //language.php sayfasını sayfamıza dahil ettik.

echo “

”;

?>

Bu sayede ingilizce ve türkçe olarak 2 dilli bir menu hazırlamış olduk. Herkese iyi çalışmalar.

Kaynak blog.fetahkurtulus.com

Simdi anlatacagim konuda kisaca ftp protocolunu kullanarak farkli
bir domain (hosting) a dosya yuklemek (upload) ve indirmek (download) islemini gerceklestirebilmek.

1. Download (Indir)

//scripting bulundu directorye yazar, istedgiiniz yere indirebilirsiniz   (/docs/mycv.doc)
$local_file  = “mycv.doc”;
//uzaktaki (remote) serverdeki dosyanin bulundugu address
$server_file = “/files/birdosya.doc”;
//– Connection Settings (baglanti ayarlari)
$ftp_server    = “ftp.sizindomainadi.com”; // Address of FTP server.
$ftp_user_name = “herhangiibirftpkullaniciadi”; // Username
$ftp_user_pass = “ftppassword”; // Password
// set up basic connection (baglanti kur)
$conn_id = ftp_connect($ftp_server);
// kullanici ve sifreyle ftp ye gir
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// $server_file  dosyasnini  -> $local_file  indir
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
//echo “basarilay indirildi.  “.$local_file;
} else {
//echo “Bir problem olustu.\n”;
}
// Baglantiyi kapat (close the connection)
ftp_close($conn_id);

Eger ftp (file transfer protocol) kullanici adi ve sifresi dogru ise, artik elimizde  $local_file dosyasi bulunmakta, ve siz artik bu dosyayi istediginiz sekilde kullanabilirsniz.

2. Upload (Yukleme)

//dosyamiz  (/docs/mycv.doc)
$file =”/files/mycv.doc”;
$local_file  = $file;  //bizim (serverdeki) dosyamiz
//yukleyecegimiz server addreesi
$server_path = “/public_html/docs/yenicv.doc”;

//– Connection Settings (baglanti ayarlari)
$ftp_server    = “ftp.sizindomainadi.com”; // Address of FTP server.
$ftp_user_name = “herhangiibirftpkullaniciadi”; // Username
$ftp_user_pass = “ftppassword”; // Password
// set up basic connection (baglanti kur)
$conn_id = ftp_connect($ftp_server);

// Baglanti kur (set up basic connection)
$conn_id = ftp_connect($ftp_server);

// kullanici ve sifreyle ftp ye gir
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// simdi ise localdeki dosyamizii uzaktaki (remote) bir servere yukleyelim.
$upload = ftp_put($conn_id, $server_path, $local_file, FTP_BINARY);
//yukledigimiz dosyanini  chmoduni degistirelim
ftp_chmod($conn_id, 0666, $server_path);
// close the connection (baglantiyi kapat)
ftp_close($conn_id);

Boylelikle elimizdeki bir dosyayi uzaktaki bir servere istedigiz dizine (directory ) ye yukledik.

Peki bu diyeceksiniz ki zaten core ftp programini kurarim ve istedigim yere yuklerim dersiniz, ama
diyelim ki bir kac tane domainiiniz olsun ve tek bir yerden dosyalarinizi kullanacaksiniz, o zaman iste
isinize yarayacaktir.

Program geliştirirken sık sık karşınıza çıkan ve kullandığımız dongular (loops) olmustur. Bunlardan birisi de

for ve foreach dongusudur.

Genelde for ve foreach ‘in farkı yoktor.  Once bir defa ikisinin yapısını yazalım.

for (expr1; expr2; expr3)
    statement
expr1 (ifade) Koşulsuz bir defa dongunun başında calışacaktır.
expr2 her iterate te bakılacaktır,
eger kosul dogru ise (TRUE) donguye devam eder.
 ve son olarak da expre3 bakılacaktır.
mesela:
for ($i = 1; $i <= 10; $i++) {
 echo $i;
}

foreach dongusu ise sadece ve sadece dizilerle çalışır.
Ama for dongusu her turlu mantıksal (logical operation) işlemlerde
çalışır. İkiside hemen hemen aynı hızde çalışır, foreach dizinin (Array)
bir sonraki elemani almak için ve for
dongusu ise değişkeni (variable) tekrardan initialıze yapmak için zaman alır.
İki tür tanımı vardır
foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

ikincisi daha kullanımlıdır, yani bir dizi kullanırken onun her key (anahtar) değerini de

kullanmış oluruz.

mesela diyelim elimizde 2 boyutlu bir dizi olsun.
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);

foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}

ama for dongusunde her turlu mantıksal işlemleri yapabiliriz, mesela
for($i=1;$i<=10;$i++)
{
if($i % 2 == 0)
{
echo $i." bir çift sayıdır.\n";

}
}

Boylelikle for ve foreach dongusunun farkinin ve kullaniminin ornekte gormus olduk,

Simdi anlatacagim konu biraz sıkıcı olabilir ama  cok basit bir dille anlatmaya çalıcağım.

Hemen hemen her yazilimcinin uyguladigi veya kullandigimız search (Deep First Search – Tree) algorithmasini PHP ile uygulama kodunu size aktarmaya calisacagim.
Her seyden once veritabaninizde (Mysql) bir tablo (table) hazirlayiniz

/* ====================== menu table code ===================*/

CREATE TABLE `menu` (

`id`  int(11) NOT NULL auto_increment,

`name`  varchar(250),

`link` varchar(350),

`order` int(11),

`parent`  int(11) NOT NULL default ’0′ COMMENT ‘Menu Parent ID’,

PRIMARY KEY  (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=1  DEFAULT CHARSET=utf8;

/*=========================code table  end ======================*/

Yukaridaki kod sadece  bir websitenin menu tablusu (table).

Order:  bir menunun hangi levelde hangi sirada oldugunu gosterir.
Parent: bir menunun parentini  gosterir

Simdi cok basit bir select sorgusu hazirlayalim

/*===================simple select query=====================*/
$query = “SELECT * FROM menu ORDER BY parent,order ASC”;

//diyelim ki bu sorguyu calistirdigimizde elimizde 2 boyutlu bir dizi oldugunu dusunelim.

Array (

[0] => Array( [id] => 1 [name] => Home [link] => home  [parent] => 0 [order] => 1 )

[1] => Array ( [id] => 2 [name] => About Us [link] => aboutus [parent] => 0 [order] => 2 )

[2] => Array ( [id] => 3 [name] => Members [link] => members [parent] => 0 [order] => 3 )

[3] => Array ( [id] => 4 [name] => Publication [link] => publication [parent] => 0 [order] => 4 )

[4] => Array ( [id] => 5 [name] => Contact Us [link] => contactus [parent] => 0 [order] => 5 )

[5] => Array ( [id] => 6 [name] => Members Sub Item 1 [link] => member_subitem [parent] => 3  [order] => 1 )

[6] => Array ( [id] => 7 [name] => Members sub Item 2 [link] => chancellor [parent] => 3 [order] => 2 )

[7] => Array ( [id] => 8 [name] => Publication sub item 1 [link] => pub_sub_item1 [parent] => 4 [order] => 1 )

[8] => Array ( [id] => 9 [name] => Membes Sub Item2 – Sub 1 [link] => subitem_subitem1 [parent] => 7  [order] => 1 )

[9] => Array ( [id] => 10 [name] => About Us sub menu 1 [link] => aboutusubmenu1 [parent] => 2  [order] => 1 )

)
elimizdeki bu diziyi kendi kullanacağımız fonksıyona göre

$menuItem = array();  //2 boyutlu bir veri dizisi (menu data)

$menuData = array(

‘items’ => array(),

‘parents’ => array()

);

for($i=0;$i<sizeof($menuItem);$i++)

{

$menuData['items'][$menuItem[$i]['id']] = $menuItem[$i];
$menuData['parents'][$menuItem[$i]['parent']][] = $menuItem[$i]['id'];

}

bu 2 boyutlu diziden sonraki  diziyi bir yine bu $menuData dizisine  her  kaydin parentini ve o kaydin kenidisini yine bir 2 boyutlu diziye aktariyoruz.

Ve son olarak  buildMenu fonksiyonumuzu cagriyoruz. Bu  sekilde bize baglantlli bir liste haline bize hazirlayacaktir.

/*===============buildMenu fonksiyonu==========================*/

function array_merge2($a, $b) {

return array_merge((array)$a, (array)$b);
}

function buildMenu_child($parentId, $menuData,$level = 0, $prefix = “-”)

{

$res = array();

$html = ”;

if (isset($menuData['parents'][$parentId]))

{

foreach ($menuData['parents'][$parentId] as $itemId)

{

$row["prefix"] = str_repeat($prefix,$level);

$row["name"]   = $menuData['items'][$itemId]['name'];

$row["id"]        = $menuData['items'][$itemId]['id'];

$row["link"]      = $menuData['items'][$itemId]['link'];

$row["order"]     = $menuData['items'][$itemId][order];

$row["parent"]     = $menuData['items'][$itemId]['parent'];

// find childitems recursively

$row_res= buildMenu_child($itemId, $menuData,$level+1,$prefix);

array_push($res, $row);

$res = array_merge2($res, $row_res);

}

}

return $res;

}

/*===============================fonksiyon bitisi ==================*/

Ve son olarak bu fonksiyonu cagirip elde etigimiz sonucu  istedigimiz yerde kullaniriz.

$allmenu = buildMenu_child(0, $menuData,0, “-”);

Bu fonksiyonda ilk nodu (first node)  0 (sifir) olarak Kabul ediyoruz ve ekrana bastigimizde

for($i=0;$i<sizeof($allmenu);$i++)

{

echo ,$allmenu[$i]['prefix'].$allmenu[$i]['name'].”<br />”;

}

//EKRAN CIKTISI

Home

About Us
- About Us sub menu 1

Members
- Members Sub Item 1
- Members sub Item 2
- –  Membes Sub Item2 – Sub 1

Publication
- Publication sub item 1

Contact Us

Biraz karmasik gibi geldi ama soyle bir basit bir sekilde mantigini yazayim

1.       Verilerin tuttugu bir tablu (menu)

2.       Tabludan sorgu yaparak verileri 2 boyutlu bir diziye aktariyoruz.

3.       Gelen veriyi tekrar bir duzenleriz

4.       Recursive fonksiyounumuzu (buildMenu_child) cagiriyoruz

5.       Son olarak elimizdeki veriyi istedigimiz sekilde kullaniriz.

Peki eger sorarsaniz nerelerde kullanabilirz. Eger dinamik bir menu, drop down list, list, category, veya departments, organization gibi konularla ki genelde kullandigimiz bir konu icin, bu alanlarda kullaniriiz.

Merhaba arkaslar,

Umarim yazidklarimin bir faydasi olacak. İlk once şu MVC ne demek onu bir acıklayım:

Model: Veri tabanila her turlu veri alisverisini saglayan, mesela insert, update, delete gibi islemler

View: Veriyi (data) kullaniciya gostermesini saglar, mesela RSS, haberler, veya bir web sayfasinin header, footer, menu gibi kisimleri gosermesini saglar.

Controller: Model ile View arasindaki kontrolu yapar, ve diger tum gelen requestleri karsilar, http request gibi.

Eger biz projelerimizde boyle bir yaklasimi ele alirsak, projemizi cok duzenli ve baskalarin anlayabilecegi bir standard mantigi yerlestiririz. Eger projemizde bir ekip calisiyorsa, programcilar kendi codelarini, designerler kendi kodlari duzenler ve birlestigimizde, projemiz bitmis olacak. Diyelim A projemiz uzerinde 4 developer, 2 designer calisiyorsa, 4 developer projenin butun module larini hazirlar, 2 designer de projenin butun design kisimlerin yapmis olurlar.Peki m-v-c yaklasimin PHP de nasil kullaniriz.

Benim en sevdigim ve bir kac projede kullandigim cok basit ve kolay bir PHP framework ile sizleri tanistirmek isterim, CODEIGNITER. Eger yazilim yazarken ozellikle php de object oriented ile ugrasiyorsaniz, ve projeniz gercekten standard olmasini istiyorsaniz o zaman bu PHP frameworkten mutlaka yararlanin. http://codeigniter.com/

Yukarida  M-V-C yaklasimiin Codeigniterde nasil uyguladigi shemasi.

Eger PHP ile ugrasiyorsaniz, mutalaka kendi local bilgisyarinize indirip  biraz kurcalamanizi tevsiye ederim.

SeLamün ALeyküm;
Geçen arkadaş basit her sayfa yenilediğinde manuel olarak yazılmış meta taglarının değiştirmek istediğini söyledi ve php kodlarını istedi. Bende kolları sıvadım istediğini karşılamak için ;  :) :)

Bismillah… Devamını okuyun »

Bu çalışmamızda PHP Curl ve JQuery kütüphanelerinden faydalanarak başka bir domaine form submit edip ve sonuç alacağız. İlk olarak ajax proxy sayfamızı oluşturmakla işe başlayalım.


[?php

header("Cache-Control: no-cache");

header("Content-type:text/html; charset=utf-8");

function geturl($url,$request){
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 

  $results = curl_exec($ch);
  curl_close($ch);
  return $results;

}

$theurl = $_POST["url"];

$theurl = urldecode($theurl);

$theurl = str_replace( "& #038;", "&", $theurl );

$req=$_POST['vars'];//POST edilecek değişken(ler)

$v = geturl( $theurl,$req);

$v = mb_convert_encoding($v, "UTF-8", "ISO-8859-9");//Sonuç alınacak sayfanın kodlaması sizinkinden farklı ise

echo $v;

?]

Yukarıdaki kodun bulunduğu sayfayı ajax_proxy.php olarak kaydediyoruz. Şimdi POST işlemini yapıp sonuç yazdıracağımız sayfaya geçelim

[HTML]
[HEAD]

[script type="text/javascript" src="jquery-1.3.1.min.js"][/script]//jquery kütüphanesini sayfamıza dahil ediyoruz

[script type='text/javascript']
function post_to_ajaxproxy(){
document.getElementById("loader_div").innerHTML='[img src="loading.gif" width="24" height="24"]';//Beklerken gösterilecek olan yükleme animasyonu

var var1=document.getElementById("var1_box").value;
var var2=document.getElementById("var2_box").value;

        $.ajax({
           type: 'POST',
           url: 'ajax_proxy.php',
           data: "&url="+var1+"&vars="+var2,
           success: function(sonuc) {
                document.getElementById("loader_div").innerHTML='';
		document.getElementById('result_div').innerHTML = sonuc;
           }
         });
}
[/script]

[/HEAD]
[BODY]

[input name="var1_box" id="var1_box" type="text" value="http://www.domain_adi.com/sorgulanacak_sayfa.asp"/]
[input name="var2_box" id="var2_box" type="text" value="post_edilecek_degisken"/]
[input type="button" value="Gönder"  onclick="post_to_ajaxproxy()"/]
[div id="loader_div"][/div]//yükleme animasyonunun gösterileceği
[div id="result_div"][/div]//sonuçların gösterileceği

[/BODY]
[/HTML]

Base64 şifreleme , 8 bitlik bir veriyi 64 bitlik bir veri haline getirerek 8 bit olmayan farklı katmanlarda veri iletişimi sırasında veri kaybını önlemek için kullanılır. Internet Explorer , Outlook Express ve diğer internet uygulamalarının dosya aktarımı veya otorum açma işlemlerinde yaygın olarak kullanılan bir şifreleme yöntemidir.

[C#]

public static string Encode(string sifrelenecekIfade)
{
byte[] sifrelenmisIfade = System.Text.ASCIIEncoding.ASCII.GetBytes(sifrelenecekIfade);
return System.Convert.ToBase64String(sifrelenmisIfade);
}

public static string Decode(string sifresiCozulecekIfade)

{

byte[] cozulmusIfade = System.Convert.FromBase64String(sifresiCozulecekIfade);

return System.Text.ASCIIEncoding.ASCII.GetString(cozulmusIfade);

}

[PHP]

<?php

echo base64_encode(“bilyaz.com”);

echo base64_decode($sifresiCozulecekIfade);

?>


Eğer php ile ajax veya javascript kullanarak gerçileştirdiğiniz sorgularda Türkçe karaketer problemi yaşıyorsanız :

[PHP]

<?php
$duzgunSorgu = iconv(“ISO-8859-9″, “UTF-8″, $_POST['sorguCumlesi']);
?>

iconv yardımı ile bu dönüşümü yapabilirsiniz. burada ilk parametre sitenizin karakter kodlaması örneğimizde ISO-8859-9 , diğer parametre dönüştüreceğimiz karakter kodlaması örneğimizde UTF-8 ve son parametremizde dönüştürmek istediğimiz ifade.

© 2010 bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP Suffusion WordPress theme by Sayontan Sinha