• 04-03-2016, 12:03:40
    #1
    F. STACK WEB + MOBILE DEV
    Merhaba arkadaşlar,

    uzun zamandır PHP ile ilgilensem de ilk defa veritabanı denemeleri yapıyorum ve bir sorunla karşı karşıyayım .

    Anasayfam bu:

    <?php include("ayarlar.php"); ?>
    <!DOCTYPE html>
    <html lang="tr">
    <head>
    	<meta charset="UTF-8">
    	<title>PHP Learn</title>
    </head>
    <body>
    	<?php
    
    		if ($_POST) {
    
    			$adsoyad = $_POST["adsoyad"];
    			$eposta = $_POST["eposta"];
    			$mesaj = $_POST["mesaj"];
    
    			if (!empty($adsoyad) && !empty($eposta) && !empty($mesaj)) {
    
    				$ekle = mysql_query("insert into mesajlar (yazan,eposta,mesaj,onay) values ('$adsoyad','$eposta','$mesaj',0)");
    
    				if ($ekle) {
    					echo "Başarılı bir şekilde eklendi";
    				} else {
    					echo "Veriler eklenemedi";
    				}
    
    			}
    
    		} else {
    
    			?>
    
    			<h1>Mesaj Gönder</h1>
    
    			<form action="" method="post">
    				<table cellpadding="5" cellspacing="5">
    					<tr>
    						<td>Ad Soyad:</td>
    						<td><input type="text" name="adsoyad"></td>
    					</tr>
    					<tr>
    						<td>E-Posta:</td>
    						<td><input type="text" name="eposta"></td>
    					</tr>
    					<tr>
    						<td>Mesaj:</td>
    						<td><textarea name="mesaj" cols="30" rows="5"></textarea></td>
    					</tr>
    					<tr>
    						<td></td>
    						<td><input type="submit" value="Gönder"></td>
    					</tr>
    				</table>
    			</form>
    
    			<?php
    		}
    
    	?>
    </body>
    </html>
    veriler eklendiğinde de şöyle bir sorun ortaya çıkıyor



    veritabanı bağlantısını yaptığımda ayarlar.php'de

    mysql_query("SET CHARACTER SET latin5");
    şöyle bir fonksiyon olsa da maalesef Türkçe karakterlerle eklenmiyor veri. Ek olarak veri tabanında latin_5_turkish_ci seçili

    Nasıl çözebilirim bu sorunu?
  • 04-03-2016, 12:59:03
    #2
    Tonks adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    uzun zamandır PHP ile ilgilensem de ilk defa veritabanı denemeleri yapıyorum ve bir sorunla karşı karşıyayım .

    Anasayfam bu:

    <?php include("ayarlar.php"); ?>
    <!DOCTYPE html>
    <html lang="tr">
    <head>
    	<meta charset="UTF-8">
    	<title>PHP Learn</title>
    </head>
    <body>
    	<?php
    
    		if ($_POST) {
    
    			$adsoyad = $_POST["adsoyad"];
    			$eposta = $_POST["eposta"];
    			$mesaj = $_POST["mesaj"];
    
    			if (!empty($adsoyad) && !empty($eposta) && !empty($mesaj)) {
    
    				$ekle = mysql_query("insert into mesajlar (yazan,eposta,mesaj,onay) values ('$adsoyad','$eposta','$mesaj',0)");
    
    				if ($ekle) {
    					echo "Başarılı bir şekilde eklendi";
    				} else {
    					echo "Veriler eklenemedi";
    				}
    
    			}
    
    		} else {
    
    			?>
    
    			<h1>Mesaj Gönder</h1>
    
    			<form action="" method="post">
    				<table cellpadding="5" cellspacing="5">
    					<tr>
    						<td>Ad Soyad:</td>
    						<td><input type="text" name="adsoyad"></td>
    					</tr>
    					<tr>
    						<td>E-Posta:</td>
    						<td><input type="text" name="eposta"></td>
    					</tr>
    					<tr>
    						<td>Mesaj:</td>
    						<td><textarea name="mesaj" cols="30" rows="5"></textarea></td>
    					</tr>
    					<tr>
    						<td></td>
    						<td><input type="submit" value="Gönder"></td>
    					</tr>
    				</table>
    			</form>
    
    			<?php
    		}
    
    	?>
    </body>
    </html>
    veriler eklendiğinde de şöyle bir sorun ortaya çıkıyor



    veritabanı bağlantısını yaptığımda ayarlar.php'de

    mysql_query("SET CHARACTER SET latin5");
    şöyle bir fonksiyon olsa da maalesef Türkçe karakterlerle eklenmiyor veri. Ek olarak veri tabanında latin_5_turkish_ci seçili

    Nasıl çözebilirim bu sorunu?
    Notepad++ ile Bom'suz UTF-8 olarak dosyayı dönüştürün.
    Veritabanı yapınız UTF-8 olsun.

    Bu ikisi haricinde hiç bir şey yapmanıza gerek yok.
  • 04-03-2016, 13:02:09
    #3
    F. STACK WEB + MOBILE DEV
    emerald adlı üyeden alıntı: mesajı görüntüle
    Notepad++ ile Bom'suz UTF-8 olarak dosyayı dönüştürün.
    Veritabanı yapınız UTF-8 olsun.

    Bu ikisi haricinde hiç bir şey yapmanıza gerek yok.
    2. dediğinizi anlamadım hocam?
  • 04-03-2016, 13:07:54
    #4
    Tonks adlı üyeden alıntı: mesajı görüntüle
    2. dediğinizi anlamadım hocam?
    MySql veritabanı ve tablo yapınız UTF-8 generel-ci ya da turkish-ci olsun. İşlemler menüsünden çevirme işlemi yapabilirsiniz.
  • 04-03-2016, 13:49:03
    #5
    1. yapılması gereken:
    Veritabanını seçtikten sonra UTF-8 olarak charseti değiştirin. (İşlemler bölümünden)
    2. yapılması gereken:
    Tablolaların yapısından charseti UTF-8 olarak güncelleyin.
    3. yapılması gereken:
    mysql_query kodunuzu UTF-8 olarak güncelleyin, örnek kod aşağıdadır.
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION = 'utf8_general_ci'");
    4. yapılması gereken:
    PHP dosyanızı Notepad++ ile açıp, önce tüm içeriği kesip (charset değişeceğiniz için karakter sorunu olabilir diye.), kodlama bölümünden BOM olmadan UTF-8 olarak kodla. seçeğini aktif edip, kodlarınızı yapıştırın.

    Bu şekilde Türkçe karakter sorunu yaşamazsanız.