

PHP Üyelik Sisteminde Guncelleme De Takıldım Arkadaşlar.
-
1) Üyeyi kaydettim.
2) Sonra Üyeler diye bi sayfa açtım
3) Üyeler sayfasını DB den çektrdim ekrana yazdırdım
4) Her üyenin ismine link verdim linke tıklanınca ve Guncelleme sayfasını açtırdım.
5) Güncelleme sayfasını DB den Çektirdim Ekrana yazdırdım. ve açılmış oldu Sorun burda başlıyor.Arkadaşlar ekrana o kişinin bilgileri geldi.
Kısaca Şablon Bu ;
Ad Soyad : [DB den çektim yazdırdım]
Kullanıcı adı : [DB den çektirdim yazdırdım]
Email : [DB den Çektirdim yazdırdım]
.
.
Burdada ""Güncelle"" Butonu var...Güncelle butonuna bastığımda Güncelle.php sayfasına gidiyo ve güncellemeyi yapıyo codlar aşşağıda
------------------------------------------------------------------------------
Şimdi arkadaşlar ben güncelleme yaparken Aynı Kullanıcı adında veya Aynı Email olan kişiler varmı bilmiyorum yani
ben bu üyenin kullanıcı adını sildim ve başka yaptım ama ya başkasıda o kullanıcı adını kullanıyorsa bi çakışma olacak.....Şimdi Codları yazıyorum
Bunlar yukarıdaki güncelleme sayfasındaki güncelle butonuna bastığımda gelecek olan tanımlamalar. yani güncelle.php sayfasının içeriği
<?php
$kullaniciadi = $_POST["kullaniciadi"];
$email = $_POST["email"];
$adsoyad = $_POST["adsoyad"];
$sifre = $_POST["sifre"];
$yenisifre = md5($sifre);
$sifreiki = $_POST["sifrekntrl"];$sor = mysql_query("SELECT kullaniciadi FROM uyeler WHERE kullaniciadi='$kullaniciadi'");
if(mysql_num_rows($sor)> 0){
echo "Bu Kullanıcı Adı Kullanılmaktadır.<br>Lütfen Farklı Bir Kullanıcı Adı Kullanıp Güncellemeyi Tekrar Deneyiniz.";
}else{
$sor2 = mysql_query("SELECT email FROM uyeler WHERE email='$email'");
if(mysql_num_rows($sor2)> 0){
echo "<center>Girmiş Olduğunuz Email Adresi Kullanılmaktadır.<br>Lütfen Farklı Bir Email Adresi Yazıp Tekrar Deneyiniz.<br>4 Saniye İçinde Güncelleme Sayfasına Yönlendirileceksiniz.<br>Lütfen Bekleyiniz.</center>";
header("refresh: 4; url=index.php?Git=TumUyeler");
}else{
bu koşullar sağlanırsa kaydı tamamla Kodları........-----------------------------------------------------------------------------------------
Şimdi Asıl sorun şu ben bu üyenin kullanıcı ismini DEĞİŞTİRMEYECEĞİM işte o zaman güncelleme yapmıyor çünkü ilk olarak DB o kullanıcı adı varmı ona bakıyo (bakınız yukarıdaki kodlar) sonra kayıt yapıyo (email içinde aynı şekilde) , O kullanıcı kaydı DB de olduğundan dolayı güncellemeyi yapmadan işlemi durduruyo...
Hadi diyelim BAşka bi isim verdim bu sefer güncellemeyi yapacak ama ya başka bi kullanıcı ismini atadıysam ne olacak ?
işte burda tıkandım arkadaşlar yardımlarınızı bekliyorum....
Özet olarak : Güncelleme yaparken aynı kullanıcı adında bi üye varmı yokmu kontrol edecek yoksa eğer benim verdiğim kullanıcı adını kaydedecek ve kullanıcı ismini değiştirmezsemde sorun çıkartmadan güncellemeyi yapacak bi kodlama lazım
Biliyorum çok uzun oldu inşallah kızmazsınız. En açık şekilde yazmaya çalıştım 6 saattir yapamadım :(
Zamanınızı aldığım içinde kusura bakmayın.
-
id ile işlem yaptırmayı denedin mi?
-
abü php kodlamasını bilemeyecem ama girişte üyelere session ata. bu session'un değeri o üyenin id numarası olsun
güncelleme yaparken üyeyi sorgularken bu id'yi kullanselect * from kullanicilar where id=session(ID)
(session(ID) değişken oluyo. php'de sql'de değişkenler nasıl kullanıyosa öyle kullan) -
id yi çektiriyorum her sayfamda ama bu işe yeni başladığımdan dolayı nasıl bi yol gidebilirim bilmiyorum.
Bi akıl verirsen hocam belki yapabilirim.
Hocam bu arada Mysql de her id farkı ve mesela
id si 5 olan üyenin kullanıcı adı nı yazdırdım ekrana, sonra o üyenin ismini değiştirdim id yine aynı benim sorunum id ile değilki kullanıcı adı ve mail ile alakalı :(
Yani hocam bilmiyorum çok bu id işlemlerini geliştiriyorum kendimi ama bakalım.
-
Zxone bunu yazdı:
-----------------------------id yi çektiriyorum her sayfamda ama bu işe yeni başladığımdan dolayı nasıl bi yol gidebilirim bilmiyorum.
Bi akıl verirsen hocam belki yapabilirim.
Hocam bu arada Mysql de her id farkı ve mesela
id si 5 olan üyenin kullanıcı adı nı yazdırdım ekrana, sonra o üyenin ismini değiştirdim id yine aynı benim sorunum id ile değilki kullanıcı adı ve mail ile alakalı :(
Yani hocam bilmiyorum çok bu id işlemlerini geliştiriyorum kendimi ama bakalım.
-----------------------------
işlemlerinde kullanıcı adını kullanırsan veya emailini bu alanlarda değişlik yapamaman kadar doğal birşey yok. O yüzden id ile yapacaksın, neden id ile yapacaksın, çünkü id otomatik, değiştirilimesi gerekmeyen ve hiçbir yerde kullanılmıyan (field olarak) bir veri alanı. Session ile yaptırabilirsin bunu. -
abi şimdi sen şunu diyosun "aynı kullanıcı adında biri var mı bilmiyorum.."
şimdi bi kere aynı kullanıcı adında birisi olmayacak.. kayıt yaparken bunu sağlayacaksın. adam kullanıcı adı girdiğinde db'de o kullanıcı adı var mı die bakacaksın varsa üyelik işlemini tamamlamayacaksın başka üye adı seçmesini isteyeceksin..
ve guncelleme sayfasında her zaman id ile çekeceksin bilgileri ve kaydederken de sorguyu id'ye göre yapacaksın..
eğer sen aynı kullanıcı adında insanlar olsun istiyosan da farketmez. sonuçta id'ler unique yani eşsiz dediğimiz bilgiler hiç bi üyenin id'si aynı olmayacağı için tüm sql işlemlerini id ile yapacaksın..hani sen
$sor = mysql_query("SELECT kullaniciadi FROM uyeler WHERE kullaniciadi='$kullaniciadi'");
bu şekilde çekiyosun ya bu yanlış . kullanıcı adı ile değil id ile çekeceksin..
yeni başladıysan hazır bi üyelik sistemini editlesen daha yararlı olur senin için.. daha sonraları kendi üyelik sistemini yazarsın
-
alp bunu yazdı:
-----------------------------abi şimdi sen şunu diyosun "aynı kullanıcı adında biri var mı bilmiyorum.."
şimdi bi kere aynı kullanıcı adında birisi olmayacak.. kayıt yaparken bunu sağlayacaksın. adam kullanıcı adı girdiğinde db'de o kullanıcı adı var mı die bakacaksın varsa üyelik işlemini tamamlamayacaksın başka üye adı seçmesini isteyeceksin..
ve guncelleme sayfasında her zaman id ile çekeceksin bilgileri ve kaydederken de sorguyu id'ye göre yapacaksın..
eğer sen aynı kullanıcı adında insanlar olsun istiyosan da farketmez. sonuçta id'ler unique yani eşsiz dediğimiz bilgiler hiç bi üyenin id'si aynı olmayacağı için tüm sql işlemlerini id ile yapacaksın..hani sen
$sor = mysql_query("SELECT kullaniciadi FROM uyeler WHERE kullaniciadi='$kullaniciadi'");
bu şekilde çekiyosun ya bu yanlış . kullanıcı adı ile değil id ile çekeceksin..
yeni başladıysan hazır bi üyelik sistemini editlesen daha yararlı olur senin için.. daha sonraları kendi üyelik sistemini yazarsın
-----------------------------Abi üyelik yapılırken zaten bu kodları yazdım onda sorunum yok yani üye ismi daha önce varsa yeni üye olan olamıyor bi sorun yok bunda....
Ama güncelleme sayfasında bu durum söz konusu olamaz çünkü a kişi var b kişisi var tamam doğru ama ben a kişisini güncelleyeceğim diyelim b yaptım işte bu zaman olmayacak ..
id ile tam olarak nasıl çekeceğimi anlayamadım ama araştırmaya başlayacağım google dan bakalım ...
Kardeşim sen kodu kısaca yazabilirmisin. Araştıra araştıra sora sora öğreneceğim... Yardım edebilirsen çok sevinirim.
$id = $_GET["id"];
şeklinde sayfamda çekili ... mysql de adı ise yine id
-
uuuuuuuuuuuu şimdi anladım ben problemi :D bu saatte bu kadar..
şöyle olabilir.. mesela guncelle.asp?id=10 şeklinde gonder. sonra o sayfada id'ye gore kişinin bilgilerini text kutusuna yazdın
guncelle butonuna basınca guncelletamam.asp?id=10
diye gonder..
o sayfada da
url'den id'yi al
yeniden o id'nin ait olduğu kişinin bilgilerini çeksonra bi önceki sayfadan gelen kullanıcı adı değişkeniyle veritabanından çektiğin kullanıcı adı değişkenini karşılaştır..
eğer ikisi aynıysa kullanıcı adında değişiklik yapmıyosun demektir aynı değilse kullanıcı adını değiştirdin demektir.
bu şarta göre
if formdangelen <> dbdengelen then
'update kullanıcıadı
end ifşeklinde bi şarta bağla.. bu şekilde çözülür
EDİT: bu arada .asp falan yazmışım yanlışlıkla :) sonuçta mantığını yazdım bi fark yapmaz umarım :)
-
alp bunu yazdı:
-----------------------------uuuuuuuuuuuu şimdi anladım ben problemi :D bu saatte bu kadar..
şöyle olabilir.. mesela guncelle.asp?id=10 şeklinde gonder. sonra o sayfada id'ye gore kişinin bilgilerini text kutusuna yazdın
guncelle butonuna basınca guncelletamam.asp?id=10
diye gonder..
o sayfada da
url'den id'yi al
yeniden o id'nin ait olduğu kişinin bilgilerini çeksonra bi önceki sayfadan gelen kullanıcı adı değişkeniyle veritabanından çektiğin kullanıcı adı değişkenini karşılaştır..
eğer ikisi aynıysa kullanıcı adında değişiklik yapmıyosun demektir aynı değilse kullanıcı adını değiştirdin demektir.
bu şarta göre
if formdangelen <> dbdengelen then
'update kullanıcıadı
end ifşeklinde bi şarta bağla.. bu şekilde çözülür
EDİT: bu arada .asp falan yazmışım yanlışlıkla :) sonuçta mantığını yazdım bi fark yapmaz umarım :)
-----------------------------
Kardeşim beyaz şimşekler çakmaya başladı :) eyvallah yarın ilk işim denemek olacak ...çok sağol inşallah başını ağrıtmam daha sonrada :)