Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
185
Cevap
16282
Tıklama
0
Öne Çıkarma
Cevap: Sıfırdan PHP (5. sayfa)
A
20 yıl
Yüzbaşı

Arkadaşım önce rastgele sayıyı belirlersin mesela 15987 olsun

yani $sayi=15987;

sonra resimi oluşturursun, üzerine de 15987 yazdırırsın

sonra kullanıcının gireceği formu hazırlarsın:
<input type="text" name="onay">

sonra kullanıcı girişe bastığı zaman bildiğin form işte

if( $sayi=$_POST['onay']) {

echo 'giriş başarılı';

}
gibi yani



M
20 yıl
Yüzbaşı
Konu Sahibi

Arkadaşlar sağolun yazdıklarınızla istediğim şimdilik oldu...

Acayip!

Yukarıda "güncelle.php ye gitmesi için koyduğun butona o idi verirsin." diye bir yazı geçmiştin tabi bir sonraki mesajın gelmeden önce acaba butonun neresine koyacağım diye düşünüyordum... Sonraki mesajda baktığımda formun action kısmına güncelle.php?no=$no yazmışsın...
butona o idi verirsin demekten kastın buydu sanırım (tam olarak anlamak için soruyorum)


Ayrıca post yöntemi gerçekten güzel...
Peki hangi hallerde post hangi hallerde get metodunu kullanabiliriz..?

Mesela sil linkine get metodu yerine post metodu uygulayamayız değil mi?

Şu anki konumda dediğin gibi yine de güvenlik açısından boşluklar var mesela get metodu kullandığımız için browserda yapacağımız bir değişiklikle yine başka kayıtları silme ya da güncelleme durumu söz konusu oluyor ve ayrıca güncellemede güncelleform.php sayfasında her ne kadar kayıt numaraları görünmese bile kaynak koduna girildiğinde hangi kaydın olduğu görünebiliyor...

Şu anki durumuyla görüntüsel olarak sorunları hallettim ve bugün de yine yeni şeyler öğrendim... Allah razı olsun...

Kodlar uzun olmadığı için tek sayfada toplayabilirsin diye belirtmişsin....
Evet haklısın ama diyorum ya kendimce bişeyler yapmaya çalışıyorum...Kafamda bir kurgu oluşturuyorum ve onu yürütüyorum..Yaptığımın acemice olduğunu biliyorum ama en azından işlevsel olarak hallettikten sonra zamanla yapılması gerektiği gibi yapmayı amaçlıyorum...

Mesela bir sayfada değerleri farklı, iki aynı değişkenin ikincisi baz alındığını yeni anladım...
Yani
$veri=ahmet
$veri=mehmet
sayfamızda bu iki değişken var...
echo $veri; yazdırdığımzda görüntüde mehmet çıkacağını yeni farkına vardım...Hani ben aynı sayfada iki aynı değişken olamayacağını düşünüyordum ...Ama böyle bir sıralama söz konusuymuş...

O nedenle sayfalardaki sayfa düzeni konusunda çok şeyler öğrenmem gerekiyor...
Yukarıdaki güncelleform.php ve guncelle.php sayfalarını tek bir sayfa içinde göstermeme sebebim de buydu...Yani bir yerlerde yanlışlık yaparım diye iki sayfada göstermeyi tercih ettim...













NmC! Senin soruna yanıt verebilecek düzeyde değilim ve o konuyla henüz tanışmadım zamanı gelince ancak üzerinde yoğunlaşırım...
Sana bir link vereyim belki işine yarar...Burayı Tıkla


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım butona id vermek derken, yukarıda örnek verdiğim şekilde de olur, veya başka bir durumda

<input type="button" onClick="window.location=güncelle.php?no=125">
<input type="button" onClick="window.location=güncelle.php?no=127">

şeklinde de kullanılabilir.Yani o anda senin ihtiyacın ne ise ona göre davranırsın.

GET ve POST'a gelince o da aynı şekilde hangisi işine geliyorsa onu kullanırsın, genelde POST un daha güvenli olduğu gibi bir yargı var ama açık bırakınca her ikisi de aynı hesaba gelir.Genelde silme ve düzenleme gibi link yazılan işlerde GET kullanılırken yeni kayıt girişinde veya uzun metinlerin olduğu yerde POST kullanmayı tercih ederim. Sil linkine POST uygulamayız değil mi demişsin.Uygulayamaman için neden yok

echo '<input type="hidden" name="id" value=" ' . $veri['id'] . ' ">';

gibi hidden olarak yazılır ve diğer sayfada

$id=$_POST['id'];

şeklinde alırsın.Ancak sayfanın kaynak koduna bakılırsa görülür tabii başka isim verirsin, kimse ne olduğunu anlamaz veya belli bir işlemden geçirirsin, örneğin kafana göre 5 le çarp 27 ekle falan gibi, diğer sayfada tersini yaparsın, GET için de aynı şey geçerli.Senin kullanımına kalmış,kod yazmanın güzelliği de bu olsa gerek.

Ayrıca değişkenlerden de konu açılmışken dikkatli kullan, yani senin de söylediğin gibi aynı değişkene farklı bir değer verirsin sonra hata çıkarsa veya beklediğin işlemi yapmazsa hata nerde diye ararsın.O nedenle değişkenlerine mümkün olduğunca açıklayıcı ve ayırıcı adlar vermelisin.

Kodlarını tek sayfada toplayabilirisn dememin sebebi de kısa olmasıydı yoksa sen kendi prensibine göre hareket etmelisin.Asla acemice diye düşünme.Kimse usta olarak başlamıyor.


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

hocam öncelikle bilgilerin için tşk ederim...

Yukarıda vermiş olduğun
<input type="button" onClick="window.location=güncelle.php?no=125">
kodu denedim fakat bende çalışmadı acaba bu input içine başka bişey daha eklememiz mi gerekiyor...Bunu gerek form için de gerekse formdan çıkararak denedim...Yani bu buton sayfada gözüküyor tıklayınca herhangi bir işlem olmuyor...

Diğer konuda ise ...Sil linkinde de herhangi bir değişiklik olmuyor aslında oradaki kod kafamı biraz karıştırdı
echo '<input type="hidden" name="id" value=" ' . $veri['id'] . ' ">';

Bunu buşekilde yazdığımızda ekranda gözükmüyor peki biz nereye bastığımız da sayfa sil.php ye yönlenecek? Yani bu kodu koymamız gereken yer var mı eğer varsa neresi?



Bir de şu güvenlik açısından değişkeni 5 ile çarpıp 25 eklemek gibi bir örneği nasıl yapabilirim? Yani mantığı nedir?


Değişken konusunu şu anlamda belirtmek istedim. Yani her ne kadar bazı şeyleri uygulamasak bile kurallarını bilmek gerekir...
Ben mesela satırları renklendirme konusunda geçenlerde bilgi topladım ve bir kaç tane farklı mantıkların uygulandığı kodları gördüm ...Bir tanesinde şöyleydi...
Amaç satırların biri örnek veriyorum sarı diğeri mavi olacak
Yani satırlar sarı mavi sarı mavi diye gidecek...

Kod şöyle gidiyordu...
While döngüsü dışında
$renk=sarı;(sembolik olarak yazdığımdan dolayı renk kodlarını girmiyorum)

while içinde ise

if($renk==sarı) {$renk=mavi;}
else{($renk=sarı);}

yazılmış ve sonrasında da <td bgcolor=$renk>
yerleştirilince satırların biri mavi diğeri sarı diye gidiyor...

Bu kodun işleyişi konusunda bayağı kafa yordum...Daha sonra while döngüsü içinde $renk değişkeni periyodik şekilde değer değiştiriyor olduğunu farkettim...Yani yukarıda yazmak istediğim oydu en son değişkenin değeri baz alınması olayı bu söylediğim örnekte geçerli bunun mantığını bilmek için değişkenin en son değeri baz alındığını bilmek gerekiyor...

Yani sonuç olarak bir takım kodları kullanırken kurallarını da bilmek gerekir ki neyin nereden geldiğini anlayabilelim...

Ya bi de bu tür sorunlarla bir tek ben mi karşı karşıyayım hiç mi birilerinin bu tür konularda sıkıntıları yok... Devamlı soru sormaktan utanır hale geldim...Ayrıca eminim ki burada yazılanlar mutlaka bir başkalarının da işine yarıyordur... Ben bile sormuş olduğum sorunun haricinde laf arasında öğrendiğim çok şey oldu...
Bilgilerin için tekrar tşk ler arkadaşım...


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım form içinde olup olmaması önemli değil, yalnız yazarken tırnaklara dikkat et, ben yukarıda yazarken atlamışım kusura bakma, onClick için çift tırnak, location için tek tırnak yazacakasın.PHP echo komutu ile yazdıracağın zaman tektırnakların başına kaçış koymayı unutma:

<input type="button" onClick="window.location='guncelle.php?no=125' ">

Diğer soruna gelince hidden olarak yazdığımız ekranda görünmez sadece sayfa kodunda görülür diğer sayfada da

$id=$_POST['id'];

şeklinde alırsın diye yazmıştım yukarıda sanırım atlamışsın.

Yalnız ikisini karıştırma hidden koyduğun zaman bir form içinde olmalı ki formu submit edince diğer sayfada değerler gözüksün.yani :

echo '<form action=sil.php?no='. $sec[no].'" method="post"><br>
<input type="submit" value="sil"></form>';

gibi.

ama ilk soruda yazdığım gibi buton koyarsan forma gerek kalmaz, yani iki buton koyarsın biri güncelle.php'ye diğeri de sil.php'ye yönlendirir:

<input type="button" onClick="window.location='guncelle.php?no=125' " value="GÜNCELLE">
<input type="button" onClick="window.location='sil.php?no=125' " value="SİL">


Güvenlik açısından değişkeni nasıl değiştirirsin. mesela :

$veri['id']=125; geldi diyelim

$s_id= ($veri[id] *15)+150; gibi kafana göre bir işlem yaparsın

echo '<input type="hidden" name="s_id" value=" ' . $s_id . ' ">';

diye gönderirsin diğer sayfada da:

$id= ($_POST['s_id']-150 ) /15;

gibi tersini yaparsın, tabii ne kadar karmaşık işlemden geçireceğini sen bilirsin,istersen şifreleyip gönderirsin ama bunlar için şu anda erken bence, yani sen temelini doğru bir şekilde öğren merak etme bunlar sonradan aklına gelir, yani kimsenin söylemesine gerek kalmaz- sen kendin sorununa kendi çözümünü bulursun.

Ve değişken için verdiğin örneğe gelince daha önceden de hatırladığın gibi bir işi yapmanın bir çok yolu olduğunu ve senin için hangisi uygunsa onu yapacağını söylemiştim.Bir üst paragrafta yazdığım gibi belli bir seviyeye gelince kendi çözümünü kendin bulacaksın merak etme.

Ayrıca soru sormaktan asla çekinme, unutma öğrenmenin anahtarı soru sormaktır.Ha soru sormak derken önce kendine sorarsın, baktın bilmiyorsun araştırırsın, yine çözüm bulamadıysan birisine sorarsın, ben senin araştırmadan soru sormadığını bildiğimden elimden geldiğince yardımcı olmaya çalışıyorum, yoksa bilmem dikkat ettin mi eskisi kadar en azından bu forumda cevap yazmıyorum çünkü devamlı aynı şeyler sorulup duruyor neyse bunun konuyla ilgisi yok.


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Hocam bu güzel bilgilerin için öncelikle tşk ederim hepsini uyguladım ve sonuç olumlu... Ve ayrıca şu değişkeni herhangi bir sayıyla çarpmak bir şeyler eklemek ve bir sonraki sayfada da bu yapılanları çözümlemek mantığı gerçekten mükemmel bir mantık...
Php'nin basit olmadığını ama bi o kadar da zevkli bir dil olduğunu farketmeye başladım...

Yukarıda "echo komutuyla kullandığında tek tırnakların başına kaçış koymayı unutma" demişsin...
Kaçış koymak ters slash koyma anlamına geliyorsa evet onu kullanarak hallettim... Bu arada senin dilini de öğrenmeye çalışıyorum

Neyse hocam ben yine bu öğrenmiş olduklarım üzerinde yoğunlaşıp bildiklerimi pekiştireyim... Bu değerli bilgilerin için tekrar teşekkür ederim...


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Rica ederim arkadaşım, yardımcı olabiliyorsam ne mutlu bana.Ayrıca hocam diye hitap etmene gerek yok, o seviyeye gelebilmem için daha çok şey öğrenmem gerek.

Evet kaçışdan kastım o, escape diyecektim türkçe olsun dedim :)
PHP gerçekten çok güzel ve zevkli bir dil. Yukarıda söylediğim gibi bir zaman gelecek kendi sorununu bildiğin fonksiyonlarla kendin çözeceksin, ve daha çok zevk alacaksın. Neyse arkadaşım şimdilik başarılar sana, bir sorunun olursa buraya yazarsın, bildiğimiz bir şeyse yazarız, bilmediğimiz şeyse çözüm ararız.


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Öncelikle selamlar...
Hocam diye içimden geldiği için hitap ediyorum(Yaşın hiçbir önemi yok ;belki benden küçük belki de büyüksündür...) ve ayrıca senden bir çok şeyin belleğimden çıkmayacak nitelikte olarak öğrendiğimi düşünüyorum ve bunda da bana hocalık ettiğini düşünüyorum...

Eğer kelime olarak sana karşı "Hoca" diye hitap edilmesinden dolayı rahatsızlık duyuyorsan bundan sonra o kelimeyle hitap etmem... Ama sonuç olarak senden bişeyler öğrendiğim bir gerçek...O nedenle izin verene kadar "arkadaşım" diye hitap etmeye devam ederim...

Şimdi konumuzla alakalı birkaç sorum olacak ...Aslında bir tane sorum olacak şimdilik ama onun dışında yapmış olduğum ya da diğer kaynaklardan öğrenmiş olduğum veya dikkatimi çekip böyle midir diye kafamda ışıklar belirdiği bir kaç konu var...


Sorum şu ;
Bu topic altında ilk mesajlarda bana göstermiş olduğun kayıtları listeleyip sayfalama yöntemiyle ilgili...

Şu anda o methodu kendi kendime yapabilliyorum tabi defalarca silip yeniden kodları yazarak kendimi alıştırdım.... Yanlız şimdi bir sorun olduğu ortaya çıktı... kayıların altında sayfa sayıları 1 2 3 4 diye gidiyor ya... bu sayfa sayısı arttıkça oradaki sayılarda artarak görüntüyü bozuyor...Yani 200 küsür sayfa olduğunu düşündüğümüzde görüntününde o denli bozulacağını tahmin ediyorum...
Bu sayıları kontor altına almak için örneğin ; Geri [4] 5 6 7 İleri gibi bir görüntüyü elde etmek istiyorum...
Yani ortada 4 ya da 5 tane sayı görünsün , sağında ve solunda geri ve ileri butonları bulunsun...

Bununla ilgili başka makalelere de baktım fakat orada ki sayfalama metodları farklı ve çok karmaşık olduğu için oradaki mantığı buraya uygulayamadım...
Ayrıca başka kaynaklarda dizi içindeki değerlerde kullanılabilen
next();
prev();
gibi fonksiyonları da for döngüsünde denemeye çalıştım ama yine başarılı olamadım
Yukarıdaki next ve prev fonksiyonlarının kullanım alanlarıyla ilgili fazla örnek bulamadığım için for döngüsünde kullanılıp kullanılmadığını bilmeden de olsa deneme girişiminde bulundum... Ama hep bir yerlerde hata verdi...

Bu anlatımlarımın sonucunda sorumu özetliyorum...Bana göstermiş olduğun kayıtları sayfalandırma mantığınının yapısını bozmadan üzerine sayfa numara linklerini yukarıda gösterdiğim şekilde (geri 2 3 4 ileri gibi) kontrol altına alabilir miyiz?


Şimdi dikkatimi çeken bazı noktalar oldu bunlar acaba doğru mu yoksa benim kuruntum mu?

1)Mesela
bazı if fonksiyonlarında
if(şart){ yapılması gereken işlem} çalışırken

bazılarında da if(şart): endif; çalışıyor

yani "{ }" parantez yerine ":" ve "end"
geliyor...
Bunu for while ve switch lerde de gözlemledim...

Acaba php de "{ }" kullanılan bütün fonksiyonlarda mantık hep böyle midir?
Yani o parantezler yerine iki nokta üstüste ve en sonunda end fonksiyonun adı....

2) tırnak kullanımlarında her yerde tırnak kullanılması gerekir mi?
Mesela $sayfa=$_GET[sayfa]; ve $sayfa=$_GET['sayfa']; ve bir de $sayfa=$_GET["sayfa"];

Bu üç değişkende çalışıyor...Bu tırnakların kullanılması ya da kullanılmaması arasında bir fark var mı? Yani hangi yöntemi kullanırsam daha uygun olur ya da böyle parantezler içerisinde kullanılmaması gereken yerler var mıdır?

Biraz daha açmak gerekirse...
Bir while döngüsü oluşturduğumda
while($veri=mysql_fetch_array($sorgu){

echo $veri[ad] . '<br>';
echo $veri['mesaj'];
}

Köşeli parantezlerin içinde tırnak kullanılsa da kullanılmasa da sonuçta çalışıyor... Belirli bir kuralı var mıdır?


3)

for($i=1; $i<=$sayfa_sayisi ;$i++){

echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3444652&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '">'.$i.' </a>' : $i.' ' ;
}

bu kod içinde en sondaki $i nin yanındaki ' ' iki tek tırnak koymanın anlamı var mı?

4) Header başlığını nerelerde kullanabiliriz... Mesela makalenin birisinde verilen bir kod da header başlığı mevcuttu ve ben bir türlü çalıştıramamıştım...Daha yapmış olduğum araştırmalarda Header başlıkları Html tagından sonra kullanılamaz...kullanıldığı takdirde çalışmaz deniliyordu... Daha önce makaledeki çalıştıramadığım koddaki header bölümün html tagından önce kullandım ve kod çalıştı.. Bu genel bir kural mıdır? Yani header html tagından sonra kesinlikle kullanılamaz mı?
5)
Kaynak kitaplardan gerek güvenlik kodu ve gerekse başka işlevler yapılırken (mesela otomatik şifre oluşturma)
gösterilen çok basit kodları uygulamama rağmen sonuç başarısız oluyor... Ben de php triad yüklü ve kaynaklarda GD kütüphanesi yüklü olması gerekiyor deniliyor...Bu triadın içinde var ama pasif durumda anlamına mı geliyor yoksa bunu ayrıca başka yerlerden mi yüklememiz gerekiyor..Ve buna benzer işlevleri yerine getirmek için PHP.ini de değiştirmemiz gereken yerler var mı?

Aslında soracağım çok soru var ama son bir soruyla noktalıyorum...

6)
Mesela senin uygulamış olduğun metodda sayfa içine başka sayfadaki verileri aktarmak için require_once('sayfa.php'); kullanıyorsun... Ben o kadar kaynak karıştırdım ama require_once kullanıldığını görmedim...Bu kodun önemi nedir? yani include() yada sadece require() kullanmış olsaydık bir sorun olur muydu? Oradaki kodu belirli bir amaca göre kullandığını biliyorum fakat nedenini öğrenmek istiyorum...



Valla arkadaşım genelde kaynaklardaki anlatımlar fazla detaylı anlatılmadığı ve anlatılanların da fazla uygulama örnekleriyle pekiştirilmediği için beni böyle varsayımlara sürüklüyor... Aslında bunun gibi çok soru işaretleri var kafamda ve bunları çözümleyene kadar da var olmaya devam edecek ama yavaş yavaş ve sindire sindire... Acelemiz yok...


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım öncelikle Hocam kelimesinden rahatsızlık duyduğum için değil, kendimi o mertebede görmediğim için öyle dedim.

Bu yaptığım sayfalamaya dediğin sistem yapılabilir mi? Elbette yapılabilir. Yani eğer uğraşılırsa yapılır. Daha önce de defalarca söylediğim gibi PHP de veya başka bir dilde programcıya kalmış bir şey, yapılamaz diye bir şey yok.Ve inanıyorum ki uğraşırsan yapabilirsin, orada nasıl sayfalam yaptığımızı biliyorsun,onu örnek alarak bir üst limit ve alt limit değişkeni ekle döngüye bu değişkenleri de dahilet veya döngü içinde döngü kullan.içteki döngü mesela her 5 attığında üstteki döngüyü arttır.
Sen uğraş biraz yapamazsan beraber yaparız.

Şu anda inan ki çok meşgulüm, umarım yanlış anlamazsın

Diğer sorularına gelince:

1- İf yapıları temelde aynı mantıkla çalışır,

if ( şart){
şart doğruysa yapılacak işlemler
}
else{
şart yanlışsa yapılacak işlemler
}

ternary operatör de en basit if yapısıdır:
(şart) ? doğruysa yapılacak : yanlışsa yapılacak

dikkat ettiysen ben çok sık kullanırım, çünkü hem yazımı kolay hem hızlı

mesela
$değisken=(şart) ? doğruysa değer : yanlışsa değer;

veya
echo (şart) ? doğruysa yazılacak : yanlışsa yazılacak;

2- Köşeli parantezler içinde Tırnak kullanımına gelince veritabanından çektiğin yerlerde $sonuc[ad] gibi tırnak kullanmamak tercih edilirken $_POST ve $_GET gibi bilhassa dışarıdan veri alınan yerlerde güvenlik açısından tek tırnak kullanılması uygundur. Ayrıca PHP işlemi olmayan yerlerde tek tırnak iyidir çünkü PHP motoru tek tırnak içini yorumlamaz yani:

echo "nasılsın iyimisin"; yerine
echo 'nasılsın iyimisin'; çok daha hızlı olacaktır.Veritabanı sorgularında da aynı şey geçerlidir.

3-
for($i=1; $i<=$sayfa_sayisi ;$i++){

echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3444845&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '">'.$i.' </a>' : $i.' ' ;
}
burada sayfa sayılarının arasına tek boşluk koymak için öyle yazdık yani $i.' '

4- header başlığı genelde browsere bilgi vermek ve yönlendirme yapmak için kullanılır, ve çok çeşitli kullanım alanları vardır spoofing için bile kullanılır:

örneğin en basiti:
header ('Location:index.php');

gibi veya

if(kontrol){
sonuç doğruysa
header ('Location:admin.php');
}
else {
header ('Location:login.php');
}

ayrıca browserın modeli,istek türü,kabul ettiği uzantı türü gibi bilgiler verilir.
mesela resim gönderileceği zaman:

header("Content-Type: image/jpeg");

gibi

5-Gd kütüphanesi büyük ihtimalle yüklüdür triad kullanıyorsan, Php.ini de

extension=php_gd2.dll

satırının başında ';' varsa kaldır ve kaydet sunucuyu yeniden başlat yüklenir, eğer yoksa kodlarında bir hata vardır kontrol et sonuca göre davranırız.

6- Senin gördüğün kaynaklar genellikle eski olduğundan kullanımına rastlamamış olabilirsin, çünkü hepsi aynı yerden gibi bi şey include dosyanın içeriğini ekler, require okur, require_once requireden daha hızlıdır.O nedenle her sayfada çağrılması gereken işlemlerde
require_once kullanıyorum.

Dediğim gibi şu sıralarda çok meşgulüm belki şu an doyurucu yanıtlar veremiyorum ama Telafi ederiz İnşaallah.


Bu mesaja 1 cevap geldi.
T
20 yıl
Yarbay

Arkadaşlar Birşey Dikkatimi Çekti Sizcede Öyle mi ?
Microsoft'un Ürettiği Hiçbir Şey Nedense Beğenilmiyor Örnek Olarak ;
Frontpage
ASP Programlama Dili
Windows XP
Gibi Bunlar Hep Amator ya da Kolay olarak tanımlanıyor
Ama Ben Ürettiği Herşeyi Beğeniyor ve Seviyorum





< Bu mesaj bu kişi tarafından değiştirildi teknokristal -- 16 Temmuz 2005, 7:01:51 >
Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

c@ner !

Bu söyleminin altında şöyle bir güdü olabilir... Mesela bi aralar ekranlarda Reha Muhtar'a karşı bir antipati vardı ve insanlar sunmuş olduğu program ve yaklaşımından dolayı adamı ellerine geçirseler bir kaşık suda boğacaklardı... Oysa aynı dönemlerde kendi bünyesinde çalışan insanların bakış açılarına da bakmak gerekir.. Belki de Reha Muhtar kendileri için bir idol dü... Yani aynı zaman diliminde bir tarafta nefret eden bir grup diğer tarafta da onun gibi olma arzusunda olan bir kitle...

Buradan hareketle senin yukarıda belirtmiş olduğun ürünleri beğenenler de olabilir beğenmeyenler de... Acaba bu ürünleri o beğenmeyen kişiler ya da onların bir akrabası eşi dostu üretmiş olsaydı bakış açısı aynı mı olacaktı...Bence bu sefer yere göğe sığdıramayacaktı...
Yani yapılan yorumlar objektif olmadığı için bu yapılan yorumlar kişilerin bakış açılarıyla paralel oranda değer taşımakta...

Sonuç olarak emek var mı? var... insanların ihtiyaçlarına cevap veriyor mu? veriyor... Bilim ve teknolojiye katkısı var mı? var... E o zaman birşeyleri kötülemek yerine eğer bir yerlerde eksiklikler varsa orayı tamamlamak en güzelidir... Hiç bir kültür kendinden önceki kültürü inkar edemez çünkü sahip olmuş olduğu kültürün temelini oluşturur...

Bu konu aslında çok uzun ve tartışılır bir konu ve burası yeri değil...
Son olarak şunu söylemek istiyorum... Sahip olduğumuz nimetlerin değerini bilip daima şükretmeliyiz...Çünkü buna sahip olamayan insanlar da var...


acayip !

Sakıncası yoksa ben "hocam" diye hitap etmek istiyorum...Çünkü hiç bir insan herşeyi bilemez ve de bilginin bir ölçütü yoktur. Önemli olan karşısındaki kişiye bişeyler verebiliyor olmasıdır. Eğer karşısındaki kişiye bişeyler aktarabiliyorsa ona hocalık ettiğini gösterir...

Bunları söyledikten sonra konumuza dönelim...

Hocam zaten yazdığım sorulara hemen yanıt vermek gibi bir durumun yok ve de istersen hiç yanıt verme ya da ben sorunuma başka yerlerden yanıt bulduktan sonra ver farketmez... Sen zaten bundan önceki yazılarında insanlara karşı yaklaşım tarzını ortaya koymuşsun... Eğer sen bişeylere yanıt veriyorsan bunu içinden geldiği için ve yanıt vermekten de haz duyduğun için yazma ihtiyacı hissediyorsun...(Tabi ben öyle algılıyorum ki yazılarının uzunluğu bile bunu ifade ediyor)

O nedenle hem yanlış anlama gibi bir durumum sözkonusu olamaz hem de öyle bir lükse de sahip değilim... Ki bu kadar şey öğrendikten sonra da yanlış anlayabilecek kadar da nankör biri değilim...
Yazdığım sorulara yanıt versen de vermesen de Allah razı olsun... Ve de bundan önce vermiş olduğun bilgilerden dolayı beni mutlu ettin. Allah seni de mutlu etsin( Daha ne diyebilirim ki)

Ayrıca şunu da belirtmek isterim ki...Bu topicte yazmış olduğun bütün yazılarını da copy ediyorum kafama takılan birşeyler olunca tekrar gözden geçiriyorum..(bu topic belki ilerde silinebilir diye önlem alıyorum yani)

Neyse hocam ben konuya geçeyim...

Müsait değilim dedin ama yine de uzun uzun yazmışsın :) sağolasın...


Yukarıda sayfa numaralarını kontrol altına alma konusunda bişeyler yapmaya çalışıyorum bakalım olacak mı? Yukarı da yazdıklarını da uygulamaya çalışıyorum ama şu ana kadar beceremedim...Ama yine de devam ediyorum...


----İf deyimindeki parantezi söylerken ternary yi kastetmemiştim..Zaten sen topicte bana bir if deyiminde 6 tane farklı alternatif gösterdin...yani onlar kulağımda zaten küpe... Benim farklı makalelerde farklı kodlarda kullanılan methodlarda hep bir şey dikkatimi çekmişti...

Yani
if yapısında {} kullanılan yerler if(şart): yapılacak iş endif;
for yapısında {} kullanılan yerler for(şart): yapılacak iş endfor;
while yapısında {}kullanılan yerler while(şart) yapılacak iş endwhile;
switch yapısında{]kullanılan yerler switch(şart) yapılacak iş endswitch;

yani yukarıdaki ifadelerde {} le kullanılan ifadeler yerine : ve end ile de yapılabiliyor... Yani bu bütün ifadeler için geçerli midir...Yani beni ileride karşılaşacağım bir ifade de parantez varsa bunun yerine : end kullanarak aynı işlevi görebilir miyim (bilgi alma amaçlı olarak soruyorum yani ille de her gördüğüm yerde öyle yapacağım diye bir niyetim yok)



-----Header başlıklarında da evet söylediklerini anlıyorum ama ben net bir yanıt almak istiyorum Html tagından sonra Header kullanılabilir mi? Yani header başlığının böyle bir kuralı var mı?

------GD kütüphane konusunda..
apache klasörünün içinde php klasörü içinde iki tane php ini var her ikisini de açtım
söylemiş olduğun yerde sadece gd.dll satırı var oysa sen gd2.dll satırı olacak dedin... Ve aynı dizin içinde bir extension diye bir klasör vardı ve onu açtım ve onun içinde gd.dll ve gd2.dll dosyaları mevcuttu...

Ben de o iki tane php.ini dosyasına girip gd.dll satırının üzerine bir tane gd2.dll satırı ekledim ve başına da ; koymadım ve php inini kaydettim... Acaba böyle mi yapmam gerekiyor?


Diğer vermiş olduğun yanıtlar konusunda da aydınlandım ... Tşk Ederim...


Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım Öncelikle Allah cümlemizi mutlu etsin (Ben de başka ne diyebilirim ki :) )

if yapılarında parantezler kafanı karıştırmasın, ve fazla takılma, orada parantezler kod yazımını kolaylaştırmak ve hata yapmanı engellemek içindir mesela şöyle bir örnek yazıp bak:

$a=7;
if($a==5) echo 'a değişkeni 5 değerinde';
else echo 'a değişkeni 5 değil';

Header başlıklarında normalde HTML çıktısı hönderdiysen hata verir.Ancak sayfanın en başına ob_start(); koyarsan hata vermeden kullanabilirisin.Yani:

<?php
ob_start();
?>

html
html
.....
<?php

başka komutlar
.........
.........
.........

header ('Location:index.php');

?>

gibi. Ayrıca header konusu çok karışık bir konudur en azından şimdillik fazla derien inme o konuda derim, ille merak ediyorsan

http://tr.php.net/manual/en/function.header.php

adresinde çeşitli kullanım örneklerini bulabilrisin, ama dediğim gibi en iyisi şimdilik derine girme o konuda

Gd kütüphanesinde ise C:\WINXP\Php.ini dosyasında dediğim satırı değiştireceksin.Eğer orada öyle bir dosya yoksa php.ini dosyanı oraya kopyala. Yalnız gd2.dll değil php_gd2.dll dikkat et.

extension=php_gd2.dll

satırının başındaki ';' işaretini kaldır eğer bu satır yoksa extensionların sıralandığı yere ekle.Yalnız iyi kontrol et iki kere olmasın hata verir.

Sayfalama olayına gelince sen uğraş biraz takılırsan veya olmazsa beraber yaparız, yani ben de bakarım fırsat bulunca, Ama sakın unutma yapabileceğin şeyler senin hayalgücünle sınırlı, birisinin bir yoldan yaptığını sen çok lı bir yoldan yapabilirsin mutlaka kendine güven.



M
20 yıl
Yüzbaşı
Konu Sahibi

Hocam öncelikle bilgilerin için tşk ederim...

İf yapısı konusunda ki söylediğini anladım fakat bu sadece if yapısına mı özel... Yoksa diğer gösterdiğim while ,for vb döngülerdeki parantezler de de bu durum aynı mı?


Header konusunda da zaten sadece bilgi alma amaçlı olarak sordum ...Yoksa bir konu bitmeden başka bir konuya geçmeyi düşünmüyorum...Sadece ara ara da olsa kullandığım şeyi biraz tanımam gerekir... Ve bu konuda da gerekli bilgiyi aldım tşk ederim...



Sırada GD kütüphanesi konusu var;
C/XP/ diye belirtmişsin.... Ama bende C de XP klasörü değil winnt klasörü mevcuttu...
Ben nasıl yaptığımı belirteyim... Ben de C/winnt/ php yapılanma ayarları dosyası var... ve içini açtım extension satırlarının bulunduğu satırlara noktalı virgülünü koymadan extension=php_gd2.dll satırı ekledim...Ve kaydettim... Umarım doğru yapmışımdır...


Ve şimdi de sayfalama ile ilgili neler yaptığımı yazayım....

Ya aslında dün buraya yazana kadar yapmış olduğum denemelerimde hep saçma sapan sonuçlar alıyordum...Dünkü yazılarını okuduktan sonra bile başarabileceğimi sanmıyordum(Gerçi yaptığıma tam olarak da emin değilim) ama gerçekten yazılarının satır aralarındaki ufak ipuclarından yola çıkarak amacım ulaştım...Kodları vermeden önce şöyle bir şey belirteyim...
Amacım sayfalanmaları kontrol altına tutmak ve ekranda mesela 5 sayfa gösterecek ama her bir sonraki sayfaya gidildikçe periyodik olarak sayfa numaraları da değişecek... akabinde Sağında ve solunda geri ve ileri tuşları olacak şekilde yapmaktı...

Kodları yazmadan önce nereden nasıl yapacağımı çok düşündüm ve önce bir ilksayfa linki oluşturayım dedim uğraştım ve yaptım daha sonra son sayfa linki oluşturayım dedim uğraştım ve onu da yaptım... sonra Geri ve İleri tuşlarını yaparken de bayağı bir uğraştım özellikle de sayfa başları ve sayfa sonlarındaki görünümleri üzerine oldukça kafa yordum ama sonunda yaptım... Geri en önemli yer kalmıştı ekranda diyelim 5 haneli sayfa sayıları gösterilecek örnek: sayfa sayısı:20 ve ekranda diyelim 5. sayfasında olduğumuzda 5 6 7 8 9 rakamları çıkacak... Bu konuda bayağı bi kastım ve en sonunda istediğim gibi oldu...

Yanlız şunu belirtmeden geçemicem...Her bir kodu ekledikten sonra ekranda bir anormallikten sonra başka bir kod ekleyerek ufak ufak değişiklikler yaparak tüm işlemleri yaptığımda ....Yazmış olduğum kodları görünce valla gözüm korktu...Kendi kendime bu kodları ben mi yazdım diyemeden geçemedim... :)) Valla bu kodu buraya hangi mantıkla getirdim diye de ara ara kendime de sormadı değilim...:))
Neyse ben yazmış olduğum kodları Past edeyim;


//BURASI İLK SAYFA VE GERİ LİNKLERİ 
if($sayfa>1 ){ echo '<a href='.$PHP_SELF.'?sayfa=1><b> << </b></a> ';}
echo '  ';

$geri=($sayfa-1);
echo( $sayfa>1 )?'<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3453837&url='.$PHP_SELF.'?sayfa='.$geri.'" data-href="'.$PHP_SELF.'?sayfa='.$geri.'"><b>Geri</b></a>':'';
echo '  ';



//BURASI SAYFA SAYILARINI KONTROL ALTINA ALIYOR
$sayfa_sayisin=$satir_sayisi/$limit;

$zeyfa=intval($sayfa_sayisin+1);
if($satir_sayisi%$limit==0){$zeyfa=intval($sayfa_sayisin);}

$sayfa_sayisi=$zeyfa;
$alt=($sayfa<($sayfa_sayisi-4))? $sayfa : ($sayfa_sayisi-4);
if($sayfa_sayisi<5){$alt=1;}
if($sayfa==0){$alt=1;}
$üst= (($sayfa+4)<$sayfa_sayisi)?($sayfa+4):($sayfa_sayisi);
if($sayfa_sayisi>=5 and $sayfa==0){$üst=5;}
for($i=$alt; $i<=$üst ;$i++){
echo ($i != $sayfa) ? '<a href="'.$PHP_SELF.'?

sayfa=' .$i. '"><b>'.$i.'</b> </a>' :'<b>['. $i.']</b> ' ;
}

echo '  ';


//İLERİ VE SON SAYFA LİNKLERİ

$sayfam=($sayfa+1);
echo ($sayfa<$sayfa_sayisin and $sayfa!=0 and $sayfa!='')?
' <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3453837&url='.$PHP_SELF.'?sayfa='.$sayfam.'" data-href="'.$PHP_SELF.'?sayfa='.$sayfam.'"><b>İleri</b></a>' :'';
if($sayfa==0 or $sayfa==''){echo '<a href="'.$PHP_SELF.'?sayfa=2
"><b>İleri</b></a>';}
echo '  ';
echo $sayfa<$zeyfa?'<a href='.$PHP_SELF.'?sayfa='.$zeyfa.'> >> </a>': '' ;



Bu kod içinde kullanmış olduğum değişken adlarını öylesine yazdım. Yani o anda aklımdan o geçti ve yazdım... Ve şimdi yukarıdaki kodlara bakıyorum da gerçekten bunları nasıl yaptığımı anlayamıyorum...Bu kodları en az 10 defa silip yeniden yazmam gerekiyor... :)

Hocam şimdi bu kodlar içinde yapmış olduğum yanlışlıkları ve gereksiz yere kullanmış olduğum kodları ve varsa daha kısadan nasıl yapabileceğimi yani kısacası kodları sınar mısın?
Tabi, ne zaman müsait olursan?

NOT:Kodların uzunluğundan dolayı sayfanın görüntüsü bozulmuştu ve ben de uzun kodları kısaltarak normale çevirdim





< Bu mesaj bu kişi tarafından değiştirildi maratbilgin -- 17 Temmuz 2005, 8:01:44 >
Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım öncelikle tebrik ederim, gayet güzel yapmışsın . Gördün mü kendine güvenirsen yapabilirsin .

Şimdi kod yazımına gelirsek mutlaka ama mutlaka kod yazarken başına açıklama satırı ekle .Bir müddet sonra kodlara baktığında kendin bile anlamayabilirsin bunu niye böyle yapmıştım diye düşünür durursun.Tecrübeyle sabittir :)

Ayrıca değişkenlere isim vermekte başka bir dert tabii, insan ne isim vereceğini bilemiyor, ama verdiğin değişken adları açıklayıcı olsun.mesela $sayfa_sayisin değilde $sayfa_sayisini_bul , veya $say değil de $sayfa_say gibi isimlendir ki kafan karışmasın.

Daha sonra değişkenlere isim verirken sakın ha Türkce karakter kullanma yukarıda ki gibi $üst değil $ust olacak, yazdığın editörde uyarı vermesi lazımdı. Hangi editörü kullanıyorsun ? Varsa Macromedia dreamweaver kullan hatalarını daha açık görebilirsin veya ücretsiz bir editör istersen

www.pspad.com

adresinden pspad'i ve extensionlarını indir hem türkçedir hem kullanımı çok rahattır, hem her dili destekler, hem de freewaredir.

Kod yazarken elinden geldiğince döngüden uzak ve stabil yazmaya çalış, boşu boşuna değişken oluşturup hafızayı şişirme. Ama bu demek değildir ki karşılaştırma ve denetleme yapma, elbette ki doğru çalışması hızlı çalışmasından önemlidir.

Ve yazmış olduğun kodlara gelince, ben biraz kısalttım bazı yerlerini değiştirdim ama temel de aynı, $sayfa_sayisi değişkeni önceki yaptığım haliyle kullanılıyor :

<?php 

$sayfa_sayisi=intval($satir_sayisi/$limit);
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;

$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ;
$alt=($sayfa<($sayfa_sayisi-4))? $sayfa : ($sayfa_sayisi-4);
$ust= (($sayfa+4)<$sayfa_sayisi)?($sayfa+4):($sayfa_sayisi);

echo ($sayfa>1 )? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3456110&url='.$PHP_SELF.'?sayfa='.($sayfa-1).'" data-href="'.$PHP_SELF.'?sayfa='.($sayfa-1).'"><b>Geri</b></a> ':' ';

for($i=$alt; $i<=$ust ;$i++){

echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3456110&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '"><b>'.$i.'</b> </a>' :'<b>['. $i.']</b> ' ;
}


echo ($sayfa<$sayfa_sayisi ) ? ' <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3456110&url='.$PHP_SELF.'?sayfa='.($sayfa+1).'" data-href="'.$PHP_SELF.'?sayfa='.($sayfa+1).'"><b>İleri</b></a>  <a href='.$PHP_SELF.'?sayfa='.$sayfa_sayisi.'> >> </a> ' :'';

?>

Ve tekrar tebrik ediyorum, gerçekten de çok başarılı ilerliyorsun.İnşaallah böyle devam edersin.


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Düşüncelerin için tşk ederim...

----Yazmış olduğum kodların başına açıklama satırı ve değişken adları konusunda şunu belirteyim; yazmış olduğum kod ilk olduğu için hiç değiştirmeden burada yazdım yani önemli olan benim için yolu...Zaten bir defa yazmak içime sinmez metodu tam olarak çözene kadar silip yeniden yazarım... Ve o nedenle kendimce yazdıklarım bir karalama defterinde yapılan bir alıştırmada gibidir...
Ama yine de bunu başlangıçta da yapmalıyım...( Yani düzenli çalışma)


Hocam Dreamweaver kullanmıyorum...kodlarımı bu güne kadar hep not pad de yazıyorum ve yazmaya da devam ediyorum. Ama yukarıdaki tavsiyelerin içindeki pspad e göz attım ve gerçekten güzel bundan sonra onu kullanırım çünkü satır numaralandırma konusu güzel...En azından herhangi bir hata da baştan aşşağıya satırları sayma gibi bir durumum olmaz...

Hocam pspad i indirdim indirdiğimde zaten türkçeydi... extensionlarını indirirsin demişsin...Ben vermiş olduğun sitede extension olarak dictionary olarak türkçe indirdim ve yükledim bunun programa etkisi nedir ayrıca ben o sitede başka extension olarak bişey bulamadım... Yani burada sadece pspad install programı ve bir de dictionary indirdim ve gereken yere yükledim... Bundan başka yapılacak bişey yoktur sanırım...





Kodlara gelince;
Hocam gerçekten çok net ve kısa bir hale getirmişsin kodu... Yanlız sanki bu temize geçtiğin kodda bir eksiklik varmış gibi geldi bana... Acaba yanılıyor muyum...

Bu kodları kullandığımızda ekranda 5 adet sayfa numarası göstereceği için ... şöyle bir örnekle belirteyim...
mesela sayfa sayısı 4 olsun ve o anda 1. sayfada olalım ekrandaki sayfa numaraları şöyle olmayacak mı? << Geri 0 1 2 3 4 İleri >>

yani sanki 0 numaralı sayfa varmış gibi bir görüntü ortaya çıkacak...Buradan hareketle...Sayfa sayısı 5 ten aşağı olduğu zamanlarda sayfa numaraları hep 5 karakterli olacak...
yani şöyle;

Sayfa sayısı 1 ve 1. sayfadayken << Geri -3 -2 -1 0 1 İleri >>

Sayfa sayısı 2 ve 1. sayfadayken << Geri -2 -1 0 1 2 İleri >>

Sayfa sayısı 3 ve 1. sayfadayken << Geri -1 0 1 2 3 İleri >>

Sayfa sayısı 4 ve 1. sayfadayken << Geri 0 1 2 3 4 İleri >>


Sayfa sayısı 5 ve 1. sayfadayken << Geri 1 2 3 4 5 İleri >>

Yukarıdaki değerleri $alt değişkeni içinde uyguladığımız zaman böyle sonuçlar veriyor...

Yani bizim istediğimiz sayfa yani $alt değişkeni hiç bir zaman 0 ve negatif bir sayıyla başlamasın... O nedenle

Ben o kısma şöyle bir kod ekledim
if($sayfa_sayisi<5) {alt=1;}

Hocam bu tespitlerim doğru mu ve eğer doğruysa bu yazmış olduğum kod yeterli mi?

Hocam bir sorum daha olacak... Mesela biz yukarıda intval kullandık yani sayıyı aşşağıya doğru yuvarlıyor...

Oysa biz bu kodu sayfa listelemede neden kullanmadık...?
Yani orada kullanmadık ama sayfalar güzelce listelendi...
Oysa bu sayfa sayılarını bir kısmını göstereceğimiz yerde kullandığımızda intval kullanmadığımız takdirde bazı yerlerde sayfa numaraları küsüratlı çıkıyordu... Burada kafam karıştı?

Yani şuradaki ilişki
Bu kodu sayfa listelemede hazırladık ve uyguladık problem yok ama bunu bu şekliyle sayfa numaralarını kontrol altına alacağımız yerde kullanacağımız zaman küsüratlı çıkabiliyor...
$sayfa_sayisi=$satir_sayisi/$limit;
$sayfa_sayisi=($satir_sayisi%$limit!=0)?($sayfa_sayisi+1):$sayfa_sayisi;


burada da intvalle küsürat olayını kaldırdık...
$sayfa_sayisi=intval($satir_sayisi/$limit);
$sayfa_sayisi=($satir_sayisi%$limit!=0)?($sayfa_sayisi+1):$sayfa_sayisi;



Yani yukarıda intval kullanmamamıza rağmen sayfa listelemede küsüratlı olarak göstermedi...

Umarım ne demek istediğimi anlamışsındır hocam... Teşekkür ederim...





< Bu mesaj bu kişi tarafından değiştirildi maratbilgin -- 18 Temmuz 2005, 17:28:41 >
Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım elbette ki başta karalama olarak yapabilirsin, ancak karalama dahi olsa neyi ne için yaptığını bilmen lazım, ayrıca nasıl alışırsan öyle gidersin unutma o nedenle kendini açıklama yazmaya alıştır, yukarıda da dediğim gibi tecrübeyle sabittir, yani ben de öyle yapıyordum ilk başta :)

daha sonra PSpad için extencionları derken CSS için Top style ve benzer eklentileri kastetmiştim, çünkü bu editörle yeri gelip HTML de yazacaksın CSS de yazacaksın hepsini tanıyabildiği için kullanımı kolaydır.Ayrıca bir çalışmaya başlayacağınzaman çalışma klasörünü proje olarak ayarlayıp sunucu ayarlarını da proje ayarları kısmında yaparsan HTML önizlemesini falan görebilirsin.O nedenle tavsiye ettim. Elbette ki notepad le yazılabilir ancak ilerde karmaşık kodlar yazacağın zaman kod renklendirmesine ihtiyaç duyacaksın, Tabii PHP edit ve PHPed Zend gibi pek çok güzel editör var istersen onlardan birini de kullanabilrisinancak bu türkçe olduğu için tavsiye ettim.Biraz kurcalarsan çok güzel özellikleri olduğunu görebilirsin.

Diğer soruna gelince sanırım gözünden kaçtı

quote:

Ve yazmış olduğun kodlara gelince, ben biraz kısalttım bazı yerlerini değiştirdim ama temel de aynı, $sayfa_sayisi değişkeni önceki yaptığım haliyle kullanılıyor :


<?php

$sayfa_sayisi=intval($satir_sayisi/$limit);
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;



yani daha önceki listeleme koduyla aynı ve:

quote:

$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ;


diyerek baştan sayfa eğer 0 sa veya yoksa sayfa 1 olsun diye önlem alıyoruz, ayrıca her ihtimale karşı:

quote:

echo ($sayfa>1 )


diye yazdırmadan yine kontrol ediyoruz.

Tabii dediğin gibi bi sorun çıkar mı şu anda bilemeyeceğim çünkü denemek lazım ancak zannetmiyorum, eğer sorun çıkarsa üstesinden gelirsin zaten :)


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Hocam sanırım anlatımımda daha önceki konularla alakalı yazılar olduğu için bir yanlış anlaşılma söz konusu...Yani net olarak anlatmak istiyorum...

Daha önceki konularda sadece sayfa listeleme yöntemini uygulamıştık ve burada sayfa sayısını belirlemek için bir kod yazmıştık ve bu kod içinde intval kullanmadık... kodu veriyorum...

Bu kodun adı KOD1 olsun:
 
<?php
require_once("veritabani.php");

$sayfa=($_GET['sayfa'] != ' ' || $_GET['sayfa'] != 0) ? $_GET['sayfa'] : 1;
$sorgu='select * from yorumlar';
$sorgula=mysql_query($sorgu) or die ("nerde HATA var");
$satir_sayisi=mysql_num_rows($sorgula);
mysql_free_result($sorgula);

$limit=10;
$basla=($sayfa >1 ) ? $sayfa-1*$limit : 0;
$sayfa_sayisi=$satir_sayisi / $limit;
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;

$sorgu='select * from yorumlar limit '.$basla.' , '.$limit;
$sorgula=mysql_query($sorgu) or die ("HATA var");

echo '<table border="1" style="cellpadding:5px;text-align:center;"
align="center"><tr><td>İSİM</td><td>E-

MAİL</td><td>SİTE</td><td>YORUM</td></tr>';
if($satir_sayisi >0){

while ($sonuc = mysql_fetch_array($sorgula)){

echo '<tr><td>' . $sonuc[isim] . '</td><td>'
. $sonuc[email] . '</td><td>' . $sonuc[site] . '</td>';
echo '<td>'. $sonuc[yorum] . '</td></tr>';
}

echo '<tr><td colspan="4">';

for($i=1; $i<=$sayfa_sayisi ;$i++){
echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3467758&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '">'.$i.' </a>'
: $i.' ' ;
}
echo '</td></tr></table>';
}
else{
echo '<tr><td colspan="4" height="150">HİÇ BİR SONUÇ BULUNAMADI</td></tr></table>';
}
mysql_free_result($sorgula);

?>






Bu KOD1 bize sadece ekranda sayfa numaralarını artar bir vaziyette gösteren bir kod... Ve burada intval kullanmadık buna rağmen sayfa numaraları küsüratlı çıkmadı





Bu kodda KOD2 olsun:
 
<?php

$sayfa_sayisi=intval($satir_sayisi/$limit);
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;

$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ;
$alt=($sayfa<($sayfa_sayisi-4))? $sayfa : ($sayfa_sayisi-4);
$ust= (($sayfa+4)<$sayfa_sayisi)?($sayfa+4):($sayfa_sayisi);

echo ($sayfa>1 )? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3467758&url='.$PHP_SELF.'?sayfa='.($sayfa-1).'" data-href="'.$PHP_SELF.'?sayfa='.($sayfa-1).'"><b>Geri</b></a> ':' ';

for($i=$alt; $i<=$ust ;$i++){

echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3467758&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '"><b>'.$i.'</b> </a>' :'<b>['. $i.']</b> ' ;
}


echo ($sayfa<$sayfa_sayisi ) ? ' <a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3467758&url='.$PHP_SELF.'?sayfa='.($sayfa+1).'" data-href="'.$PHP_SELF.'?sayfa='.($sayfa+1).'"><b>İleri</b></a> <a href='.$PHP_SELF.'?sayfa='.$sayfa_sayisi.'> >> </a> ' :'';

?>




KOD2 de intval kullandık... Oysa KOD2 de intval kullanmadığımız zaman sayfa numaraları eğer küsüratlıysa küsüratlı geliyor...


Zaten KOD2 nin kodları KOD1 kodlarının içindeki for döngüsü yerine kullanılıyor yani oradaki tüm değerler üzerine hazırlanmış...

Buradan hareketle kafama takılan tek şey var KOD1 de intval kullanmadık ama sayfalar küsüratlı çıkmıyor...Bunun nedeni ne olabilir?



Diğer bir soruya gelince

BU kodu sayfa 0 ve boş olduğu takdirde ilk sayfa boş olmadığı takdirde
yani sayfa numarası kaç iseo numaralı sayfayı göster diye belirledik..
$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ; 





Bu kodu da geri linki ile ilk sayfa linkinin hangi sayfalarda nasıl bir değer alacağı ve gözükeceği diye oluşturduk...
echo ($sayfa>1 ) 




Oysa benim söylediğim bunlarla ilgili değildi... Benim söylediğim ekranda gözükecek olan 5 adet sayfa numarasının görüntüsü ile ilgiliydi...

Sayfa sayısı 5 ten yüksekse sorun yok ama sayfa sayısı 5 ten küçük olduğu zaman ekranda 5 adet sayfa numarası görükeceği için istemediğimiz 0 numarası ve negatif sayılar çıkabiliyor...

Yani KOD2 deki $alt değişkeninin değeri Sayfa sayısının her zaman 4 eksiği olacağı için ve ekranda her zaman 5 tane sayfa numarası gözükecektir....Ama sayfa sayısı 4 ,3,2,1 olduğu takdirde yine ekranda 5 tane gözükmek zorunda kalacak...

Hocam bu kodu denedim ve gerçekten dediğim gibi çıkıyor ve
if($sayfa_sayisi<5) {$alt=1;} kodunu ekleyince sorun gidiyor...ama emin olmak için soruyorum... Bu yaptığım yöntem sağlıklı mı?

Çünkü Bu sayfa numaralarını kontrol altına alma kodunu oluştururken çok uğraştım... Yani düzgün çalıştığını sandığım anda herhangi bir parametrede yaptığım bir değişiklikte bir yerde sorun çıkıyordu... Orayı düzeltiyorsun yine herşey düzgün bir şekilde çalışıyor ve ondan sonra başka bir parametrede değişiklik yapıyorum bu sefer başka bir yerde başka bir sorun çıkıyordu...Parametre diye belirttiğim şeyler mesela satır sayisi adeti , limit sayısı, sayfa sayısı, vs...Kullanılan kodlar bunların alacağı her değerde düzenli bir şekilde çalışmasını sağlamalıdır... Ve en sonunda hani o yukarıda (seninde kısalttığın) uzun uzun yazmış olduğum kod ile bunu sağladım...


Hocam sonuç olarak bu iki soruyu yapılan işlevlerden tam emin olmak için soruyorum....


Ayrıca "tecrübeyle sabittir" yazısı ile ilgili olarak evet haklısın kendimizi baştan nasıl alıştırırsak öyle gider... Bundan sonra öyle yapacağım...

Pspad de extension konusunu da anladım ok... Tşk ederim...


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Hocam sanırım anlatımımda daha önceki konularla alakalı yazılar olduğu için bir yanlış anlaşılma söz konusu...Yani net olarak anlatmak istiyorum...

Daha önceki konularda sadece sayfa listeleme yöntemini uygulamıştık ve burada sayfa sayısını belirlemek için bir kod yazmıştık ve bu kod içinde intval kullanmadık... kodu veriyorum...

Bu kodun adı KOD1 olsun:

quote:

<?php
require_once("veritabani.php");

$sayfa=($_GET['sayfa'] != ' ' || $_GET['sayfa'] != 0) ? $_GET['sayfa'] : 1;
$sorgu='select * from yorumlar';
$sorgula=mysql_query($sorgu) or die ("nerde HATA var");
$satir_sayisi=mysql_num_rows($sorgula);
mysql_free_result($sorgula);

$limit=10;
$basla=($sayfa >1 ) ? $sayfa-1*$limit : 0;
$sayfa_sayisi=$satir_sayisi / $limit;
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;

$sorgu='select * from yorumlar limit '.$basla.' , '.$limit;
$sorgula=mysql_query($sorgu) or die ("HATA var");

echo '<table border="1" style="cellpadding:5px;text-align:center;"
align="center"><tr><td>İSİM</td><td>E-

MAİL</td><td>SİTE</td><td>YORUM</td></tr>';
if($satir_sayisi >0){

while ($sonuc = mysql_fetch_array($sorgula)){

echo '<tr><td>' . $sonuc[isim] . '</td><td>'
. $sonuc[email] . '</td><td>' . $sonuc[site] . '</td>';
echo '<td>'. $sonuc[yorum] . '</td></tr>';
}

echo '<tr><td colspan="4">';

for($i=1; $i<=$sayfa_sayisi ;$i++){
echo ($i != $sayfa) ? '<a data-test="test" rel="nofollow" style="word-wrap: break-word; text-decoration: underline;" target="_blank" onclick="return dhExternalLinkRedirect(this)" href="/ExternalLinkRedirect?module=pgdcode&messageId=3467806&url='.$PHP_SELF.'?sayfa=' .$i. '" data-href="'.$PHP_SELF.'?sayfa=' .$i. '">'.$i.' </a>'
: $i.' ' ;
}
echo '</td></tr></table>';
}
else{
echo '<tr><td colspan="4" height="150">HİÇ BİR SONUÇ BULUNAMADI</td></tr></table>';
}
mysql_free_result($sorgula);

?>








Bu KOD1 bize sadece ekranda sayfa numaralarını artar bir vaziyette gösteren bir kod... Ve burada intval kullanmadık buna rağmen sayfa numaraları küsüratlı çıkmadı





Bu kodda KOD2 olsun:
quote:


<?php

$sayfa_sayisi=intval($satir_sayisi/$limit);
$sayfa_sayisi=($satir_sayisi %$limit !=0 ) ? $sayfa_sayisi+1 : $sayfa_sayisi;

$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ;
$alt=($sayfa<($sayfa_sayisi-4))? $sayfa : ($sayfa_sayisi-4);
$ust= (($sayfa+4)<$sayfa_sayisi)?($sayfa+4):($sayfa_sayisi);

echo ($sayfa>1 )? '<a href='.$PHP_SELF.'?sayfa=1>
<b> << </b></a> <a href="'.$PHP_SELF.'?sayfa='.($sayfa-1).'">
<b>Geri</b></a> ':' ';

for($i=$alt; $i<=$ust ;$i++){

echo ($i != $sayfa) ? '<a href="'.$PHP_SELF.'?sayfa=' .$i. '">
<b>'.$i.'</b> </a>' :'<b>['. $i.']</b> ' ;
}


echo ($sayfa<$sayfa_sayisi ) ? ' <a href="'.$PHP_SELF.'?sayfa='.($sayfa+1).'">
<b>İleri</b></a>
<a href='.$PHP_SELF.'?sayfa='.$sayfa_sayisi.'> >> </a> ' :'';

?>




KOD2 de intval kullandık... Oysa KOD2 de intval kullanmadığımız zaman sayfa numaraları eğer küsüratlıysa küsüratlı geliyor...


Zaten KOD2 nin kodları KOD1 kodlarının içindeki for döngüsü yerine kullanılıyor yani oradaki tüm değerler üzerine hazırlanmış...

Buradan hareketle kafama takılan tek şey var KOD1 de intval kullanmadık ama sayfalar küsüratlı çıkmıyor...Bunun nedeni ne olabilir?



Diğer bir soruya gelince

BU kodu sayfa 0 ve boş olduğu takdirde ilk sayfa boş olmadığı takdirde
yani sayfa numarası kaç iseo numaralı sayfayı göster diye belirledik..

quote:

$sayfa=($sayfa == 0 || $sayfa=='')? 1 : $sayfa ;






Bu kodu da geri linki ile ilk sayfa linkinin hangi sayfalarda nasıl bir değer alacağı ve gözükeceği diye oluşturduk...

quote:

echo ($sayfa>1 )





Oysa benim söylediğim bunlarla ilgili değildi... Benim söylediğim ekranda gözükecek olan 5 adet sayfa numarasının görüntüsü ile ilgiliydi...

Sayfa sayısı 5 ten yüksekse sorun yok ama sayfa sayısı 5 ten küçük olduğu zaman ekranda 5 adet sayfa numarası görükeceği için istemediğimiz 0 numarası ve negatif sayılar çıkabiliyor...

Yani KOD2 deki $alt değişkeninin değeri Sayfa sayısının her zaman 4 eksiği olacağı için ve ekranda her zaman 5 tane sayfa numarası gözükecektir....Ama sayfa sayısı 4 ,3,2,1 olduğu takdirde yine ekranda 5 tane gözükmek zorunda kalacak...

Hocam bu kodu denedim ve gerçekten dediğim gibi çıkıyor ve
if($sayfa_sayisi<5) {$alt=1;} kodunu ekleyince sorun gidiyor...ama emin olmak için soruyorum... Bu yaptığım yöntem sağlıklı mı?

Çünkü Bu sayfa numaralarını kontrol altına alma kodunu oluştururken çok uğraştım... Yani düzgün çalıştığını sandığım anda herhangi bir parametrede yaptığım bir değişiklikte bir yerde sorun çıkıyordu... Orayı düzeltiyorsun yine herşey düzgün bir şekilde çalışıyor ve ondan sonra başka bir parametrede değişiklik yapıyorum bu sefer başka bir yerde başka bir sorun çıkıyordu...Parametre diye belirttiğim şeyler mesela satır sayisi adeti , limit sayısı, sayfa sayısı, vs...Kullanılan kodlar bunların alacağı her değerde düzenli bir şekilde çalışmasını sağlamalıdır... Ve en sonunda hani o yukarıda (seninde kısalttığın) uzun uzun yazmış olduğum kod ile bunu sağladım...


Hocam sonuç olarak bu iki soruyu yapılan işlevlerden tam emin olmak için soruyorum....


Ayrıca "tecrübeyle sabittir" yazısı ile ilgili olarak evet haklısın kendimizi baştan nasıl alıştırırsak öyle gider... Bundan sonra öyle yapacağım...

Pspad de extension konusunu da anladım ok... Tşk ederim


Not:yukarıda koddan dolayı sayfa yapısı yine bozuldu ve edit butonu gözükmediği için editleyemiyorum..O nedenle aynı yazıyı ikinci defa yazıyorum ve üsteki yazıyı siliyorum

Silemiyorum çünkü sil butonuda gözükmüyor :))





< Bu mesaj bu kişi tarafından değiştirildi maratbilgin -- 18 Temmuz 2005, 19:38:20 >
Bu mesaja 1 cevap geldi.
A
20 yıl
Yüzbaşı

Arkadaşım öncelikle yukarıda denemeden sorun çıkar mı bilemem demiştim, sanırım çıkıyor ki negatif sayılar gözüküyor demişsin, ve yine eğer sorun varsa üstesinden gelirsin zaten demiştim :)

if($sayfa_sayisi<5) {$alt=1;}

diyerek halletmişsin zaten.Kusura bakma orada kontrol etmem lazımdı ancak çok meşgul olduğumdan denemeden yazdım, umarım yanlış yönlendirmemişimdir.

Diğer soruna gelince yani intval kullanma meselesi şimdi önce şu örneğe bir bak:

<?php

$d=155/10;

for($i=1; $i<=$d ;$i++){
echo $i.'<br>';
}

?>

Sonra da yukarıda for döngüsünde sayacı hangi değişkene göre verdiğimize bak sanırım anlarsın neden öyle olduğunu. Yine de kafana takılan bir şey varsa sorabilirsin burada.

Tekrar söylüyorum, kendine güven yapamayacağın şey yoktur.


Bu mesaja 1 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Yanlış yönlendirilme sözkonusu değil hocam...Sadece emin olmak için sordum...Ve yanıtımı aldım...


İntval konusunda da evet söylediğini denedim isterse rakam 1.9 olsun döngü noktadan sonrasını okumuyor yani küsüratlı olan rakamın küsüratını almayıp aşağıya yuvarlıyor...

intval aldığımız kısımda ise, intval kullanmamış olduğumuzda döngüdeki üst limit belirli şartlara göre bazı değerler alıyor ama küsürata neden olacak değerin nereden geldiği konusunda henüz bir fikir yürütemedim...

Neyse hocam birkaç gündür bayağı bir soru sordum sanırım daha fazla uzatmadan bu öğrendiklerimi iyice pekiştireyim...:)

Bilgilerin için tşk ederim...


Bu mesaja 1 cevap geldi.