Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2010, 18:07
den_22
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 11 meses
Puntos: 1
Problema con preg match

Hola amigos que tal, veran estoy con un problemita estoy tratando de hacer que el modificar perfil no permita algunos caracteres y esas cosas, les muestro el codigo que tengo hasta ahora, porque parece que no los filtra en la bd, o sea si yo escribo &&& deberia no aparecer en la bd y aparece.

Que es lo que estoy haciendo mal, este es el modificarperfil.php, que tiene un form con un action "modificarperfil.php" y para mostrar los errores lo que hago es

Código PHP:
Ver original
  1. if($_SESSION['msg']['reg-err'])
  2.                         {
  3.                             echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
  4.                             unset($_SESSION['msg']['reg-err']);
  5.                         }
  6.                         ?>

Pero no aparece nada.

Ahora dejo el codigo del modificarperfil.php:


Código PHP:
Ver original
  1. <?php
  2.  error_reporting(E_ALL ^ E_NOTICE);
  3. session_name('pLogin');
  4.  
  5. $usuario=$_SESSION['usuario'];
  6.  
  7.  
  8. if(!$_SESSION['usuario']=='usuario'){
  9. header("Location: index.php");// si no es igual a usuario te direcciona al inicio u a otra pagina
  10. }
  11.  
  12.  
  13.  
  14. include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
  15.  
  16. $id = $_SESSION['usuario'];
  17.  
  18. if(!isset($id)){
  19.  
  20. echo 'No se ha seleccionado ningun usuario.';
  21.  
  22. }else{
  23.  
  24.  
  25. $query=mysql_query("SELECT * FROM prueba WHERE usuario='$_SESSION[usuario]' ");
  26.  
  27. if(mysql_num_rows($query)>0){
  28. $user_ok=mysql_fetch_array($query);
  29.  
  30.  
  31.  
  32.  
  33. //todo comprobado, ahora solo falta mostrar los datos
  34. echo 'Bienvenid@ <b>'.$user_ok['usuario'].'</b><br>';
  35.  
  36. }else{
  37.  
  38. echo 'La id de usuario seleccionada no existe';
  39. }
  40. }
  41.  
  42.  
  43. if($_POST['submit']=='EDITAR PERFIL')
  44. {
  45.  
  46.    $err=array();
  47.  
  48. if(strlen($_POST['firstname'])>100)
  49. {
  50.     $err[]='Tu(s) nombre(s) debe tener menos de 100 caracteres!';
  51. }
  52. if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
  53. {
  54.     $err[]='Tu(s) nombre(s) contiene caracteres inválidos!';
  55. }
  56. if(strlen($_POST['lastname'])>100)
  57. {
  58.     $err[]='Tu(s) apellido(s) debe tener menos de 100 caracteres!';
  59. }
  60. if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname']))
  61. {
  62.     $err[]='Tu(s) apellido(s) contiene caracteres inválidos!';
  63. }
  64.  
  65.     if(preg_match ("/[;<>&]/", $_POST['informacion_adicional']))
  66.     {
  67.         $err[]="Tu 'informacion adicional' no puede tener caracteres especiales (ej & ; < >)";
  68.        
  69.     }
  70.    
  71.     if(!count($err))
  72.     {
  73.         //Si no hay errores
  74.        
  75.         $_POST['firstname']=mysql_real_escape_string($_POST['firstname']);
  76.         $_POST['lastname']=mysql_real_escape_string($_POST['lastname']);
  77.         $_POST['informacion_adicional']=mysql_real_escape_string($_POST['informacion_adicional']);
  78.        
  79.        
  80.         if(count($err))
  81.             {
  82.                 $_SESSION['msg']['reg-err']=implode('<br />',$err);
  83.             }
  84.                
  85.     header("Location: index.php");
  86.     exit;
  87.        
  88.            
  89.     }
  90.     }
  91.  
  92. //introducimos la modificacion hecha por el usuario
  93.  
  94.  
  95. $firstname=$_POST['firstname'];
  96. $lastname=$_POST['lastname'];
  97. $infoadicional=$_POST['informacion_adicional'];
  98.  
  99.  
  100.  
  101.  
  102. UPDATE prueba
  103. SET firstname='$firstname',lastname='$lastname', informacion_adicional='$infoadicional'
  104. WHERE usuario='$_SESSION[usuario]'  ");
  105.  
  106.  
  107.  
  108.  
  109.  
  110. ?>