• 12-05-2015, 13:55:11
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba,

    Basit bir login sayfası hazırladım, aşağıdaki şekilde

    session_start();
    ob_start();
    
    $kullanici_adi = htmlentities(mysql_real_escape_string($_POST["kullanici_adi"]));
    $parola = md5(mysql_real_escape_string($_POST["parola"]));
    
    $sorgula = mysql_query("SELECT * FROM xxx WHERE yyy='$kullanici_adi' and parola='$parola'") or die (mysql_error());
    
    $uye_varmi = mysql_num_rows($sorgula);
    if($uye_varmi > 0)
    {
    $_SESSION["giris"] = "true";
    $_SESSION["kullanici_adi"] = $kullanici_adi;
    $_SESSION["parola"] = $parola;
    
    setcookie("kullanici_adi",$kullanici_adi,time()+60*60*24);
    setcookie("parola",$parola,time()+60*60*24);
    .
    .
    .
    .
    .
    kullanıcı adında türkçe karakter yoksa sorun yok ama kullanıcı adında türkçe karakter olduğunda yanlış olarak yorumluyor.

    veritabanımda kullanıcı adının olduğu yerde karşılaştırmam "utf8_turkish_ci" şeklinde (utf8_general_ci olduğunda da hata veriyor)

    htmlentities fonksiyonunu kullanmadığımda problem olmuyor (türkçe karakterle giriş yapıyor) bu fonksiyonu kullanmazsam çok mu güvensiz olur? bu fonksiyonla birlikte türkçe karakter kullanabilme şansım var mı?

    ayrıca extra güvenlik için ne tavisye edersiniz?
  • 12-05-2015, 15:13:24
    #2
    Üyeliği durduruldu
    <?php
    if ($_POST) {
        $mail = mysql_real_escape_string(p('email'));
        $sifre = mysql_real_escape_string(md5(p('password')));
        if (!$mail || !$sifre) {
            echo "<div class=\"alert alert-danger\">Tüm alanları doldurunuz!..</div>";
        }elseif (!isValidEmail($mail)) {
            echo "<div class=\"alert alert-danger\">Lütfen e-mail adresinizi kontrol ediniz!..</div>";
            }else {
                $sql = mysql_query("select * from kullanici where mail='".$mail."' && sifre='".$sifre."'");
                if (mysql_num_rows($sql)) {
                    $_SESSION["a-login"] = "true";
                    $_SESSION["user"] = $mail;
                    $_SESSION["pass"] = $sifre;
                    echo "<div class=\"alert alert-success\">Giriş Yapıldı. Yönlendiriliyorsunuz...</div>";
                    yonlendir('index.php?do=dashboard',2);
                }else {
                    echo "<div class=\"alert alert-danger\">Lütfen girdiğiniz bilgileri kontrol ediniz!..</div>";
                }
            }
        }
    ?>
    Merhabalar,

    Yukarıda ki örnekten yola çıkarak biraz değişiklik yapabilirsin belki yardımcı olur sana.

    İyi Çalışmalar.
  • 12-05-2015, 18:32:15
    #3
    Bu kodla benim kodum neredeyse aynı. Bunda sadece bir iki kontrol var. Bende buna java ile kontrol koydum. Sorumun yanıtı bu değil sanırım.

    htmlentities fonksiyonu türkçe karakterlerde hata verdiriyor. Dolayısıyla bunu kullanıcı adında kullanamıyorum. Buna alternatif bir öneri benim sorunum. Alternatif bir güvenlik önerisi vb. yoksa bu kodların benim kodlarımdan bir farkı yok.
  • 12-05-2015, 21:20:27
    #4
    Dosyayı notepad++ ile açıp utf8 kodlamasına dönüştür diyip dener misini?
  • 12-05-2015, 21:52:47
    #5
    Sable adlı üyeden alıntı: mesajı görüntüle
    Dosyayı notepad++ ile açıp utf8 kodlamasına dönüştür diyip dener misini?
    notpad ++ ile utf 8 bomsuz çalışma dosyam

    sanırım htmlentities fonksiyonu türkçe karakteri desteklemiyor