• 09-08-2016, 12:59:03
    #1
    Merhabalar;

    hazırladığım scriptteki veri tabanına eklediğim bütün verilerin Türkçe karekterleri hatalı olarak yazıyor phpmyadminde düzenlediğim zaman Türkçe karekterleri düzeltiyor sizce bunun sebebi nedir?
    bağlantı kodum:
    <?php
    
    $user="root";
    $pass="";
    $dbn="mersinili";
    $db = new PDO("mysql:host=localhost;dbname=$dbn", $user, $pass);
    $dsn = "mysql:host=localhost;dbname=$dbn";
    
     
    try {
        $db = new PDO($dsn, $user, $pass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    ?>
    veri eklediğim kodlar:

    <?php
    include '../ayar.php';
    include '../i.php';
    ?>
    <!doctype html>
    <html lang="tr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    .menu{
    	border: 1px solid #030057;
    	width: 150px;
    	float: left;
    	margin-right: 5px;
    }
    .islem{
    	width: 1000px;
    	border: 1px solid #990002;
    	float: left;
    }
    .habermetin {
    	width: 800px;
    	height: 600px;
    }
    </style>
    </head>
    
    <body>
    <div class="menu">
    <ul><li>haberler</li><li>gezi rehberi</li><li>ilanlar</li><li>firmalar</li><li>uyeler</li></ul>
    </div>
    <div class="islem">
    <?php
    if(empty($_POST['baslik'])){
    ?>
    <span>&lt;img class="manset" src="" width="600" height="300" alt=""/&gt;</span><br>
    <span>&lt;p class="haberozet"&gt;&lt;/p&gt;</span><br>
    <span>&lt;h2&gt;ARA BAŞLIK&lt;/h2&gt;</span><br>
    <span>&lt;p class="haber"&gt;&lt;/p&gt;</span><br>
    
    
    <form action="haberekle.php" method="post" enctype="multipart/form-data"><ul>
    <li><input value="başlık" type="text" name="baslik"></li>
    <li><input value="etiket" type="text" name="etiket"></li>
    <li><textarea class="habermetin" name="haber"></textarea></li>
    <li>
    <?php
    	foreach($db->query('SELECT * FROM hkat') as $row) {
        //echo $row['baslik'] . '<br/>';
        ?>
      <p>
        <label>
          <input type="radio" name="id" value="<?php echo $row['id'] ?>" id="RadioGroup1_0">
          <?php echo $row['baslik'] ?></label>
        <br>
      </p>
      <?php } ?>
    </li>
    <li>küçük resim<input type="file" name="kfoto"></li>
    <li>büyük resim<input type="file" name="bfoto"></li>
    <li><input type="submit"></li></form>
    </ul>;
    
    <?php
    
    }else{  
                $krs=$rs;
                $brs=$rs;
                //$_POST['kfoto']
                //$_POST['bfoto']
                //$kfoto=$_FILES['kfoto'];
                //print_r($kfoto);
                if ($_FILES['kfoto']['size']=="0") {
                 $krs="";
               }
                if ($_FILES['bfoto']['size']=="0") {
                 $brs="";
               }
                $baslik = $_POST['baslik'];
                $haber = $_POST['haber'];
                $haber = addslashes($haber);
                $yazar = "admin";
                $kat = $_POST['id'];
                $etiket = $_POST['etiket'];
                       	if($db->exec("INSERT INTO haber (id, baslik, haber, yazar, tarih, kfoto, bfoto, etiket, kat) VALUES ('', '$baslik', '$haber', '$yazar',CURRENT_TIMESTAMP, '$krs', '$brs', '$etiket', '$kat')")){
        					$id = $db->lastInsertId();
        					move_uploaded_file($_FILES['kfoto']['tmp_name'], "$hkfd"."$krs");
                	move_uploaded_file($_FILES['bfoto']['tmp_name'], "$hbfd"."$brs");
        					echo 'Yeni eklenen haberin IDsi: ' . $id;
    					}else{
    
        					echo 'Yeni kayıt eklerken bir hata meydana geldi.'."<br>";
                  echo "başlık: ".$baslik."<br>";
                  echo "haber: ".$haber."<br>";
                  echo "kategori: ".$kat."<br>";
                  echo "etiket: ".$etiket."<br>";
    					}
                
    }
    $db = null;
    ?>
    </div>
    </body>
    </html>
    bu arada xammp localhostta çalışıyorum ve sublime-text editöründe sayfalarımı utf8 olarakkodladım ve veritabanın da charset i utf8 turkish ci olarak seçtim.
  • 09-08-2016, 13:06:11
    #2
    Üyeliği durduruldu
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");

    bu kodu yapıştır bide eklerken veritabanında utf8 turkis_ci yi seçersen sorun düzelir
  • 09-08-2016, 14:41:48
    #3
    yazilimcoder adlı üyeden alıntı: mesajı görüntüle
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");

    bu kodu yapıştır bide eklerken veritabanında utf8 turkis_ci yi seçersen sorun düzelir
    verdiğin kodlar eski mysql_connect için geçerli arkadaş PDO bağlantı kullanıyor.

    <?php
    
    $user="root";
    $pass="";
    $dbn="mersinili";
    $db = new PDO("mysql:host=localhost;dbname=$dbn;charset=utf8", $user, $pass);
    $dsn = "mysql:host=localhost;dbname=$dbn";
    
     
    try {
        $db = new PDO($dsn, $user, $pass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    ?>
    kodlarını bu şekilde düzenlersen sorunu çözüyor olman gerekir.
  • 09-08-2016, 14:47:09
    #4
    picpoket adlı üyeden alıntı: mesajı görüntüle
    verdiğin kodlar eski mysql_connect için geçerli arkadaş PDO bağlantı kullanıyor.

    <?php
    
    $user="root";
    $pass="";
    $dbn="mersinili";
    $db = new PDO("mysql:host=localhost;dbname=$dbn;charset=utf8", $user, $pass);
    $dsn = "mysql:host=localhost;dbname=$dbn";
    
     
    try {
        $db = new PDO($dsn, $user, $pass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    ?>
    kodlarını bu şekilde düzenlersen sorunu çözüyor olman gerekir.
    malesef hiçbir değişiklik olmadı
  • 09-08-2016, 20:04:03
    #5
    konu günceldir
  • 10-08-2016, 00:24:37
    #6
    VeLi33 adlı üyeden alıntı: mesajı görüntüle
    konu günceldir


    <?php
     
    $user="root";
    $pass="";
    $dbn="mersinili";
    $db = new PDO("mysql:host=localhost;dbname=$dbn;charset=utf8", $user, $pass);
    $dsn = "mysql:host=localhost;dbname=$dbn;charset=utf8";
     
      
    try {
        $db = new PDO($dsn, $user, $pass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    ?>

    birde böyle deneyebilirmisin ?
  • 10-08-2016, 16:29:28
    #7
    picpoket adlı üyeden alıntı: mesajı görüntüle
    <?php
     
    $user="root";
    $pass="";
    $dbn="mersinili";
    $db = new PDO("mysql:host=localhost;dbname=$dbn;charset=utf8", $user, $pass);
    $dsn = "mysql:host=localhost;dbname=$dbn;charset=utf8";
     
      
    try {
        $db = new PDO($dsn, $user, $pass);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    ?>

    birde böyle deneyebilirmisin ?
    teşekkürler şimdi düzeldi.