İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

DB'ye html kod gönder?

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhaba arkadaşlar bir script yazmaktayım bir sorunla karşılaştım admin panelde reklamlar bulunmakta reklam kodlarını db ye elle girdim düzenlemeye çalıştığımda düzenleme yapmıyor. nedeni ise textarea 'ya girdiğim html kodlar başka bir değer girdiğimde yazı sayı gibi güncelliyor.

alan türü varchar 255 bunu mu değiştirmeliyim acaba? değiştirmeliysem hangi türü kullanmalıyım?

yardım ederseniz sevinirim teşekkürler
 

Loi

0
İyinet Üyesi
Katılım
13 Kasım 2006
Mesajlar
6,192
Reaction score
44
Konum
localhost
Anlaşılmıyorki mevzu, biraz daha açıklasan. Nasıl sayı oluyor?
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Sorunu bende tam olarak anlayamadım ama varchar 255 ile o satıra 255'den fazla karakterde giriş yapamazsın. Belki bundan kaynaklanıyor olabilir.

O bölümü text olarak değiştirip bir deneyebilirsiniz.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
69
Konum
Sakarya
255 i text yapman gerekiyor.
Ama sorun sanirim karakter kodunda.
Veritabaninin charset i ile reklam girisi yaptigin sayfanin ve formun charsetinin uyusmasi gerekiyor.
Ornegin veritabanin utf-8 ise formun icine accept-charset="utf-8" ekle.
<form name="..." method="get" action="" accept-charset="utf-8">
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
iyinet dediğin şekilde yaptım olmadı.

yagmayok şöyle bir kod vermişti onu koymuştum kaldırdım belki bundandır diye gene olmadı.

PHP:
mysql_query("SET NAMES 'latin5'");    
mysql_query("SET CHARACTER SET 'latin5'");    
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");

sayfalarım


reklam_duzenle.php


PHP:
<?php
include ("ayar.php");
?>
<html>

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta http-equiv="Content-Language" content="tr">
<link rel="stylesheet" type="text/css" href="css/panel.css">
  <style type="text/css">

body {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	margin: 0;
	font-size: 80%;
	font-weight: bold;
	background-image:url(images/bg_menu.jpg)
SCROLLBAR-BASE-COLOR: #FFFFFF;
SCROLLBAR-FACE-COLOR: #E158A1;
SCROLLBAR-ARROW-COLOR: #EEEEEE;
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #EEEEEE;
SCROLLBAR-HIGHLIGHT-COLOR: #AC9E91};
SCROLLBAR-DARKSHADOW-COLOR: #444488;
	}
  </style>
</head>

<body style="background-image: url(''); background-color:#F9F0F9">

<br><br><br><table width="600" border="0" align="center" cellpadding="4" cellspacing="1" class="tbl" id="table1">
  <tr>
    <td class="tbbaslik" style="background-image: url('../images/bg_kose.gif')" width="589" colspan="3">
	<p align="center"><b>Reklam Düzenle</b></td>
  </tr>
  <tr>
    <td width="588" colspan="3">
	<p align="left"><font color="#FFFFFF">
	<span style="font-size:10pt;font-family:Tahoma;font-weight:700">
			 </span></font></p>
			</td>
  </tr>
  <tr>
<?php
$sorgu = mysql_query("SELECT * FROM reklam WHERE id='$_GET[id]'");
while ($cek = mysql_fetch_array($sorgu)) {
$id = $cek[id];
$reklam_adi = $cek[reklam_adi];
$reklam_kodu = $cek[reklam_kodu];
echo "<form action='reklamduzenle.php?id=$cek[id]' method='post'><td width='139'>
	<p align='right'>
	<font color='#E158A1'><b>
			<span style='font-size:10pt;font-family:Tahoma;'>
			Reklam Adı</span></b><span style='font-size:10pt;font-family:Tahoma;font-weight:700'>
			</span>
			</font>
			</td>
    <td width='-1'>
	<font color='#E158A1'><b>
			<span style='font-size:10pt;font-family:Tahoma;'>
			:</span></b><span style='font-size:10pt;font-family:Tahoma;font-weight:700'>
			</span>
			</font>
			</td>
    <td width='432'>
	<input type='text' name='reklam_adi' size='21' value='$cek[reklam_adi]'></td>
  </tr>
  <tr>
    <td width='139'>
	<p align='right'><font color='#E158A1'><b>
			<span style='font-size:10pt;font-family:Tahoma;'>
			Reklam Kodu</span></b></font></td>
    <td width='-1'>
	<font color='#E158A1'><b>
			<span style='font-size:10pt;font-family:Tahoma;'>
			:</span></b><span style='font-size:10pt;font-family:Tahoma;font-weight:700'>
			</span>
			</font>
			</td>
    <td width='432'>
    <textarea name='reklam_kodu' cols='28' rows='7' size='100' >$cek[reklam_kodu]</textarea></td>
  </tr>
  <tr>
    <td width='139'></td>
    <td width='-1'></td>
    <td width='432'><input type='submit' value='Güncelle' ></td></form>";
}
?>
    

  </tr>
  <tr>
    <td width="139">
	 </td>
    <td width="-1">
	 </td>
    <td width="432">
	 </td>
  </tr>
  	</table>



</html>



reklamduzenle.php


PHP:
<?php
include "ayar.php";

$id=$_GET['id'];
$reklam_adi=$_POST['reklam_adi'];
$reklam_kodu=$_POST['reklam_kodu'];

$guncelle = mysql_query("UPDATE reklam SET reklam_adi='$reklam_adi',reklam_kodu='$reklam_kodu' WHERE id='$_GET[id]' ");

if (!$guncelle){
echo "<br><br><br><table width='600' border='0' align='center' cellpadding='4' cellspacing='1' class='tbl' id='table1'>
  <tr>
    <td class='tbbaslik' style='background-image: url('url(')'../images/bg_kose.gif')' width='589' colspan='3'>
	<p align='center'><b>Reklam Düzenle</b></td>
  </tr>
  <tr>
    <td width='588' colspan='3'><br>
	<p align='left'><font color='#E158A1'>
	<span style='font-size:10pt;font-family:Tahoma;font-weight:700'>
			<center>Güncellenemedi<center></span></font></p>
			</td>
  </tr>
  	</table><META http-equiv=refresh content=\"1;url=reklamlar.php\">";

} else {
echo "<br><br><br><table width='600' border='0' align='center' cellpadding='4' cellspacing='1' class='tbl' id='table1'>
  <tr>
    <td class='tbbaslik' style='background-image: url('url(')'../images/bg_kose.gif')' width='589' colspan='3'>
	<p align='center'><b>Reklam Düzenle</b></td>
  </tr>
  <tr>
    <td width='588' colspan='3'><br>
	<p align='left'><font color='#E158A1'>
	<span style='font-size:10pt;font-family:Tahoma;font-weight:700'>
			<center>Güncellendi<center></span></font></p>
			</td>
  </tr>
  	</table><META http-equiv=refresh content=\"1;url=reklamlar.php\">";

}

?><body bgcolor="#000000" background="images/arkaplan.jpg" style="background-color: #F9F0F9; background-image: url('')">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta http-equiv="Content-Language" content="tr">
<link rel="stylesheet" type="text/css" href="css/panel.css">
    <style type="text/css">

body {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	margin: 0;
	font-size: 80%;
	font-weight: bold;
SCROLLBAR-BASE-COLOR: #FFFFFF;
SCROLLBAR-FACE-COLOR: #E158A1;
SCROLLBAR-ARROW-COLOR: #EEEEEE;
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #EEEEEE;
SCROLLBAR-HIGHLIGHT-COLOR: #AC9E91};
SCROLLBAR-DARKSHADOW-COLOR: #444488;
	}
  </style>


karşılaştırmam : latin5_turkish_ci

utf8 de denedim latin5_turkish_ci de denedim olmadı.

yardım ederseniz sevinirim teşekkürler
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Peki post ile çekilen veriyi yazdırdığınıda form'da yazdığın gibi mi çıkıyor ! Bunu echo ile alarak bir denetler misin...
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
html kod girmediğimde normal yazı vs girdiğimde yazıyor o şekilde sorun yok.

Onu kastetmedim...
Html olarak forma girdikten sonra post olarak gönderdiğin sayfada "reklamduzenle.php"

PHP:
<textarea name='reklam_kodu' cols='28' rows='7' size='100' ><? echo $_POST['reklam_kodu']; ?></textarea>

şeklinde bi çek. orada formda girdiğin şekli (HTML) ile mi çıkıyor. Öncelikle orada sorun olup olmadığını bir tam olarak anlayalım. Orada sorun yoksa veri yazdırma bölümünde var demektir.

Bir dener misin !
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
html kod girip formu gönderdikten sonra html kodu db'ye yazmıyor ama html kod yerine yazı yazsam db'ye yazıyor.
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
konudan bişey anlamadım, sorun olduğu durumda girdiğin veri ile sorun olduğu durumda veritabanına kayıt yapılan hatalı veriyi örnekleyebilirsen sorunu söyleyeyim.

anlamadığım halde genel olarak sorun olabilecek şeyler hakkında bilgi vereyim;

mysql_real_escape_string ile verilerinizi escape etmemişsiniz. reklam kodunda tırnak geçerse kodun hata verecektir.

Magic Quotes açık olabilir, html kodlarını bozuyordur.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhabalar tırnaksız denedim oldu acaba şu an localhostta olduğu için mi tırnaklı hali hata verdi? hostingde henüz denemedim
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
başka bir forumda yardım etti sağolsun kullanmam gereken kod

addslashes($reklam)

ilgilenen arkadaşlara teşekkürler
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
sorununu çözmüş olabilir çünkü unicode kullanmıyorsundur, karakter setini değişirsen sorun yaşarsın.

doğru olan benim önerdiğim fonksiyondur.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst