Webmaster Forumu

Geri git   Webmaster Forumu > Webmaster Kaynak Eğitim Tanıtım Hizmet > Programlama Dilleri > PHP

PHP PHP & PHP Hızlandırıcılar

Cevapla
 
LinkBack Seçenekler Stil
  #11 (permalink)   iTrader 
Alt 2006-08-07, 20:00
kepche - ait Kullanıcı Resmi (Avatar)
Junior Member
 
Üyelik tarihi: Jul 2006
Mesajlar: 17
Teşekkür: 0
Thanked 0 Times in 0 Posts
Tecrübe Puanı: 0
iTrader: %0/0
kepche will become famous soon enough
Standart

basit POST kullanımı:
--------------------
gonderen.html
HTML-Kodu:
<form method="post" action="alan.php">
İsminizi Girin <input type="text" name="gidenText" />
<br />
<input type="submit" name="gonder" value="Gönder" />
</form>
alan.php
PHP- Kodu:
<?
//form değerleri <form method="post"> ile gelen veriler $_POST dizisine atanır.
$gelenText $_POST['gidenText'];    //önceki sayfadan gönderilen ve kullanmak istediğimiz textbox ın adı gidenText..

echo 'İsminiz : ' $gelenText

//alternatif metodlar (echo nun yazım kurallarıyla ilgili, echo kullanımından bahsetmiştim yukarda)
//echo "İsminiz $gelenText";
?>


basit GET kullanımı:
--------------------
getKullanimi.php (sayfaya getKullanimi.php?isim=bişeyler şeklinde değişken gönderdiğinizi varsayıyorum)
PHP- Kodu:
<?
//adresden gelen bilgiler, ve <form method="get"> şeklinde gelen veriler $_GET dizisine atanır.
$gelenIsim $_GET['isim'];

echo 
'İsminiz : ' $gelenIsim;
?>
register_globals:
--------------------
register_globals in on olması durumu ile ilgili olarak söylemek istediğim birkaç şey var.
öncelikle benim tavsiyem, register_globals değerini off yapıp, elinizi $_POST ve $_GET kullanmaya alıştırın.
verilerinizi daha kontrollü almış olursunuz böylece, güvenliği de bir nebze olsun arttırmış olursunuz.

mesela ( daha önceden de forumda verilmiş olması lazım , php.net den alıntı )

ornekRG.php
PHP- Kodu:
<?php
// eğer, fonksiyon kontrolünü geçerse $authorized = true oluyor, yani yetkili olunuyor.
if (authenticated_user()) {
   
$authorized true;
}

//eğer yetkili olunursa, gizli bilgi ekrana bastırılıyor.
if ($authorized) {
   include 
"/highly/sensitive/data.php";
}
?>
Bu tip bir kodda, register_globals değeri on olduğu zaman, mesela ornekRG.php?authorized şeklinde girilirse, direk olarak kullanıcı her kim olursa olsun bilgiye ulaşabilir.

register_globals le ilgili güvenlik sorunlarını, google dan basit aramalarla bulabilirsiniz.
Sıfırdan yazdığınız her kod için, register_globals değerini off yapıp, kodunuzu ona göre yazmanızı tavsiye ederim.
Alıntı ile Cevapla

  #12 (permalink)   iTrader 
Alt 2007-10-10, 21:56
Senior Member
 
Üyelik tarihi: Oct 2006
Mesajlar: 899
Teşekkür: 0
Thanked 0 Times in 0 Posts
Tecrübe Puanı: 2
iTrader: %0/0
Hobichat is on a distinguished road
Standart

hocam ya birde if, else, elseif fonsiyonlarıyla ilğili örneklerde paylaşabilirmisiniz.
Alıntı ile Cevapla

  #13 (permalink)   iTrader 
Alt 2007-10-17, 14:17
Grafix - ait Kullanıcı Resmi (Avatar)
g®afix
 
Üyelik tarihi: Dec 2006
Nerden: Bursa
Mesajlar: 1.022
Blog Entries: 1
Teşekkür: 15
Thanked 9 Times in 9 Posts
Tecrübe Puanı: 3
iTrader: %100/2
Grafix will become famous soon enoughGrafix will become famous soon enough
Standart

insan olarak kararlarımızı hemen hemen daima "bir şey öyle ise böyle, öyle değilse şöyle davranmak" üzere almaz mıyız? PHP programında if deyimi bunu sağlar.

Alıntı:

if ( koşullar ) {

koşullar doğru ise yapılacak işlere ilişkin komutlar

}

elseif (diğer koşullar) {

diğer koşullar doğru ise yapılacak işlere ilişkin komutlar

}

else {

diğer her durumda yapılacak işlere ilişkin komutlar

}
kullanımı yukarıdaki gibidir,aşağıdaki örneği de incelerseniz mantığını kavrayabilirsiniz..

PHP- Kodu:
<?php 

$sarki 
"Güneş Doğacak"

if ( 
$sarki == "Güneş Doğacak" ) { 

echo (
"Seçtiğiniz şarkının adı: Güneş Doğacak!"); 



elseif (
$sarki == "Beklerim Ben") { 

echo (
"Seçtiğiniz şarkının adı: Beklerim Ben!"); 



else { 

echo (
"Lütfen bir şarkı seçiniz!"); 



?>
bir başka örnek;

PHP- Kodu:
<?php 

$formdangelenuser 
$_POST["kullanici"];
$formdangelenpass $_POST["parola"];

if((
$formdangelenuser=="") or ($formdangelenpass=="")){

echo 
"Lütfen boş alan bırakmayınız";
header("refresh: 2; url=index.php");

}else{

echo 
"Kullanıcı girişi başarılı Hoşgeldiniz..";
header("refresh: 2; url=hesabiniz.php");

}

?>
__________________
Geliyor ...
Alıntı ile Cevapla

  #14 (permalink)   iTrader 
Alt 2007-10-17, 19:06
Senior Member
 
Üyelik tarihi: Oct 2006
Mesajlar: 899
Teşekkür: 0
Thanked 0 Times in 0 Posts
Tecrübe Puanı: 2
iTrader: %0/0
Hobichat is on a distinguished road
Standart

çok tşkler hocam devamını bekliyorum swict ve while gibi fonsiyonlarında yapabilirseniz çok makbule geçer anlatımız çok iyi o açıdan sölüyorum yani boş zamanınızda olabilir.
Alıntı ile Cevapla

  #15 (permalink)   iTrader 
Alt 2007-10-17, 22:55
Grafix - ait Kullanıcı Resmi (Avatar)
g®afix
 
Üyelik tarihi: Dec 2006
Nerden: Bursa
Mesajlar: 1.022
Blog Entries: 1
Teşekkür: 15
Thanked 9 Times in 9 Posts
Tecrübe Puanı: 3
iTrader: %100/2
Grafix will become famous soon enoughGrafix will become famous soon enough
Standart

switch fonksiyonunuda şu örnekle açıklayabiliriz,

index.php diye bir dosya oluşturalım,içine bir form yapalım ve action kısmı post metodu ile gelen.php dosyasına gitsin

bir text alanı yapalım adını "meyve" koyalım,
birde submit butonumuzu koyup index.php dosyamızı kaydedelim


index.php
PHP- Kodu:

<form action="gelen.php" method="post">

<
div align="center">

<
table border="0" cellspacing="0" cellpadding="0">
    <
tr>
        <
td>Lütfen Bir Meyve Adı Girin</td>
        <
td>:</td>
        <
td><input type="text" name="meyve" size="20"></td>
    </
tr>
    <
tr>
        <
td>&nbsp;</td>
        <
td>&nbsp;</td>
        <
td><input type="submit" value="Gönder"></td>
    </
tr>
</
table>
</
div>
</
form
gelen.php

PHP- Kodu:
<?php

/*Formdan gelen değerimizi çektik*/
$meyve $_POST["meyve"];

/*Aşağıda yapmış olduğumuz if kontrolü ile text alanına boş bir değer girilmesi halinde hata verip index.php ye geri yönlendirmesini sağladık*/
if($meyve==""){

echo 
"Lütfen boş alan bırakmayınız";
header("refresh: 2; url=index.php");
}

switch(
$meyve){
/*girilen değer limon ise echo ile meyvenin özelliklerini yaz ve dur*/
case "limon":
    echo 
"Girilen meyve sarıdır,tadı çok ekşidir,yemeklere sıkılır";
    break;
    
/*girilen değer karpuz ise echo ile meyvenin özelliklerini yaz ve dur*/
case "karpuz":
    echo 
"Girilen meyve elips şeklinde tatlımı tatlı yiye yiye doyamadığımız bir meyvedir<br>";
    break;
    
/*girilen değer elma ise echo ile meyvenin özelliklerini yaz ve dur*/

case "elma":
    echo 
"Girilen meyvenin kırmızısıda olur,yeşilide çok faydalı bir meyvedir ";
    break;
/*yukarda tanımladığımız meyvelerin dışında bir kelime girilirse echo ile hatayı ver ve dur*/

default;
    echo 
"Böyle bir meyve bulunamadı";
    break;
}
?>
umarım faydalı olmuştur..
__________________
Geliyor ...
Alıntı ile Cevapla

  #16 (permalink)   iTrader 
Alt 2007-10-17, 23:58
Senior Member
 
Üyelik tarihi: Oct 2006
Mesajlar: 899
Teşekkür: 0
Thanked 0 Times in 0 Posts
Tecrübe Puanı: 2
iTrader: %0/0
Hobichat is on a distinguished road
Standart

hocam gerçekden çok faydası oldu çok saolun allah razı olsun hatta ben bunu js coduyla yapdım php de yapılabildiğini bilmiyordum sayenizde ögrenmiş oldum.
Alıntı:
header("refresh: 2; url=index.php");
}
Alıntı ile Cevapla

  #17 (permalink)   iTrader 
Alt 2007-10-18, 00:04
Grafix - ait Kullanıcı Resmi (Avatar)
g®afix
 
Üyelik tarihi: Dec 2006
Nerden: Bursa
Mesajlar: 1.022
Blog Entries: 1
Teşekkür: 15
Thanked 9 Times in 9 Posts
Tecrübe Puanı: 3
iTrader: %100/2
Grafix will become famous soon enoughGrafix will become famous soon enough
Standart

PHP- Kodu:
header("refresh: 2; url=yonleneceksayfa.php"); 
burda 2 nin anlamı,
2 saniye sonra beni yonleneceksayfa.php'ye yönlendir.

fakat beklemeden yönlendirmek istiyorsanız;

PHP- Kodu:
header("location:yonleneceksayfa.php"); 
__________________
Geliyor ...
Alıntı ile Cevapla

  #18 (permalink)   iTrader 
Alt 2007-10-18, 09:27
Angelo - ait Kullanıcı Resmi (Avatar)
Moderator
 
Üyelik tarihi: Dec 2004
Nerden: California
Mesajlar: 4.206
Teşekkür: 0
Thanked 2 Times in 2 Posts
Tecrübe Puanı: 8
iTrader: %100/4
Angelo is a jewel in the roughAngelo is a jewel in the roughAngelo is a jewel in the roughAngelo is a jewel in the rough
Standart

Ek olarak Refresh, refere bilgisini resetler, header ise yönlendirirken refere bilgisini tutar.

foreach'den bahsetmek gerekirse biraz, foreach dizi içerisinde döngü yapmanızı sağlar. Dizideki indekslerin önemli olduğu kısımlarda daha çok kullanılır. Indeksten kasıt dizinin elaman ismi. Dizileri küme karşılıklı kümeler gibi düşündüğünüzde indeksler ve karşılığında aldıkları değerler vardır.

Örneğin:

Favorilerimizden oluşan bir dizimiz olsun.

$favori['araba'] = "maserati";
$favori['renk'] = "mavi";
$favori['icki'] = "votka";
$favori['takim'] = "fenerbahce";

Dizimiz bu şekilde set edilmiş olsun. Bu diziyi döndürmek istersem.

Örnek 1
--------
PHP- Kodu:
foreach ($favori as $deger) {
echo 
$deger.'<br>';

--------

Bu örnek ekrana
maserati
mavi
votka
fenerbahce
basacaktır. Dikkat ederseniz sadece değerleri bastı indeksleri döndürmesini istemedik.


Örnek 2
--------
PHP- Kodu:
foreach ($favori as $indeks => $deger) {
echo 
"$indeks = $deger<br>";

--------

Burada => operatoru ile hem indeks i hem değeri döndürmek istediğimiz için ekrana şu şekilde bir şey basacaktır.

araba = maserati
renk = mavi
icki = votka
takim = fenerbahce


Kısacası foreach'i iki şekilde kullanabilirsiniz, indeks değerleri size genelde indekslere göre değerlerin yeniden düzenlenmesi gerektiği yerlerde ya da indekslerin de kullanılacağı yerlerde lazım olacaktır. Sadece değer lazımsa birinci örnek şeklinde döndürebilirsiniz.



UYGULAMA
-----------
Klasik bir mysql update formu düşünelim. Kullanıcılarınızın profil güncelleme bölmesi olsun. Normalde yapacağınız şeyi düşünelim, bir çoğunuzun kullandığı metod şu şekilde oluyordur sanırım;

PHP- Kodu:
$isim $_POST['isim'];
$adres $_POST['adres'];
$email $_POST['email'];
//... böyle devam eder

mysql_query("UPDATE kullanici SET isim='$isim' , adres='$adres', email='$email' WHERE id='$_GET[id]'"); 
Yanlış mı? Hayır değil, bir yere kadar. Ancak bu sizin kullanıcı güncelleme sayfanız. Ondan sonra başka bir sayfada değişik değişkenlerle tekrar update yapacaksınız, başka sayfada değişik. Her seferinde yeni kod.. (Ben copy paste yapıyorum değişken adlarını değiştiriyorum diye içinizden söylenmeyin)

Peki genel bir fonksiyon olsa, html formlarinizdaki verileri otomatik olarak mysqlde güncellese. Şöyle ki

PHP- Kodu:

function sqlhazirla() {

   foreach (
$_POST as $indeks => $deger) {
   
$sql .= "$indeks='$deger', ";
   }

$sql rtrim($sql,", ");
return 
$sql;

Ne işe yaradı bu? Bütün post datalarınızın indeksleri ve değerlerini belirtilen formatta uc uca ekledi, ve en sonunda sonundaki fazlalık virgülü kesti. rtrim() sağdan string kesme işlemidir. Bu işlem sonunda ilk örneğimizdeki formdan gelen veriler nasıl biçimlendi $sql içinde

$sql = "isim='ahmet',adres='levent',email='ahmet@ahmet.co m'" oldu dimi. Yani mysql de istediğimiz format. Ve artık bu fonksiyonu istediğimiz forma uygularız teker teker değişkenleri yazmamıza gerek yok.

Tek yapmamız gereken bu yapı.
--
$sql = sqlhazirla();
mysql_query("UPDATE tablo SET $sql WHERE id='$_GET[id]'");
--


Bir derece ileri götürmek istersek, Postlarda bazen mysql e gitmeyecek alanlar oluyor, captcha gibi, submit butonu gibi, ya da canınızın istediği hidden alanlar gibi. Pekala onları döngüye nasıl aldırmayacağız. Çünkü aldırırsak onlar da döngüye girecek kod='819292' gibi ki mysql bunun karşılığı olmadı için sayfanızda hata verecektir. Bunun için sqlhazirla() fonksiyonuna bir girdi verelim, bu girdi de istemediğimiz alanlar olsun ki onlar sorguya katılmasın.


PHP- Kodu:
function sqlhazirla($istemiyoruz) {

$alanlar explode("-",$istemiyoruz);

   foreach (
$_POST as $indeks => $deger) {
       
      if (!
in_array($indeks,$alanlar)) {
      
$sql .= "$indeks='$deger', ";
      }

   }

$sql rtrim($sql,", ");
return 
$sql;

formatimiz
$sql = sqlhazirla("kod-submit-gizlialan1");
oldu.

Burada yaptığımız şey sqlhazirla() fonksiyonuna verdiğimiz girdiler sql ye katılmasını istemediğimiz veriler. Öncelikle ilk satırda bu veriyi "-" işaretine göre bölüp diziye attık explode() ile. Şimdi elimizde elemanları kod,submit,gizlialan1 olan bir dizi var. Şimdi post dizisi üzerinde dönerken, indeksleri kontrol ediyoruz her adımda, eğer indeksimize ait güncel değer, yasaklı diziye ait değilse döngüye katıyoruz.

Bu uygulamada dikkat edilmesi gereken nokta HTML formlarınızdaki form indekslerinin mysql alanlarıyla aynı olması. Ki zaten mantıken çoğu zaman aynıdır. MySQL'de ismi isim olan bir alana, formda da isim deyin.

foreach() için örnek olması açısından ekledim. Bunu kullanarak sitelere ait kontrol paneli hazırlamalarında artık güncelleme bölümleri problem olmaktan çıkıp her bir data alanının güncellemesi sayfası sadece html formlarının oluşturulmasına bakıyor.


inceleyin, örnek içinde kullanın.

www.php.net/foreach
www.php.net/in_array
www.php.net/explode
www.php.net/rtrim
__________________
peace love union respect
Alıntı ile Cevapla

  #19 (permalink)   iTrader 
Alt 2007-10-18, 15:37
Senior Member
 
Üyelik tarihi: Oct 2006
Mesajlar: 899
Teşekkür: 0
Thanked 0 Times in 0 Posts
Tecrübe Puanı: 2
iTrader: %0/0
Hobichat is on a distinguished road
Standart

hocam çok guzel olmuş tşkler.
Alıntı ile Cevapla

  #20 (permalink)   iTrader 
Alt 2007-10-31, 22:45
deviL - ait Kullanıcı Resmi (Avatar)
Member
 
Üyelik tarihi: Aug 2007
Nerden: Antalya
Mesajlar: 298
Teşekkür: 0
Thanked 6 Times in 4 Posts
Tecrübe Puanı: 1
iTrader: %100/3
deviL is on a distinguished road
Standart

-devamı gelirmi?-(gelsin lütfen)
__________________
will be back!
Alıntı ile Cevapla

Cevapla


Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
PHP' ye giriş ibryas PHP 1 2007-08-28 02:45
ftp giriş hatası Cagatay Webserver kurulum ve ayarlar 0 2007-01-21 16:46
Toplu Giriş fatihhk PHP 0 2006-10-03 20:18
giriş [KaDeSign] Web Hosting Kurulum Donanım Yazılım 2 2006-09-03 22:47
web den irc ye giriş Baria PHP 3 2006-03-03 12:28


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 11:04 .


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.1.0

Firefox