preg_match fonksiyonu belirli bir PHP komut dosyası düzgün çalışmıyor

0 Cevap php

Ben yapılan 2 PHP bir textarea form istenmeyen karakterleri filtrelemek için preg_match fonksiyonunu kullanarak, ama bunlardan biri iş değil gibi görünüyor duyuyorum.

Burada sorunu ile script:

<?php

    //Database connection, etc......

    mysql_select_db("etc", $con);

    $errmsg = '';
    $chido = $_POST['chido'];
    $gacho = $_POST['gacho'];
    $maestroid = $_POST['maestroid'];
    $comentario = $_POST['comment'];
    $voto = $_POST['voto'];


    if($_POST['enviado']==1)
    { 

      if (preg_match ('/[^a-zA-Z áéíóúüñÁÉÍÓÚÜÑ]/i', $comentario))
       {
        $errmsg = 1;
       }

      if($errmsg == '')
             {
                         //here's some queries, etc
                }
    }

if($errmsg == 1)
  {
 echo "ERROR: You inserted invalid characters...";
   }

?>

Eğer preg_match Gördüğünüz gibi sadece vs! "# $% & / () Gibi istenmeyen chracters filtre.

Ama 'ñ' veya 'A' gibi özel bir karakter yazmak her zaman bu hata kodunu tetikler.

Ben aynı preg_match ile mükemmel çalışır ve sadece istenmeyen karakterleri filtreler bu çok benzer komut dosyası var:

//Database connection, etc..

mysql_select_db("etc", $con);

$errmsg = '';

if ($_POST['enviado']==1)
{
   $nombre = $_POST['nombre'];
   $apodo = $_POST['apodo'];
   $mat1 = $_POST['mat1'];
   $mat2 = $_POST['mat2'];
   $mat3 = $_POST['mat3'];

 if (preg_match ('/[^a-zA-Z áéíóúüñÁÉÍÓÚÜÑ]/i', $nombre)) 
  {$errmsg = 1;} 


        if($errmsg == '')
        { 

                //more queries after validation
              }
}

if($errmsg == 1)

{ echo "ERROR: etc......." } ?>

Yani soru ben ilk komut yanlış ne yapıyorum, değil mi??

Her şeyi denedim ama her zaman başarısız olur ve hata gösterir.

Herhangi bir öneri?

0 Cevap