Arama butonu
Bu konudaki kullanıcılar: 1 misafir
185
Cevap
16278
Tıklama
0
Öne Çıkarma
Cevap: Sıfırdan PHP (4. sayfa)
S
20 yıl
Binbaşı

Evet Hala bir Cevap Alamadım Rica Ederim Yapacak Var mı???


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

yaaa burda yazmaya kalksam çok uzun sürcek şu anda kafedeyim evde yazarsam buraya koyarım :D


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

Arkadaşlar yapmış olduğunuz şeyleri burada yazarsanız ben ve benim gibi acemi olan kişiler de faydalanmış olur...

NmC!

Bu topiği ilk açtığım zaman arkadaşlardan biri php dersleri yakındawww.turkmax.net adresinde verilecek demişti... Ben PHP yi öğrenicem O sitede hala ders verilecek :) Akıbeti ne oldu bu durumun? :)



Acayip!

Hocam eğer seni sıkmıyorsam gerek yazmış olduğun kodlar üzerinden gerekse başka kafama takılan şeylerden sana soru ve sorular sormak istiyorum... Her yeni bişeyler öğrendikçe kafamda yeni yeni sorular oluşuyor... Sanırım zamanla hani o internetteki makale vb dökümanlardan bişey anlamıyorum diyordum ya...Onlardan anlayabileceğim ve ilgi alanıma girecekler...


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

Arkadaşım daha öncede dediğim gibi yardım edebileceğim bir şey olursa elimden geleni yaparım.


Bu mesaja 2 cevap geldi.
N
20 yıl
Yüzbaşı

quote:





NmC!

Bu topiği ilk açtığım zaman arkadaşlardan biri php dersleri yakındawww.turkmax.net adresinde verilecek demişti... Ben PHP yi öğrenicem O sitede hala ders verilecek :) Akıbeti ne oldu bu durumun? :)





Yaa sanırım yorgunbilgin başladı bi yerde ders yazmaya da ne kadar ilerledi bilmiyorum ona ulaşabilirsem sana haber veririm



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

quote:

Orjinalden alıntı: acayip

Arkadaşım daha öncede dediğim gibi yardım edebileceğim bir şey olursa elimden geleni yaparım.


Sağolasın arkadaşım...

Ben soruma geçiyorum....


 
<?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=3317905&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 kod içinde
mysql_free_result($sorgula);

fonksiyonundan iki defa kullanılmış... Ve ne işe yaradığını anlamak için önce bir tanesini sildim denedim hata çıkmadı sonra diğerini de sildim yine sorun çıkmadı...Yani kodlar çalışıyor...
1)Varlığında ve yokluğunda herhangi bir değişiklik olmayan bu fonksiyonun işlevi nedir?
2)Ayrıca iki defa sorgu hazırlanmış bu kodlar içinde bir tane sorgu yeterli değil midir?
3) küçük ya da büyük işaretlerinin belirli bir kuralı var mıdır? Yani "<=" ile "=<" bunun arasında fark var mıdır? (gerçi ben denedim sanırım önce "<" işareti gelmesi gerekiyor. Önce "=" geldiği takdirde hata veriyor.(bundan emin olmak için soruyorum yani bu bir kural mıdır?)



Kafamda başka sorular daha var ama şimdilik bu kadar... Tşk ler...


NmC!
Yaa sanırım yorgunbilgin başladı bi yerde ders yazmaya da ne kadar ilerledi bilmiyorum ona ulaşabilirsem sana haber veririm  


Ok tşk ederim...


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

Arkadaşım mysql_free_result($sorgula); komutu php yorumlayıcısının mysql_querry($sorgula); komutunun içeriğini boşaltıp hafızayı temizlemesine yarar, burada hem sorguyu hem de bu komutu iki kere kullanmamızın amacı şu ilk sorguyla toplam satır sayısını alıyoruz, daha sonra satır sayısını bir değişkene atıyoruz ve sorgu için bellekte ayrılan hafızayı boşaltıyoruz, daha sonra satır sonucuna göre diğer değişkenlerimizi belirleyip veritabanından limitli olarak yeni bir sorgu yapıyoruz, ve tekrar hafızayı boşaltıyoruz. Böylece program biraz daha hızlanır.Şimdi sen bunu kendi bilgisayarında denediğin zaman hız farkını anlayamazsın, ancak bir sitede aynı anada onlarca hatta yüzlerce kişinin serverda istekde bulunduğunu düşün, büyük fark olur.

Tabii tek sorguda direk mysql den COUNT komutuyla alıp bir değişkene de atabiliriz ancak yine ek bir kaç işlem yapmak gerekeceğinden böylesi daha iyi.

ikinci soruna gelince elbette farkeder, '<=' olması gerekir, çünkü mesela '>=' işareti büyük veya eşit demekken, '=>' işareti arraylarde ve objectlerde key tanımlamada kullanılır.


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

Hocam açıklamalarını gayet iyi anladım... Tşk ederim...
Bu arada anlatım tarzın ve yaklaşımın oldukça iyi... Yani ne bileyim yazıların anlaşılır bir dille ifade ediliyor.... Bu konuyla ilgili herhangi bir projen vs var mı acaba? Yani kitap makale vs.. gibi... Ya da ne bileyim site vs gibi... Bilgilerinden faydalanmak isterim...


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

Tamam geldim :) Biri beni çağırmış.
Valla turkmax.net te makalelere başlamıştım forumda yazıodum gerçi çok ayrıntılı değildi ama yardımcı olmaya çalışıodum. Fakat forum şu an kapanmış yeniden açılacak galiba site de yapım aşamasında.
Merak etmeyin en kısa zamanda açıldığında yardımcı olacağım.
Bu arada bana MSN'den de ulaşabilirsiniz ;) PM atın yeter





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

Arkadaşım rica ederim.Düşüncelerin içinde teşekkür ederim, Ama ben kendimi hala öğrenme aşamasında görüyorum , biliyorsun öğrenmenin sonu yok.Ancak belli bir seviyeye geldikten sonra makale gibi bir işe kalkışabilirim. ama onun dışında elimden geldiğince, bildiğimce yardımcı olmaya çalışıyorum, ister burada olsun ister başka forumlarda.


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

yorgunbilgin arkadaşım başlandığı takdirde takip ederim...


acayip

Hocam bu kanıya geçmişteki mesajlarınızı gözden geçirdikten sonra vardım ve böyle birinin mutlaka makale kitap site vb...kaynaklar oluşturmuştur diye düşündüm... Çü
nkü mesajlarında bir tane geyik unsuru içerikli olanına rastlamadım... Ve de işin ilginç yanı hepsinde de yardımcı olmuşsunuz... O nedenle sormuştum... Eğer ileride böyle bir kaynak oluşturmayı düşünürsen de fikir ve düşüncelerinden yararlanmak isterim...

Bunları dile getirdikten sonra php ile ilgili soruma geçmek istiyorum...Burada sormuş olduğum soruları önceden arıyorum üzerinde kafa yoruyorum ve eğer yapamazsam buraya gelip soruyorum...Yani araştırmadan gelip sormuyorum...Zaten burada sorduğum soruların karşılığında almış olduğum yanıtlardan kendime çok şey kattığını düşünüyorum fakat yine de sıfır olarak görüyorum kendimi...

Şimdi soruma geçiyorum;

Ben şimdi normalde sayfaya veritabanındaki kayıtları gösterebiliyorum...Ve her kaydın yanında bir adet sil linki bir adette güncelle linki koydum...

Sil linkini tıkladığımda daha önce hazırlamış olduğum sil.php sayfasına gidiyor ve mesaj siliniyor...

Güncelle linkine tıkladığımda ise önce güncelleform.php sayfasına gidecek ve mesajın üzerinde yapılacak değişiklikten sonra güncelle butonuna basılınca güncelle.php dosyasında değişiklikler işleniyor ve güncelleme oluyor...

Yanlız güncelleme de bir sorun var formda iki alan açtım biri kayıt nosu biride mesaji için ama kayıt sayfasından güncelleye tıklandığı zaman güncelleform sayfasında mesaj güncellemeye hazırken kayıtno da güncellemeye hazır vaziyette oluyor yani oradaki kayıt no sunu silip başka bir kayıt no yazıp güncelle dediğimizde o başka kayıt silinebiliyor...Bu da pek sağlıklı değil... Güncelleform sayfasında sadece mesajı göstererek güncelleme olayını bir türlü yapamadım... Burada primary key olarak kayıt no olduğu için onu da kullanmak gerektiğinden onsuz da yapamıyorum... Bu konuda nasıl bir yol izlemem gerekiyor?





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

Arkadaşım öncelikle şunu söyleyim, en iyisini yapıyorsun yani sindire sindire öğreniyorsun, Allah devamını getirsin.

Soruna gelince tam olarak sorunu anlayamadım, keşke kodlarını ekleseydin daha rahat cevap verebilirdim.Kullanıcı mesajları listele diyecek kendi mesajları listelenip istediğini değiştirecek daha sonra güncelle dediği zaman veritabanına işleyecek yanlış mı anladım.

Madem sil linkine tıklanınca istenilen kaydı sildirebiliyorsan, düzenle de de farklı bir olay yok.Sadece listelerken ekrana kayıt nosunu yazdırma, yalnız işlemi yaparken kayıtnosuna göre yap.Dediğim gibi sorunun ne olduğunu anlayamadım, güvenlikle alakalı bir kaygı mı?

Kodlarını eklersen veya biraz daha açık yazarsan sevinirim.


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

Evet haklısın ben bile yazımı daha sonra okuyunca kafam karıştı özür dilerim...



Şöyle belirteyim...

Şimdi diyelimki veritabanında 30 tane kayıt var ve bu kayıtları bir sayfada gösteriyorum,
Bu sayfadaki her satırda ki kaydın yanında birer tane sil ve güncelle linki var...

Sil linkinin işleyişinde sorun yok .
Güncelle linkinde ise; linki tıkladığımızda değiştirmek istediğimiz mesajımız formun içinde gözüküyor bu mesajı formun içinde göstermemiz için de form içinde <input type=text name=no value=$veri[mesaj]> diye de yazmak zorunda olduğumuzdan ...görüntüde hem mesaj ve hem de kayıt no gözüküyor... kayıt no daki rakamı değiştirdiğim takdirde güncellemek istediğim kayıt yerine kayıt no daki rakamın bulunduğu kayıt mesajı değişiyor... Bu da sağlıklı gelmiyor bana... Amacım form içinde input içine gömdüğümüz kayıt no yu göstermeden sadece mesajı görüp değiştirip güncellemek...

Yani bunu bir kullanıcıya verdiğimiz takdirde başka kayıtları da silme durumu söz konusu olacağından sağlıklı olmayacak... Gerçi güncelleme konusunda bir kaç uygulama örneği bulsam sorun ortadan kalkalacak ama bulamadığım için kendimce bişeyler yürütmeye çalışıyorum...

Biraz sonra da kodları buraya yazacağım...




Kodları bir sonraki mesajda yazmıştım ama kod lar içinde enter yapmadığım için görüntü bozuldu ve düzenleme butonuna erişip düzeltemediğim için aynı yazıyı burada veriyorum..






Kayıtların bulunduğu sayfanın ismi mesaj_oku.php
mesaj_oku.php sayfasının içindeki güncelle linki de şöyle;

 
<a href=güncelleform.php?no='.$sonuc[no].'>Güncelle </a></font>



Bu linke tıkladığımızda get metoduyla silmek istediğimiz mesajın kayıt no sunu güncelleformuna gönderiyor...

güncelleform.php sayfasının kodu da şöyle;

 
<?

$no=$_GET['no'];




mysql_connect('localhost','root');
mysql_select_db(mesajlar);


$sql="SELECT * FROM defter WHERE no='$no'";

$sorgu=mysql_query($sql);

$sec=mysql_fetch_array($sorgu);



echo "<form action=guncelle.php method=get>
<input type=text name=no value=$sec[no] >
<textarea rows=15 name=h cols=45 >$sec[mesaj]</textarea>";
echo "<br><input type=submit value=güncelle></form>";




?>




güncelleform sayfasındaki güncelle butonuna tıkladığımız zaman da güncelle.php sayfasına gönderiyor

güncelle.php sayfasının kodu da şöyle;

 
<?


$no=$_GET['no'];


mysql_connect('localhost','root');
mysql_select_db(mesajlar);

$sql="UPDATE defter SET mesaj='$mesaj' WHERE no=$no";

mysql_query($sql);


echo "<a href=mesaj_oku.php>mesaj oku</a>";


?>





Kodlar bunlar ...

Bu kodlarla güncelleme oluyor ama sağlıklı değil...
güncelleform.php sayfasındaki
<input type=text name=no value=$no> yu göstermeden nasıl yapabiliriz?

Umarım anlatabilmişimdir





< Bu mesaj bu kişi tarafından değiştirildi maratbilgin -- 6 Temmuz 2005, 18:03:52 >
Bu mesaja 2 cevap geldi.
M
20 yıl
Yüzbaşı
Konu Sahibi

Kayıtların bulunduğu sayfanın ismi mesaj_oku.php
mesaj_oku.php sayfasının içindeki güncelle linki de şöyle;

<a href=güncelleform.php?no='.$sonuc[no].'>Güncelle </a></font>   


Bu linke tıkladığımızda get metoduyla silmek istediğimiz mesajın kayıt no sunu güncelleformuna gönderiyor...

güncelleform.php sayfasının kodu da şöyle;

 <? 

$no=$_GET['no'];




mysql_connect('localhost','root');
mysql_select_db(mesajlar);


$sql="SELECT * FROM defter WHERE no='$no'";

$sorgu=mysql_query($sql);

$sec=mysql_fetch_array($sorgu);



echo "<form action=guncelle.php method=get><input type=text name=no value=$sec[no] > <textarea rows=15 name=h cols=45 >$sec[mesaj]</textarea>";
echo "<br><input type=submit value=güncelle></form>";




?>


güncelleform sayfasındaki güncelle butonuna tıkladığımız zaman da güncelle.php sayfasına gönderiyor

güncelle.php sayfasının kodu da şöyle;

<?  


$no=$_GET['no'];


mysql_connect('localhost','root');
mysql_select_db(mesajlar);

$sql="UPDATE defter SET mesaj='$mesaj' WHERE no=$no";

mysql_query($sql);


echo "<a href=mesaj_oku.php>mesaj oku</a>";


?>




Kodlar bunlar ...

Bu kodlarla güncelleme oluyor ama sağlıklı değil...
güncelleform.php sayfasındaki <input type=text name=no value=$no> yu göstermeden nasıl yapabiliriz?

Umarım


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

Arkadaşım Güvenlik konusunda çekinmeni anlıyorum ancak unutma ki eğer gerekli önlemi almadıysan kayıt silinirkende aynı şey geçerli olabilir, yani kötü niyetli birisi o kayıt yerine başka kaydıda silebilir. Ayrıca konuyla alakalı değil ama HTML taglarını yazarken de değerlerini tırnak içinde ver, şimdi nasıl alışırsan öyle gidersin, bilhassa javascript girince işe sonra başın ağrıyabilir

soruna gelince mesajı gösterirken kayıt nosunu göstermene gerek yok.Sen sadece <input type="text" name="mesaj1" value="$veri[mesaj]"> diye yazdırırsın, güncelle.php ye gitmesi için koyduğun butona o idi verirsin.
Dediğim gibi eğer kodların ilgili kısmını koysaydın kodların durumuna göre bir yol gösterebilirdim.Daha önceden de söylediğim gibi hatırlarsan bir işi yapmak için bir çok yol vardır çünkü.Ve ben şu anda nasıl bir kod yazdığını bilemediğimden söylediklerim havada kalır gibi oluyor.


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

<input type=text name=no value=$sec[no] >

bu alanı hiç yerleştirme sadece mesaj görünsün
bunu da

<input type=hidden name=no value=$sec[no] > olarak ilet


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

Yaa şimdi arkadaşlar ben bi soru sorcam

Php yi az çok biliyorum ama hala takıldığım birkaç nokta var

Şu güvenlik kodu olayı nasıl oluyor

Yani senin sayfanda rasgele bir kod çıkıyor ve diğer form da bu kodu nasıl biliyor

Ben hala bunu çözemedim


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

Ben cevap yazana kadar eklemişsin :)

Öncelikle mesaj gibi uzun metinleri post olarak gönder daha iyi olur.
şimdi:

güncelleform.php sayfasını:


<?
$no=$_GET['no'];

mysql_connect('localhost','root');
mysql_select_db(mesajlar);


$sql="SELECT * FROM defter WHERE no='$no'";

$sorgu=mysql_query($sql);

$sec=mysql_fetch_array($sorgu);



echo '<form action=guncelle.php?no='. $sec[no].'" method=post
<textarea rows="15" name="h" cols="45" >' . $sec[mesaj] . '</textarea><br>
<input type="submit" value="güncelle"></form>';

?>

güncelle.php yi de:
<?


$no=$_GET['no'];
$mesaj=$_POST['mesaj']

mysql_connect('localhost','root');
mysql_select_db(mesajlar);

$sql="UPDATE defter SET mesaj='$mesaj' WHERE no=$no";

mysql_query($sql);


echo "<a href=mesaj_oku.php>mesaj oku</a>";

?>

şeklinde yapabilirsin.Veya no yu <input type="hidden"> ile gizli olarak da yazdırabilirsin


Ayrıca yukarıda da söylediğim gibi bir kontrol olmadıkça istenen kayıt yine silinir veya düzenlenir, örneğin adres satırına guncelle.php?no=5 yerine guncelle.php?no=15 yazılabilir, silme içinde aynı şey geçerli, ama sen zaten kişinin kendi kayıtlarını listeleyeceksin o nedenle bir sorun olmaz şimdilik.

Birde böyle kısa kodlarda iki sayfa kullanmak yerine sayfayı kendine post ettirirsen de olur.



A
20 yıl
Yüzbaşı

quote:

Orjinalden alıntı: NmC

Yaa şimdi arkadaşlar ben bi soru sorcam

Php yi az çok biliyorum ama hala takıldığım birkaç nokta var

Şu güvenlik kodu olayı nasıl oluyor

Yani senin sayfanda rasgele bir kod çıkıyor ve diğer form da bu kodu nasıl biliyor

Ben hala bunu çözemedim



Arkadaşım ilk önce rastgele bir sayı üretilir, daha sonra Phpnin image fonksiyonlarıyla üzerinde üretilen sayının yazdırıldığı bir resim oluşturulur. Bu resimin oluşturulduğu rastgele sayı ve kullanıcının girdiği ifade karşılaştırılır doğruysa onaylanır .


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

quote:


Bu resimin oluşturulduğu rastgele sayı ve kullanıcının girdiği ifade karşılaştırılır doğruysa onaylanır .


Benim takıldığım noktta bu

Burada veri iletimi nasıl yapılıo


Bu mesaja 2 cevap geldi.