Kayıt: Mar 18, 2005 Mesajlar: 2176 Konum: istanbul-tokat
Tarih: 2007-08-27, 23:49:33 Mesaj konusu: Php Ekşin - Php'ye Giriş ve Çıkış (:
php nedir
Kod:
<?php ?>
arasındaki herşeydir
kısa tag olarak <? olarakta yazılabilir
Kod:
<? ... ?>
gibi
nasıl yazarım
nereden başlıyalım önce php ile ekrana yazmayı görelim
Kod:
<? echo'saho'; ?>
burada yazdırdık ama ' ' ile yazdırdık bir değişken yazdıracağımızda değişken değil düz metin olarak çıktı verilir ama henüz değişken nedir bilmiyorsunuz. o yüzden hemen değişkeni anlatalım
$degisken='degisken iceri verisi';
veya
$degisken="degisken iceri verisi";
gibi tanımlanır yine üstteki kısım
' ' arasında kod var ise değişken olarak değilde metin olarak algılar " " arasında olursa değişken oolduğunu anlar echo ile değişken basmaya devam örnek
Kod:
<?
$saho='saho değişken değeri';
echo'$saho';
?>
bu ekrana
$saho çıktısı verir
ama
Kod:
<?
$saho='saho değişken değeri';
echo "$saho";
?>
ekrana
$saho değişkenin içini yani
saho değişken değeri
ini bastı yapar
bir püf noktası mesala
gibi bir yazımdan
?>[/code]
<table><tr><td>...
<form .....
<input ...
Kod:
<?
yazımı daha hızlı derlenmesine ve daha hızlı çıktı vermesine etki eder bu yüzden bu şekilde kullanılmalıdır bu kısımlarda ise pratik ve kısa yazımlar için bir püf noktası
?>
<table><tr><td>...
<form .....
<input name='saho' value='<?=$saho;?>'>
<?
gibi
Kod:
<?= değişken ;?>
gibi kısadan yazılabilir değişken içeriği bastırılabilir
değişkenlere geri dönersek
değişkenleri uc uca ekleyerek toplayabiliriz
$degisken3=$degisken2.$degisken1;
gibi yan yana eklenebilir burada mesala bir çok şey yaplabilir mesala aralarına ayraç koyabilirsiniz
$degisken3=$degisken2.'ayraç'.$degisken1;
gibi php de metin gireceğimizde bu aralıkta
. ile durdurur ' ile metin kısmını açar ' ile kapar .
ile php metini bitiririz, yine ' ' - " " basması geçerlidi değişken kullanmayacaksak ' ' ile metin girişi yapıp az da olsa sayfanızın hızlı derlenmesini sağlayabilirsiniz.
değişkenlerde sıkıntınız varsa ek olarak yazabilirsiniz
php de ölümcül nokta
if lere geldik aslında programlama nın temeli if tir
aslında if herşeydir hadi layn nerden çıkardın diyenlere kapak geliyo
if e yani programlamacılığa ekşin yapıyoruz
önce kısa gösterimler daha sonra kapak etme mevzusuna dönecem
hemen basit bir örnek türkiye ip leri başlangıcı 85 var mesala
Kod:
<?
$turk_ip='85';
$adamin_ip=substr($_SERVER["REMOTE_ADDR"],0,2);
if($turk_ip==$adamin_ip) {
türkse gösterilecek sayfa
burada genelde
include"turkce_index.php";
} else {
türk ip si değilse
include"digerdiller_index.php";
}
?>
noluyo görsetmediğin şeyler var burada derseniz
2 şey var
1- substr
2- include
hemen yan başlık açalım onlara
substr bir değerin içeriğinin sayısal olarak uzunluklarına göre alınmasını sağlanır
he birde
$_SERVER["REMOTE_ADDR"] var buda kişinin ip sini alır
kişinin ip sini aldık mesala
85.12.98.127 gibi bir şey
bunu substr ile
substr($_SERVER[REMOTE_ADDR],0,2);
yaparak adamın ip sini al 0 dan başla 2 tane karakterini al dedik ve 85 i elde etmiş oldu mesala tr olmayan bir ip ise if de diğer kısım çıkacak substr ın diğer kullanım yöntemleri mesala
subsr($degisken,-4);
en sağdan tersten 4 karakteri alır soldan başlamz yani şöyle bişi daha var
substr i mesala şurada kullanırsın siteye haber ekleyeceksin makale ekleyeceksin uzun makale makalenin bir kısmını ana sayfada göstermek için
substr($yazikaynagi,0,255);
255 tane al ilk 255 karakteri al yani sonra kalanları almak içinse şöyle bir yöntem
substr($yazikaynagi,255,strlen($yazikaynagi));
gibi bir şekilde 255 den değişkenin uzunluğu kadar alırsın evet strlen o değişkenin uzunluğunu sayısal olarak çıktısını verir sonra geçtik nerede kaldıydık ya [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif[/IMG]
heh if leri vermişiz
if böyle çok basit diyosan mesala hani programlamanın temeliydi diyosan mesala
phpde süper değişkenler diye bir şey var bunlar
$_GET, $_POST get form la üretilir yada link verilir php sadece form dan üretilir curl cart curt la zaten suncuuya post attırma mantığı var
link ile mesala
index.php?bolum=saho dersen
gibi bir kullanım var bunun daha pratiği switch var ama onun mantığı da yine if e dayanıyor içinde if den farklı bir şey yoktur.biraz daha basit kullanımı işte üsttekini açıklıyım devam edelim
bolum den gelen değeri
$_GET["bolum"] ile aldık bu saho ya eşitse
saho.php yi sayfaya dahil ettik değilse
index.php yi dahil ettik
mesala 3 sayfanız var saho,deli_dana,index .php adında
buda mesala üstteki ile aynı işi yapar biraz daha pratik ama temeli if bununda zaten
include ye gelirsek include edersiniz
saho mesala get bolum değeri
saho.php yoksa include hata verir ama sayfayı basmaya devam eder
require ile yaparsanız şöyle
require"saho.php";
sayfada hata verir direk sitenin diğer kısımlarınıda basmaz aslında bu saho.php sitenin temeli ise gerekli ise kesinlikle require ile sayfa ya dahil edilmelidir ki lamerlerlerin etkilerine tepkisiz kalmamnız için birde şu var mesala
aynı fonksiyon var saho.php nin içinde fonksiyon ney hemen onada gireyim
Kod:
function saho() {
saho fonksiyonunun içeriği
}
gibi mesala saho.php nin içinnde bu var
saho.php yi oldu bir yanlışlıkla 2 kez dahil ettiniz veya dinamik bir sayfa bir şekilde 2 kez dahil olabilir sayfaya kodlarınızın durum ve karmaşası ve mantığı ve algoritmasına göre 2 kez include edildiyse mesala
duplicate function gibi bir hata verebilir yada
duplicate definition yani 2 kez tanımlanmış bu fonksiyon gibi bir hata verebilir yada saho.php içeriği 2 kez basılır ekrana bunu engellemek için daha önce dahil edilmiş mi bu şeyler diye kontrol etmek için
Kod:
require"saho.php";
yerine
Kod:
require_once"saho.php";
yapmak olayı çözer
Kod:
include"x";
yeirnede
Kod:
include_once"x";
kullanılabilir
kafam dağıldı hemen
for a geçelim mesala
Kod:
for($i=0;$i<10;$i++) {
echo $i;
}
gibi yazarsak 1 den 10 a kadar ekrana yazı basar pratk halini yazalım tek satır echo bastıracaksak for içinde
Kod:
for($i=0;$i<10;$i++)
echo $i;
parantezleri kullanmadan da yazdıralabilir mesala
title spam yapmak için yada etiket olayları içinde olabilir bu ben 2 sinide gösterem mesala
$spam=array('izle','indir','gonder');
array ney looo diyecek olursanız array
dizi burasya girdiğimiz izle indir gonder tek değişkene atandı toplu işlemler yapmak için daha pratik olur bu buna bin bir türlü erişim var php de $spam[0] derseniz izle 0 . saçma gibi ama 0. değeri alıyor [1] gibi derğerli alıyor mesala for ile şöyle yaparsınız
spam dizi-array ında kaç veri olduğunu ekrana basar mesala 3 tane ise for 3 kez döner ve tüm içeriğini basar bu amaçla kullandık burada mesala herşeyin temeli if demiştik burada for ile kullandık ya
bunu diziler için en büyük araç olan foreach ile daha kolay basabliriz mesala
Kod:
foreach($spam as $spamx) {
echo $spamx;
}
gibi yine yazdırırsın değeri vs. ile de uğraşmazsın daha pratik daha gelişmiş hali for buna göre daha ilkel yine bunda da tek satır parantezleri kullanmadan daha hızlı olabilirsiniz zaten bu parantezleri parse -syntax error ların temelidir insanı canından bezdirebilir ama eskiden di oda [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif[/IMG] zend var her satırı gösteriyo parantezleri vs. ama notepad,notepad++,dreamveawer kullananlar verem olmaya devam forever verem [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif[/IMG]
php ye devam mesala iyide ekrana bu spamı bassak elimize ne geçer şöyle bişide geçer
mesala video siten var
video adı $video_adi adlı bir değişkenin içinde veritabanından çekilmiş duruyo veritabanından çekmeyi de görecez anca giriyoz o az uzun kafanızı çok dağıtmıyım şimdi gelmiş değişkende duruyo kabul edelim
$video_adi içinde,
"baptista harika röveşata" yazıyor mesala
title spam yine bu title şeyini m e t a keyw a da da aktarabiliriz
Kod:
foreach($spam as $spamx)
echo $video_adi." ".$spamx;
gibi yaparsak
baptista harika röveşata izle
baptista harika röveşata indir
baptista harika röveşata gonder
gibi çıktılar verir title de süper gider
daha sonra mesala array-dizi ile ilgili
shuffle($spam);
yaparsanız
spam da ki izle indir gonder in [0][1][2] lerin yerlerini değişir
birde arrayların güzelliği var toplu işlem yapabilirsiniz mesala şu
Kod:
$_GET["bolum"]
$_GET["obje"]
gibi 15 tane get var bunlara güvenlik uygulaması yapacaksınız ' " vs. bunlardan kurtaracaksınız
fonksiyonlarada tekrar dönerek göstereyim mesala
Kod:
function dizi_duz($dizi) { # dizi dedimiz şey $spam mesala
$kotu_seyler=array('or','union','...');
return str_replace($kotu_seyler,'',addslashes(strtolower(htmlspecialchars($dizi))));
}
gibi dizi_duz enleme fonksiyonumuzu tanımlıyoruz
daha sonra
Kod:
foreach($_GET as $saho=>$ankabt)
dizi_duz($_GET[$saho]);
gibi tüm dizi içeriğine dizi_duz de bir kez tanımladığımız tüm olayları uygulayabiliyoruz
daha yazacağım şey var karışıkta olabilir
Yazar : Şahabettin Akca // saho girdim bir yerden oradan oraya atlayarak çıkar gibi oldum sırayı biraz bozmuş olabilir diğer makalelerden kopuk olduğu için netopsiyon halkı ve ali osmandan özür dilerim yazmıştım kıyıda durmasın vereyim dedim
Kayıt: Mar 18, 2005 Mesajlar: 2176 Konum: istanbul-tokat
Tarih: 2007-08-28, 00:20:27 Mesaj konusu:
$kotu_seyler=array('or','union','...'); buradakilere replace yapıyor
h tml kodlarını süzüyor hepsini ufaltıyor kişi O r o R O R U nion UN iON UnI oN gibi kullanımları engelleemk içinde strtolower ile boyunu ufalttaık
htt p://eski.netopsiyon.com/modules.php?name=Forums&file=viewtopic&t=34076#188073
foreach($_REQUEST as $saho=>$Netopsiyon) {
$_REQUEST[$saho]=trim(addslashes(htmlspecialchars(mysql_real_escape_string(
$_REQUEST[$saho]))));
$_REQUEST[$saho]=str_replace(array('o r','un ion','a nd','\'','"','h ttp://','h ttps://','ft p://'),'',strtolower($_REQUEST[$saho]));
}
üstteki başlıkta o aralıkta köü şeyleri yazmıştım rfi remote include file açıklarınıda engellemek için fln :)
sinir oldum bu geri zekalı phpbb yüzünden bir türlü post atamıyom neyi engelliyor diye sürekli boşluklar bırakarak postu gönderebildim
mybb-vb den birine geçelim artık :p
Kayıt: Mar 18, 2005 Mesajlar: 2176 Konum: istanbul-tokat
Tarih: 2007-08-28, 11:25:30 Mesaj konusu:
mybbturkiye.com ise onlara kod desteği sağlıyorum arasıra :) yani müsait oldukça
+
bunlar zaten php nin temelleri güvenlik üstüne bir yazım daha var inceleyeiblirsiniz
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız