TinyMCE ile MySQL Veritabanına Veri Girişi (PHP için)

PHP ile TinyMCE Kullanarak Yönetim Paneli Hazırlamak.

TinyMCE ile MySQL veritabanına veri girişi sırasında en büyük sorunlardan birisi türkçe karakter sorunudur. Yazıda Türkçe karakterlerin MySQL veri tabanına düzgün bir şekilde kaydedilmesi anlatılmıştır.

TinyMCE kullanımı yazısında TinyMCE’nin nasıl kullanılacağı anlatıldı. TinyMCE’nin olduğu formun action bölümünde bilgial.php yazıldığını varsayalım ve bilgial.php sayfasını oluşturalım.

Öncelikle MySQL veritabanı bağlantısı için baglanti.php isimli bir sayfa oluşturulmalı ve sayfaya include ile eklenmelidir. Aşağıda baglanti.php için MySQL veritabanı bağlantısı kodları bulunmaktadır.

<?php
$baglan=mysql_connect(”localhost”,”root”);
if(!($baglan))
{  die(’Veritabani baglantisi kurulamadi: ‘.mysql_error()); }

mysql_select_db(”ruya6″, $baglan);

setlocale(LC_COLLATE, ‘turkish’);
mysql_query(”SET NAMES ‘latin5′”); 
?>

Bağlantını son iki satırında MySQL veritabanında Türkçe karakterler kullanılacağı beliritiliyor.

Veritabanı oluşşturuken ise veritabanı dili ve tabloların dili için(sadece veritabanı yeterli olmayabilir)  utf8_turkish_ci kullanılmalıdır. Ayrıca web sayfalarında aşağıdaki metayı kullanarak sayfalar için Türkçe dil desteği sağlayın.

<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-9″ />

MySQL Veritabanına Bilgileri Yazmak için gerekli kod(bilgial.php):

<?php
include(”baglanti.php”);
  /*Veritabanı bağlantısı için sayfa çağrışıyor.*/

$icerik=$_POST[”elm1″];
/*TinyMCE nin bulunduğu metin alanından(elm1) veriler post ile alınıyor*/

$eski = array(”ç”,”Ç”, “ö”,”Ö”,”ü”,”Ü”);
$yeni   = array(”ç”,”Ç”, “ö”,”Ö”,”ü”,”Ü”);
$icerik = str_replace($eski, $yeni, $icerik);
/*TinyMCE içeriği html’ye çevirir. Bu yüzden mesela ç harfini ç olarak çevirir. Post ile içerik alındığı zaman yukardaki üç satır sayesinde Türkçe karakterler normal haline çevrilip veritabanına kaydedilir. Mysql’de  utf8_turkish_ci  kullanıldığı için de Türkçe karakterler normal bir şekilde yazılacaktır. Veriler web sayfasına yazılırken de dil karakter seti olarak iso-8859-9 kullanıldığı için Türkçe karakterler sayfada düzgün görünecektir.*/


mysql_query(”INSERT INTO `nesne` (`icerik` ) VALUES ( ‘$icerik’ )”);
/*içerik nesne tablosunun içerik alanına yazdırılıyor.*/

/*Aşağıdaki satırlar da içeriği aynı sayfaya yazdırıyor. Kullanılmasa da olur.*/
$x=mysql_query(”select * from `nesne`”);
while($row = @mysql_fetch_array($x))
  {
  echo $row[’nesne_id’] . ” ” . $row[’icerik’];
  echo “<br />”;
 }
?>

Not: Yukardaki kodlar bu blogta yayınlanırken tırnak işaretlerinde bozulmalar olabilir. Ya da php sürümüne göre tek tırnak veya çift tırnak değişebilir.

str_replace kullanımı

5 Yorum “TinyMCE ile MySQL Veritabanına Veri Girişi (PHP için)”

  1. […] TinyMCE ile oluşturulan içeriğin MySQL veritabanına kaydedilmesi ve Türkçe karakter sorununu… […]

  2. süper anlatmıssın gerecekten tşkler

  3. üstad ben ne yaptıysam editorden gönderdiğim bilgileri mysql de ki table lara yazdıramadım.Localhosttan wamp server kullanıyorum.Bana deneme adı altında bir sql tablosu yaratabilirmisin? çünkü sanırım ben onu becermedim zira tüm php kodlarım hatasız çalışıyor.yani mysql de deneme db sine nesne tablosu açıyorum onun içinede içerik tablosu açmam gerekiyor sanırım ama warcharmı ne olacak bilemediğim için işin içinden çıkmadım bir türlü.şimdiden teşekkürler

  4. Kodları bu sayfadan kopyala yapıştır yapmışsan tek ve çift tırnakları silip tekrar yaz. Ayrıca bende aynı hata ile karşılaşmıştım. Aşağıdaki kodda nesne ve icerik tek tırnak içinde değil. Tek tırnağa benzeyen bi işaret. alt gr ile birlikte virgül tuşuna 2 kere basınca çıkar. Ya da mysql içinde herhangi bir sql ifadesinden kopyalayıp alabilirsin.

    mysql_query(”INSERT INTO `nesne` (`icerik` ) VALUES ( ‘$icerik’ )”);

  5. mysql_query(”INSERT INTO `nesne` (`icerik` ) VALUES ( ‘$icerik’ )”);

    dan önce

    CREATE TABLE `NESNE` diye önce bir tablo oluşturulması lazım diye biliyorum. ben yeniyim. kendi paneli oluşturmaya çalıştırıyorum yardımcı olurmusunuz.? eksik bilgiyi tamamlarmısınız.

Yorum Yapın