Üyeler sadece kendi içeriğini düzenlesin
15
●1.031
- 13-05-2009, 14:47:30Söylediklerinizi doğru anlamışsınız hocam.
SQL'i de burda yayınlıyorum:
-- -- Tablo yapısı : `oykuler` -- CREATE TABLE `oykuler` ( `id` bigint(20) NOT NULL auto_increment, `link` varchar(72) NOT NULL default '', `image1` bigint(20) NOT NULL default '0', `yazar` text NOT NULL, `yazi` text NOT NULL, `spot` text NOT NULL, `email` varchar(25) NOT NULL default '0', `tarih` varchar(14) NOT NULL default '', `anasayfa` enum('Y','N') NOT NULL default 'Y', `yayin` enum('E','N') NOT NULL default 'N', `bolum` tinyint(2) NOT NULL default '0', `user` varchar(32) NOT NULL default '', `hit` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=8 ; -- -- Tablo döküm verisi `oykuler` -- - 13-05-2009, 22:30:41Tekrardan merhaba.
icerik_duzenle.php admin panelindeki dosyanızsa bunu aynen kopyalayıp kullanıcıya sundugunuzda oda admın yetkisinde olur bir nevi
o yuzden biz sadece ona ozel bir alan acalım.En azından mantıgını anladıgınızda geri kalan duzenlemelerı sız yaparsınız (Js kodlarını eklemek, ınput ları duzenlemek vs vs)
Kullanıcı sısteme gırıs yaptıgında karşısına YAZDIGIM OYKULER dıye bolum cıkıyor mu?Eger cıkmıyorsa onuda ekliyelim.Kullanıcıların sql tablosunu gormedıgım ıcın kendı dusuncelerımle yazıyorum.
Burası oykulerim.php olsun;
<table border="1"> <? session_start(); // Oturum başlattık $kullanici = $_SESSION["kullanici"]; // Sisteme giriş yapan kullanici adini $kullanici değişkenine atadık $baglan = mysql_query("select * from oykuler where yazar='$kullanici'"); // Oykuler tablosunda oturum açan kullanıcının adına ait olan butun bilgileri istedik. while ($yaz = mysql_fetch_array($baglan) { // Bu bilgileri while döngüsüne sokup $yaz değişkenin dizi olarak atadık. ?> <tr> <td> <!-- Burada yazara ait olan butun oyku ID lerini ve SPOT ları (baslık bu degilse oyku baslik adını yazarsın asagıdaki spot yerine.) aldık.Bu baslıkları ID degerlerine gore $_GET ile duzenle.php dosyasına yonlendiriyoruz --> <a href="duzenle.php?id=<?=$yaz["id"];?>"><?=$yaz["spot"];?></a> </td> </tr> <? } ?> </table>Bunu oykulerim.php diye kaydettikten sonra sımdıde duzenle.php yi yapalım.
<? session_start(); // Oturumu başlattık $id = $_GET["id"]; // oykulerim.php den $_GET ile gelen ID değerini $id degişkenin atadık $yaz = mysql_fetch_array(mysql_query("select * from oykuler where id='$id'")); // Oykuler tablosundan gelen id degeriyle eşleşen oykuye ait butun verileri cekiyor ve $yaz degişkenine atıyoruz. if (! $_POST["duzenle"]) { // Duzenle butonuna basılmadıysa ekrana cıkacak olanları yazdırıyoruz. ?> <table border="1" width="100%"> <tr> <td width="50%">Spot</td> <td width="50%"><input type="text" name="spot" size="20" value="<?=$yaz["spot"];?>></td> </tr> <tr> <td width="50%">Metin</td> <td width="50%"><textarea rows="2" name="metin" cols="20"><?=$yaz["metin"];?></textarea></td> </tr> <tr> <td width="50%"> </td> <td width="50%"><input type="submit" name="duzenle" value="Duzenle" name="gonder"></td> </tr> </table> <? } else { // if kontrolununun ilk aşamasını, yani butona basılmadıgında ekrana cıkacak olanları yazdırdıktan sonra kapatıyor ve basıldıgında yapılacak olanlara gecıyoruz. if (empty($_POST["spot"]) || empty($_POST["metin"])) { // Burada boşluk kontrolü yaptık.Eger boş veri gonderilirse asagıdakileri yazdırıcaz ekrana echo "Form alanında boşluk bıraktınız"; } else { // Eger form alanı dolu gelirse veritabanındaki bilgileri bu gelenlerle degiştiriyoruz. $baglan = mysql_query("update oykuler set spot,metin values ('$_POST[spot]','$_POST[metin]') where id='$id'"); // Veritabanına baglanıp gelen id değerindeki oyku için yukarıda gonderilen spot ve metin degerlerini guncelliyoruz. if ($baglan) { //Eger baglantı kuruldu ve guncelleme yapıldıysa asagıdakileri ekrana yazdıracagız echo "Bilgileriniz başarıyla güncellendi"; } else { // Eger guncelleme yapılamadıysa ekrana basılacak olanı yazıyoruz echo "Bilgiler güncellenirken hata olustu"; } ?>Şu an için aklıma bunlar geliyor vallahi. Tam olarak sistemi nasıl yazdıgınızı bilmedigim için standart duz mantık olusturdum.oykulerim.php calısmayabilir cunku $_SESSION["kullanici" bilgisi varmı sitenizde, varsa bu değişkene kullanicinin ID değerinimi yoksa Yazar adınımı atadıgınızı bilmiyorum. Ben yazar adını atadıgınızı varsayarak o sekilde baslattım.Umarım yapabilirsin.Duruma gore buradan yazarsın yıne dostum.Kolay gelsin - 13-05-2009, 23:51:01Çok teşekkür ederim.
Admin ve editörler siteadi.com/yonetim olarak siteye giriyor, ama üye girişi tıklandığında direkt login.siteadi.com alt domainine yönlendiriliyor üyeler. O yüzden dosya adlarının bir sakıncası yok. İlk etapta tabi admin panelini olduğu gibi kopyalayıp oraya taşıdım ve üyeler için editlemeye başladım.
Tek çözemediğim yer bu bölümdü işte.
Genelde gerçekten yazar olan üyeler sorun olmuyor ama sonuçta üyelik bölümü herkese açık olduğu için ve destursuz misafirler de olmak isteyenler de olacağından ciddiyeti artıyor.
Bana zaman ayırdığınız için çok teşekkür ediyorum.
Hazırladığınız sitelere göz gezdiriyorum, çok güzel çalışmalar yapıyorsunuz, tebrik ederim.
o yuzden biz sadece ona ozel bir alan acalım.En azından mantıgını anladıgınızda geri kalan duzenlemelerı sız yaparsınız (Js kodlarını eklemek, ınput ları duzenlemek vs vs)