Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Php veri tabanına veri ekleme.

Merhaba arkadaşlar ben php şöyle bir kod yazarak mysql a veri eklemye çalışıyorum ama beceremedim acaba nerden hata yaptım bi incleyebilirmsiniz.

<?php
if($_SESSION["oturum"]){

if($_POST["yapilacaklar"] == "Görevi Ekle" ){

	$kim = $_SESSION["id"];
	$konu = $_POST["konu"];
	$not = $_POST["not"];
	$tarih = $_POST["tarih"];
	
		if(!empty($konu) && !empty($tarih) && !empty($not)){
		
		$notuekle = mysql_query("INSERT INTO sistem_yapilacak (kim,konu,not,tarih) VALUES ('".$kim."','".$konu."','".$not."','".$tarih."')");
			
			if($notuekle){
			echo '
			<fon color="green" size="4">Görev Eklendi.</font>			
			';
			}else{
			echo '<font color="red" size="4">Görev eklenemedi.</font>';
			}
		
		}else{
		echo '<br /><center><font color="red" size="4">Dostum Boş Yer Bırakma.</font></center>
		<meta http-equiv="refresh" content="1;URL=index.php?git=yapilacak">
		';}
}else{

echo '
<div class="padding-top:10px;"></div>
<div class="temizle"></div>
<form action="" method="post">
<table width="450" border="0" align="center">
<tr>
<td>Konu:</td>
<td><input type="text" name="konu" style="margin-top: 2px ; width:220px; height: 20px; background-color:#40b2f9; border: 1px solid; border-color:#22a0ee;" /></td>
</tr>
<tr>
<td>Tarih</td>
<td><input type="text" name="tarih" style="margin-top: 2px ; width:220px; height: 20px; background-color:#40b2f9; border: 1px solid; border-color:#22a0ee;" value="'.$tarih.'" /></td>
</tr>
<tr>
<td>Görev Notu:</td>
<td><textarea rows="5" cols="35" name="not" ></textarea></td>
</tr>
<tr>
</table>
<div id="daralt" style="width:450px; text-align:center;">
<div class="sol">
<font color="green" size="2">Tarihini düzgün seçmeyi unutma dostum.!</font>
</div>
<div class="sag">
<input type="submit" name="yapilacaklar" value="Görevi Ekle" />
</div>
</div>
</form>

';


}


}else{
echo 'Bu sayfayı görebilmek için admin hesbaı ile giriş yapmanız gerekmektedir.';
}
?>

  • umarım kodlar direkt böyle değildir ? xss açıklarına, sql injection'a olduğu gibi açık.Mysql yerine mysqli kullanmanızı tavsiye ederim.
    ayro 10 yıl önce yazdı
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    tapsin adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    147 cevap - 0 soru
    $kim boş geliyor ondan.. Görevi yerine getiremiyor..
    • tapsin adlı üyenin fotoğrafı tapsin
      $notuekle = mysql_query("INSERT INTO sistem_yapilacak set kim='".$kim."', konu='".$konu."', not='".$not."', tarih='".$tarih."' ");

      bu kodu bu şekle getir daha hızlı çalışır.
      10 yıl önce yazılmış
    • tapsin adlı üyenin fotoğrafı tapsin
      Sonra burada

      <input type="text" name="tarih" style="margin-top: 2px ; width:220px; height: 20px; background-color:#40b2f9; border: 1px solid; border-color:#22a0ee;" value="'.$tarih.'" />


      $tarih yazmışsın value kısmına bu bir değişken ise bu değişken nereden geliyor..
      10 yıl önce yazılmış
    • Kaptanweb adlı üyenin fotoğrafı Kaptanweb
      o değişkenlerin hepsi atanmış durumda değişkenler boş değil yani hepsi kullanılıyor hatta değişkenleri mesaj gönderilmedi döngüsünün içine yazdım orda dolu olarak geldi boş olan değişkenim yok ama nerde hata yaptım bilmiyorum veri tabanına yazmıyor.
      10 yıl önce yazılmış
    • tapsin adlı üyenin fotoğrafı tapsin
      Uzak masa üstü ile bakabilirim.
      10 yıl önce yazılmış

Cevaplar

  • Kaptanweb adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    9 cevap - 12 soru
    aldığım hatayıda söyleyim. Görevi eklemeye çalışınca görev eklenemedi diyor yani hata orlarda bir yerlerde.

    Şunlarıda ekleyim bu aslında bir include sayfası mysql bağlanmışsın felan diyebilirsiniz include olarak kullanılan sayfada mysql a bağlanma kodları mevcut. Aslında siz bana çalışan bu tarz bir kod verirseniz sevinrim ama işte dediğim gibi hata o mysql_query bölümünde felan sanırım.
  • 1
    arifsami adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    5 cevap - 8 soru
    yazdığın insert komutunu karşılayan veritabanındaki alanları kontrol et
    mysql_query("INSERT INTO sistem_yapilacak (kim,konu,not,tarih) VALUES ('".$kim."','".$konu."','".$not."','".$tarih."')");
    

    mesela : '".$kim."','".$konu."','".$not."','".$tarih."' bu alanların karşılığı tam olarak ne,
    $kim char mı, int mi? $tarih date mi, vs.. bunun gibi..