• 15-08-2009, 15:36:21
    #1
    css.php adında bir betik yazmaya çalışıyorum, bir noktada takıldım, gözümden birşey kaçırıyorum ama bulamadım, beynim sulandı, aşağıdaki kod da 48. satırda $_POST['cssname'] verisini filtreden geçirip içinde yalnızca ingilizce karakterler olmasını kontrol etmek istiyorum, ne varki hangi deseni denersem deneyeyim post alanına girilen veriyi filtreleyemedim, ne yazarsam yazayım veri kaydediliyor, bi türlü filtreye takılmıyor, yardımcı olacaklara teşekkürler.

    css.php

    <?php
    include ('../globals.php');
    
    if(empty($_REQUEST['do'])){
        echo'
    <form method="POST" action="'.$_SERVER['PHP_SELF'].'?do=cssadd">
        <table border="0" cellpadding="0" cellspacing="0" width="53%" id="table1">
            <tr>
                <td colspan="3" align="center" bgcolor="#F4F4F4">CSS Özelliği Ekle</td>
            </tr>
            <tr>
                <td width="18%">Css Adı</td>
                <td width="1%">:</td>
                <td width="77%"><input type="text" name="cssname" size="53"></td>
            </tr>
            <tr>
                <td width="18%">Css Kodları</td>
                <td width="1%">:</td>
                <td width="77%"><textarea rows="7" name="csscodes" cols="40"></textarea></td>
            </tr>
            <tr>
                <td colspan="3">
                <p align="center">&nbsp;</p>
                <p align="center">
                <input type="submit" value="Css Kaydet" name="savecss"></td>
            </tr>
        </table>
        <p>&nbsp;</p>
    </form>
        ';
    }
    
    if($_REQUEST['do']=='cssadd'){
        if(function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc()==1){
            $cssname = trim($_POST['cssname']);
            $csscodes = $_POST['csscodes'];
        }else{
            $cssname = addslashes(trim($_POST['cssname']));
            $csscodes = addslashes($_POST['csscodes']);
        }
        if(empty($cssname) || empty($csscodes)){
        header('refresh:3 url='.$_SERVER['PHP_SELF']);
        lang(please_do_not_blank);
        print '<br />';
        lang(redirecting_back);
        exit;
        }
        if(!preg_match('/[a-zA-Z0-9_]/',$cssname)){
        header('refresh:3 url='.$_SERVER['PHP_SELF']);
        lang(please_valid_char);
        print '<br />';
        lang(redirecting_back);
        exit;
        }
        $csscontrol = mysql_query("SELECT * FROM css WHERE cssname='$cssname'") or die (mysql_error());
        if(mysql_fetch_row($csscontrol)>0){
        header('refresh:3 url='.$_SERVER['PHP_SELF']);
        lang(this_already_have);
        print '<br />';
        lang(redirecting_back);
        }else{
        header('refresh:3 url='.$_SERVER['PHP_SELF']);
        mysql_query("INSERT INTO css (cssname, csscodes) VALUES ('$cssname', '$csscodes')") or die (mysql_error());
        mysql_insert_id();
        lang(css_succ_added);
        print '<br />';
        lang(redirecting_back);
        }
    
    }
    ?>
  • 15-08-2009, 15:53:10
    #2
    $body = "sddassdadsadsa123";
    if(ereg("[^a-zA-Z0-9]",$body))
    print 'var';
    else
    print 'yok';
    Sadece ingilizce karakterleri ve sayıları alır.
  • 15-08-2009, 16:56:10
    #3
    Desen oluşturmada bir sıkıntı yoktu, ayrıca ereg kullanmanızı tavsiye etmiyorum, 5.3 versiyonundan sonra kaldırılması gündem de, sorunumu ise delimeteri # ile değiştirince hallettim, ama delimeterin neden koda etki ettiğini anlayamadım, belki de appserv kullandığım için olabilir tam emin değilim..