PHP Yorumlar Sayfası Hata....

Kodla Büyü

a-anil06

Seçkin Üye
Seçkin Üye
Mesajlar
354
require_once("includes/icerikconfig.php");
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");

Arkadaşlar yorumlar sayfası için kodlar bu.İstediğim sonucu alabiliyorum.Kayıt gerçekleşiyor,yorum hangi içeriğe yapıldıysa sadece o içeriğin altında ilgili yorum görünüyor.Buralarda hiçbir tıkıntı yok.Ama ben kategorilerdeki içeriklere girdiğim zaman,her girişte otomatik olarak yorumlar veritabanına boş kayıt ekliyor.Örnek: PHP kategorisinde veritabanı kayıt başlığına bir kere girdiğim zaman bir adet boş kayıt ekleniyor. kere girsem iki boş kayıt ekleniyor.Anlatabildim mi bilemiyorum.Ben bu sorunu nasıl çözebilirim.
Yani yorum yap butonuna bastığım zaman kaydetmesi lazım.Basmadan kaydediyor.Sorunum bu.

$yorum satırının altına;

if(empty($ad_soyad) || empty($eposta_) || empty($tarih_) || empty($yorum))
{
mysql_query("DELETE FROM yorumlar WHERE adsoyad = ' ' ") ya da WHERE adsoyad IS NULL
exit;
}

olarak düşündüm ama yine olmadı.
 
Hocam bu işlemleri hangi dosyada yapıyorsunuz. Eğer bu işlemleri içerik sayfasının kodlarının altına yazmışsanız bu durum oluşabilir. Sizin
if($_POST){
//yorum eklem kodları
}
şeklinde bir kontrol yapmış olmanız gerekir. Aksi halde POST edilsin edilmesin daima ekleme işlemleri çalışır.
 
bekirweb' Alıntı:
Hocam bu işlemleri hangi dosyada yapıyorsunuz. Eğer bu işlemleri içerik sayfasının kodlarının altına yazmışsanız bu durum oluşabilir. Sizin
if($_POST){
//yorum eklem kodları
}
şeklinde bir kontrol yapmış olmanız gerekir. Aksi halde POST edilsin edilmesin daima ekleme işlemleri çalışır.

Hemen deniyorum.Basit bir işlemin içerisinden çıkamadım bir türlü.


if($_POST)
{
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
echo "Kayıt Gerçekleşti.";
}

şeklinde mi yapmam gerekiyor?
 
Evet hocam böyle bir deneyin olması gerekir. Ama diğer POST ile gelen değişkenleri de dahil etmelisiniz.
 
bekirweb' Alıntı:
Evet hocam böyle bir deneyin olması gerekir. Ama diğer POST ile gelen değişkenleri de dahil etmelisiniz.
Malesef olmadı hocam. Diğer POST ile gelen değişkenleri de dahil etmelisiniz derken hocam?
 
İçerik dosyanızda içerikleri listelerken yorum ekleme kodlarınız da çalışıyor. Sizin yapmanız gereken işlem, bu sayfada bulunan yorum ekleme kodlarınızı POST işlemi olduğunda çalışacak şekilde düzenlemek
Yani;
//içeriği gösteren kodlar
if($_POST)
{
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");
}
//diğer kodlar
şeklinde olmalı. Bu şekilde, sayfaya girdiğinizde POST işlemi yapılmamış olacağından if bloğunun içi çalışmayacaktır. Ne zaman ki yorum ekleme formundan POST ile veri gelir o zaman if bloğu çalışır.
 
bekirweb' Alıntı:
İçerik dosyanızda içerikleri listelerken yorum ekleme kodlarınız da çalışıyor. Sizin yapmanız gereken işlem, bu sayfada bulunan yorum ekleme kodlarınızı POST işlemi olduğunda çalışacak şekilde düzenlemek
Yani;
//içeriği gösteren kodlar
if($_POST)
{
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");
}
//diğer kodlar
şeklinde olmalı. Bu şekilde, sayfaya girdiğinizde POST işlemi yapılmamış olacağından if bloğunun içi çalışmayacaktır. Ne zaman ki yorum ekleme formundan POST ile veri gelir o zaman if bloğu çalışır.


Şimdi anladım.Durumu tekrar bilgilendiririm teşekkür ederim. :+1:
 
hocamın yazdığı kodlarla sorununuzun çözülmüş olması gerekiyor serverın yükü de azalacaktır.
 
if($_POST)
{
}

mantığı çok doğru değil arkadaşlar. mesela yorum ekleme verilerinde bir eksiklik olsa dahi yeni yorumu ekliyecek. bunun yerine "yorum ekle" butonuna "yorumekle" adını verirsek; aşağıdaki gibi yapmak daha mantıklı olacaktır. yani yorum ekle butonuna basıldığında ekliyecek.

if($_POST)
{
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
if($_POST['yorumekle'] {
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
}

if($sorgu) echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");
}
 
bekirweb' Alıntı:
İçerik dosyanızda içerikleri listelerken yorum ekleme kodlarınız da çalışıyor. Sizin yapmanız gereken işlem, bu sayfada bulunan yorum ekleme kodlarınızı POST işlemi olduğunda çalışacak şekilde düzenlemek
Yani;
//içeriği gösteren kodlar
if($_POST)
{
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");
}
//diğer kodlar
şeklinde olmalı. Bu şekilde, sayfaya girdiğinizde POST işlemi yapılmamış olacağından if bloğunun içi çalışmayacaktır. Ne zaman ki yorum ekleme formundan POST ile veri gelir o zaman if bloğu çalışır.
___________
yanıyosun fuat abi' Alıntı:
if($_POST)
{
}

mantığı çok doğru değil arkadaşlar. mesela yorum ekleme verilerinde bir eksiklik olsa dahi yeni yorumu ekliyecek. bunun yerine "yorum ekle" butonuna "yorumekle" adını verirsek; aşağıdaki gibi yapmak daha mantıklı olacaktır. yani yorum ekle butonuna basıldığında ekliyecek.

if($_POST)
{
$ad_soyad = $_POST['adsoyad'];
$eposta_ = $_POST['eposta'];
$tarih_ = $_POST['tarih'];
$yorum_ = $_POST['yorum'];
$id = mysql_fetch_array(mysql_query("SELECT * FROM sayfalar"));
$sid = $id['sayfaID'];
if($_POST['yorumekle'] {
$sorgu = mysql_query("INSERT INTO yorumlar(sayfaID,adsoyad,tarih,eposta,yorum) VALUE ('$sid','$ad_soyad','$tarih_','$eposta_','$yorum_')");
}

if($sorgu) echo "Kayıt Gerçekleşti.";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' ");
}


Arkadaşlar iki uygulamada olmadı.Hala boş kayıt devam ediyor malesef...
 
Hocam kodların tümünü herhangi bir yere ekleme şansınız var mı? Ayrıca yeni öğreniyorsanız mysql_ ile başlayan fonksiyonlar yerine PDO kullanmanızı tavsiye ederim.
 
Mysql de bnm için sıkıntı yok aslında.pdo ya hiç bakmadım. 3 tane yorumlar ile ilgili sayfa var.1. de form elemanları 2.de action da belirtilen yorumyap.php ki buradaki kodlar yukarıda,3. Ve son sayfada ise listeleme var.
 
mysql_ ile fonksiyonları php artık desteklemeyecek çeşitli problemlerinden ötürü. Onun yerine PDO öneriyor. Peki hocam içerik listeleme sayfasında yorumyap.php dosyanızı çağırıyormusunuz? include veya require ile.
Anladığım şu;
-Formunuzun olduğu bir sayfa
-Yorum eklem koklarınızın olduğu bir sayfa
-Yorum listeleme yaptığınız bir sayfa
toplamda üç sayfanız var yorumlarla ilgili.
Birde içerik listelediğiniz bir sayfanız var.
Siz içerik listeleme sayfanızda yorumları listelerken boş bir kayıt ekliyor diyorsunuz.

Eğer içerik listeleme sayfanızda sırasıyla;
-içeriği gösteren kodlar
-yorumları listeleyen sayfa(include edilmiş)
-Yorum formu olan sayfa(include edilmiş ve action u da yorumekle.php olarak ayarlanmış)
böyle bir yapınız varsa sorun olmaması gerekir.
 
bekirweb' Alıntı:
mysql_ ile fonksiyonları php artık desteklemeyecek çeşitli problemlerinden ötürü. Onun yerine PDO öneriyor. Peki hocam içerik listeleme sayfasında yorumyap.php dosyanızı çağırıyormusunuz? include veya require ile.
Anladığım şu;
--Formunuzun olduğu bir sayfa
--Yorum eklem kodlarınızın olduğu bir sayfa
--Yorum listeleme yaptığınız bir sayfa
toplamda üç sayfanız var yorumlarla ilgili.
Birde içerik listelediğiniz bir sayfanız var.

Siz içerik listeleme sayfanızda konuları listelerken boş bir kayıt ekliyor diyorsunuz.

Eğer içerik listeleme sayfanızda sırasıyla;
--içeriği gösteren kodlar
--Yorumları listeleyen sayfa(include edilmiş)
--Yorum formu olan sayfa(include edilmiş ve action u da yorumekle.php olarak ayarlanmış)
böyle bir yapınız varsa sorun olmaması gerekir.
 
bekirweb' Alıntı:
bekirweb' Alıntı:
mysql_ ile fonksiyonları php artık desteklemeyecek çeşitli problemlerinden ötürü. Onun yerine PDO öneriyor. Peki hocam içerik listeleme sayfasında yorumyap.php dosyanızı çağırıyormusunuz? include veya require ile.
Anladığım şu;
--Formunuzun olduğu bir sayfa
--Yorum eklem kodlarınızın olduğu bir sayfa
--Yorum listeleme yaptığınız bir sayfa
toplamda üç sayfanız var yorumlarla ilgili.
Birde içerik listelediğiniz bir sayfanız var.

Siz içerik listeleme sayfanızda konuları listelerken boş bir kayıt ekliyor diyorsunuz.

Eğer içerik listeleme sayfanızda sırasıyla;
--içeriği gösteren kodlar
--Yorumları listeleyen sayfa(include edilmiş)
--Yorum formu olan sayfa(include edilmiş ve action u da yorumekle.php olarak ayarlanmış)
böyle bir yapınız varsa sorun olmaması gerekir.

Yorumları içeriğin altına-o içeriğe ait yorumları- listeliyorum.yani php kategorisinde ki bir konunun altına o konuyla ilgili yorum listeleniyor. Ben bu kısımda tekrardan yorumekle.php dosyasını include ile kullanmıyorum.
 
Eğer içeriği listelediğiniz sayfaya hiçbir şekilde yorumekle.php dosyasını include etmiyorsanız yorumları listeleme kısmında bir sorun olabilir. Dediğim gibi tüm yapıyı görmeden tahmini sebepler söylüyorum. O nedenle isabetli bir çözüm çok zor.
 
bekirweb' Alıntı:
Eğer içeriği listelediğiniz sayfaya hiçbir şekilde yorumekle.php dosyasını include etmiyorsanız yorumları listeleme kısmında bir sorun olabilir. Dediğim gibi tüm yapıyı görmeden tahmini sebepler söylüyorum. O nedenle isabetli bir çözüm çok zor.

Yinede çok teşekkür ederim. Include etmiyorum.eve gidince deneyecem.sağolun herşey için. Olmazsa ben araştırıyım uğraşayım.sizin zamanınızı fazla meşgul etmeyim.hiç olmadı tekrar rahatsız ederim :)
 
bekirweb' Alıntı:
Eğer içeriği listelediğiniz sayfaya hiçbir şekilde yorumekle.php dosyasını include etmiyorsanız yorumları listeleme kısmında bir sorun olabilir. Dediğim gibi tüm yapıyı görmeden tahmini sebepler söylüyorum. O nedenle isabetli bir çözüm çok zor.


Hocam acemiliğimden dolayı oluyormuş.yorumyap.php ve saydığım toplam 3 sayfa kullanılmıyor.Bütün işlemi tek detay.php sayfası içerisinde yapıyorum.Sonrasında o 3 sayfadaki kodları ben oraya kopyalayarak,formdaki action kısmını boş bırakarak yapmıştım.Okuldayken ezbere yorum yaptığım için sıkıntı oldu.İlginiz ve emeğiniz için çok teşekkür ederim.Sorunu if($_POST) ile çözdüm.
 
Geri
Üst