Sorterin çalışması sayesinde uo camiyasındaki şu online account alımı işleminde bi son buldu.Ellerine sağlık diyorum U-s'deki en iyi paylaşım diyebilirim Teşekkürler Sorter
Master
59.2997
Yanılmıyorsam o sistemi yaparken nomd5 bölümünü sphere'ın md5 şifrelemesi açıksa girilen şifreyi tekrardan md5'e çevirdiği için eklemişti. Eğer nomd5'i kaldırıp kullanıyorsanız sunucunuzda md5 şifrelemesi açık değil demektir. Birde zaten o alandaki veriler account sunucuya eklendiğinde siliniyor. Olduda bir şekilde sisteminizi hackletmeyi başardınız diyelim. SQL'den sadece yeni açılıp sunucuya eklenmeyen hesapların md5'siz haline ulaşabilirler.
addmd5 fonksiyonu var zaten sphere da, md5 li şifreyi tekrar md5letip atmaya kalkarsan olmaz sadece, sistemin script kısmında da nomd5 i kullanıyor direk insert ten nomd5 i kaldırırsanız patlar, 10 15sn tutulan veriyle bir şey de olmaz zaten, en sağlıklısı orjinal sürümü
O md5li hali değil yeni random şifre oluşturuluyor o geliyor
md5 li olarak tutuyorsan şifreleri şifreyi gönderemezsin, geçici değişim kodu üretip şifrelersin, şifresini değiştirir adam anca
Gecici sifre gonderip onayladiginda aktif etmen gerekiyor...
tasarımı bildiğin güzel. bir diğer sevdiğim renk kombinasyonu da koyu gri tema üzerine turuncu borderlar falan.
Nelph : Yeni Şifreniz: 91f7723d46ece05409ca68e73cad60b9

md5 değil varsaysak bile bu şifreyle account sistemine giriş yapılmıyor oyunada yapamaz bukadar karakterle aynı zamanda baktığımda mysql'de md5'li halide farklı ve diğer tablolarda aynı değil ancak direk ekranda gösterttiğimde evet şifre değişiyor sorunsuz bir şekilde ve verdiği şifre doğru oluyor. Aynı şekilde mail adresine kayıt maili gittiğindede şifrenin md5'li halini göndertmekte.

Orda bir sıkıntı olmuş o zaman sistemde otomatik şifre üretilip o şifrenin maile atılması md5 li halininde veritabanına kaydedilmesi lazım fakat sanırsam md5leyip onuda maile göndertmişim orda ince bir ayar vardır şifreyi değiştirince ayrı bir değişkende onu maillemek lazım

Edit:
Ufak bir ayrıntı gözden kaçmış;

$message .="Yeni Şifreniz: $sifre\r\n";
index.php de şu kısmı
$message .="Yeni Şifreniz: $yenipw\r\n";
şu şekilde yaptıkmı sorun düzelecektir.
Ayrıca linkleri güncelledim yenisinde sorun çözülü.

Bu konu nuker tarafından düzenlendi(2012-08-12 20:57, 11 yıl önce)
evet onuda fark ettim
else in altına bunun eklenmesi gerekiyor
$query = mysql_query("UPDATE uyelik_bilgileri SET sifre='$sifre', yenisifre='$yenipw' WHERE kadi='$kadi'");

daha açıklayıcı olursak;

	if(sifremi_unuttum_mail == 0) {
							$query = mysql_query("UPDATE uyelik_bilgileri SET sifre='$sifre', yenisifre='$yenipw' WHERE kadi='$kadi'");
							print "<p id=\"hatirla\">Şifre hatırlatma işlemini tamamladınız.</p>";
							print "<p id=\"hatirla\">Yeni Şifreniz: <label class=\"not\">$yenipw</label></p>";
							print "<p id=\"hatirla\"><label class=\"not\">Not: </label><label class=\"not2\">Lütfen yeni şifrenizle giriş yapıp şifrenizi güncelleyiniz.</label></p>";
						}else{
							$query = mysql_query("UPDATE uyelik_bilgileri SET sifre='$sifre', yenisifre='$yenipw' WHERE kadi='$kadi'");
							$message ="Bu mesaj size". sunucu_adi ."tarafından otomatik olarak gönderilmiştir. Lütfen bu maile cevap göndermeyiniz.\r\n";
							$message .="Şifremi Unuttum Talebinde Bulundunuz.\r\n\r\n";
							$message .="Yeni Şifreniz: $yenipw\r\n";
							$header  ="Reply-To: Account <".admin_mail.">\r\n";     

mail sunucum olmadığı için test etme imkanım olmamıştı mail seçeneğini, bilgilendirmen için teşekkür ederim.
Linkleri tekrar güncelledim.

Bu konu nuker tarafından düzenlendi(2012-08-13 03:17, 11 yıl önce)
Merhaba,

Eleştirmek gibi olmasın ama kodları ilk defa görüyorum. Mysql sorgularında kullanım hatası mevcut.

Db ye kayıt ederken, yeni php versionlarında insert kullanımın hata verebilir.

"UPDATE uyelik_bilgileri SET sifre='$sifre', yenisifre='$yenipw' WHERE kadi='$kadi'" -> bu şekilde kullanmaktansa

"UPDATE uyelik_bilgileri SET sifre='".$sifre."', yenisifre='".$yenipw."' WHERE kadi='".$kadi."'" -> bu şekilde kullansan daha stabil olur.

Yanlış anlaşılma olmasın sadece, senin ve kullananlar adına sistemin stabil olmasını düşündüğümden dolayı bunu söyleme gereksinimi duydum.

İyi geceler,
İyi forumlar.
Master
59.2997
Leon Jade : Merhaba,

Eleştirmek gibi olmasın ama kodları ilk defa görüyorum. Mysql sorgularında kullanım hatası mevcut.

Db ye kayıt ederken, yeni php versionlarında insert kullanımın hata verebilir.

"UPDATE uyelik_bilgileri SET sifre='$sifre', yenisifre='$yenipw' WHERE kadi='$kadi'" -> bu şekilde kullanmaktansa

"UPDATE uyelik_bilgileri SET sifre='".$sifre."', yenisifre='".$yenipw."' WHERE kadi='".$kadi."'" -> bu şekilde kullansan daha stabil olur.

Yanlış anlaşılma olmasın sadece, senin ve kullananlar adına sistemin stabil olmasını düşündüğümden dolayı bunu söyleme gereksinimi duydum.

İyi geceler,
İyi forumlar.

Bende neredeyse tüm sorgularımı bu şekilde kullanıyorum ve şu ana kadar hiç bir sorunla karşılaşmadım. Mantıkende bir sorunu yok. Aralarında stabillik yaratacak ne gibi farklılıklar var açıklayabilir misin? Tekrar aç kapa aç kapa yapmaktansa değişkeni içinde çözümlendirmek bana kalırsa daha mantıklı ama senin görüşünü de merak etmiyorum değil.
stabillik derken açar mısın biraz
Merhaba,

Açıklamam şu şekildedir ;

Opensource yani 1 den fazla kişinin kullandığı sistemler, genelde farklı php sürümlerini ve farklı işletim sistemlerini kullanırlar.

Bunlarda bu sürümlere bağlılık gösterebilmek açısından syntax'a bağlılık göstermek gerekir.

'$degisken' şeklinde yazılan bir yazım şeklinde aslında $degisken şeklinde bi yazım karşınıza çıkarıcaktır.

Fakat kullanımı o kadar yoğunlaşmıştır ki kimse gerçek syntax'a özen göstermeden yazımı bu şekilde yaptığı için mecburi olarak php ye yük bindirilerek $ işareti gördüğünde değişenin varlığı sorgulanmaktadır.

Yani aslında, ' işareti görüldüğünden php'nin özünde ne olursa olsun ekrana yazdır demektir. Aşşağıdaki kod örneğini linux her hangi bir php olan sitede sadece bu kodu deneme.php olarak kayıt edip çalıştırdığınızda karşınıza $degisken çıkacaktır.

Saygılarımla.


<?php
$degisken = "deneme ultima-strike.com";
echo '$degisken';
?>
Master
59.2997
Leon Jade : Merhaba,

Açıklamam şu şekildedir ;

Opensource yani 1 den fazla kişinin kullandığı sistemler, genelde farklı php sürümlerini ve farklı işletim sistemlerini kullanırlar.

Bunlarda bu sürümlere bağlılık gösterebilmek açısından syntax'a bağlılık göstermek gerekir.

'$degisken' şeklinde yazılan bir yazım şeklinde aslında $degisken şeklinde bi yazım karşınıza çıkarıcaktır.

Fakat kullanımı o kadar yoğunlaşmıştır ki kimse gerçek syntax'a özen göstermeden yazımı bu şekilde yaptığı için mecburi olarak php ye yük bindirilerek $ işareti gördüğünde değişenin varlığı sorgulanmaktadır.

Yani aslında, ' işareti görüldüğünden php'nin özünde ne olursa olsun ekrana yazdır demektir. Aşşağıdaki kod örneğini linux her hangi bir php olan sitede sadece bu kodu deneme.php olarak kayıt edip çalıştırdığınızda karşınıza $degisken çıkacaktır.

Saygılarımla.


<?php
$degisken = "deneme ultima-strike.com";
echo '$degisken';
?>

Bu verdiğin örnekte haklısın fakat üstteki kodda ve söylediğin gibi gösterimlerde echo'nun kendi tırnakları önemlidir. İçteki tek tırnak orada sorun teşkil etmiyor.

Yani şöyle ki;


$a="gokberk";
echo "benim ismim '$a'";

yaptığında çıktı

benim ismim 'gokberk'

şeklinde olacak. O yüzden bir farkı yok. Değişken çözümleme açıp kapatmaya oranla daha yavaş çalışabilir fakat bunun gibi ufak kodlarda ve stringlerde nerdeyse hiç performans farkı olmayacağından yazımın hangisi iyi duruyorsa o şekilde yapmak bence daha mantıklı.
Ama standartlara uymak open source sistemlerde daha iyi değilmidir sence :)

Php 4 kullanan bir sunucuda üstteki yazımın çalışmayacaktır örneğin.



Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.