• 11-12-2007, 22:00:58
    #1
    Üyeliği durduruldu
    Mysql e yeni başladım. Böyle basit bişey yazdım. Belki yeni başlayacaklar için basit güzel bir kaynak olabilir .Tabiki bir sorum var.
    Bu güvenlik için hangi kodları kullanmalıyız
    clean_data fonksiyonu koydum bir tane bu yeterlimi yoksa daha ayrıntılı bişeylermi yapmak lazım?
    Kullandığınız hazır fonksiyonlar varmı ?
    CREATE TABLE `form` (
      `id` int(11) NOT NULL auto_increment,
      `ad` varchar(30) collate latin1_general_ci NOT NULL,
      `soyad` varchar(30) collate latin1_general_ci NOT NULL,
      `mail` varchar(30) collate latin1_general_ci NOT NULL,
      `cep` double NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
    <?php
    // Temizleme
    function clean_data($string)
    {
        if (get_magic_quotes_gpc()) {
            $string = stripslashes($string);
        }
        $string = strip_tags($string);
        return mysql_real_escape_string($string);
    }
    $soyad = $_POST["soyad"];
    $ad = $_POST["ad"];
    $mail = $_POST["mail"];
    $telefon = $_POST["telefon"];
    if (!isset($_POST['gonderim'])) {
    ?>
    <form action="<?php echo $PHP_SELF; ?>" method="post">
    Ad <input name="ad" type="text" size="6" maxlength="16" />
    Soyad <input name="soyad" type="text" size="6" maxlength="16" />
    Mail <input name="mail" type="text" size="6" maxlength="16" />
    Telefon <input name="telefon" type="text" size="6" maxlength="16" />
    <input type="submit" name="gonderim" value="Gönder" />
    </form>
    <?
    } else {
        $ad = clean_data($ad);
        $soyad = clean_data($soyad);
        $mail = clean_data($mail);
        $cep = clean_data($cep);
        mysql_connect("localhost", "root", "") or die(mysql_error());
        mysql_select_db("deneme") or die(mysql_error());
        $query = "INSERT INTO form (ad, soyad, mail, cep) VALUES('$ad', '$soyad', '$mail', '$telefon')";
        mysql_query($query);
        echo $ad . "<br>";
        echo $soyad . "<br>";
        echo $mail . "<br>";
        echo $telefon . "<br>";
    }
    ?>
  • 12-12-2007, 06:15:29
    #2
    mysql_real_escape_string tek başına yeterli gibi gözüküyor, "select, from" gibi kelimeleri replace edersen zararını görmezsin.
  • 13-12-2007, 00:02:35
    #3
    Üyeliği durduruldu
    verilern boş olup olmadıgı
    verilerin içerisinde html karakterlerini aramak
    sql a kaydederken addslashes(mysql_real_escape_string($data)) önerimdir
    mail geçerliliğini kontrol etmek
    veri uzunluklarını tespit etmek vs vs
  • 14-12-2007, 14:06:29
    #4
    Üyeliği durduruldu
    Bu kısım ne işe yarıyor acaba? clean_data fonksiyonu?


    <?php
    // Temizleme
    function clean_data($string)
    {
    if (get_magic_quotes_gpc()) {
    $string = stripslashes($string);
    }
    $string = strip_tags($string);
    return mysql_real_escape_string($string);
  • 14-12-2007, 14:10:01
    #5
    Üyeliği durduruldu
    mysql in sevmediği karakterleri düzenliyor gereksiz kodları filtreliyor. hacklenmekten kurtarıyor anladığım kadarıyla. Bende Yabancı bir sitede gördüm.
  • 05-12-2008, 12:30:38
    #6
    mysql e listelenen formları liste halinde

    adı soyadı cep tel ev tel vs. vs.

    şeklinde bir sayfaya yada (excel tablosuna) nasıl yazdırırım

    yada örn : gelenformlar.php ye nasıl listeletirim
  • 05-12-2008, 15:30:02
    #7
    Üyeliği durduruldu
    Konu hortlamış Snare şimdi PHP&MySQL ustası
  • 05-12-2008, 17:20:32
    #8
    teknodix cevaplanmamış konu bırakmayacak