Foros del Web » Programando para Internet » PHP »

Sin HTML en nombres

Estas en el tema de Sin HTML en nombres en el foro de PHP en Foros del Web. Hola tengo una duda, como hago para que los usuarios que se registren no puedan poner etiquetas HTML ni PHP. Gracias...
  #1 (permalink)  
Antiguo 23/03/2008, 11:34
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Sin HTML en nombres

Hola tengo una duda, como hago para que los usuarios que se registren no puedan poner etiquetas HTML ni PHP.

Gracias
  #2 (permalink)  
Antiguo 23/03/2008, 12:19
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Sin HTML en nombres

prueba con una funcion como esta:


Cita:

function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}


quitar();
  #3 (permalink)  
Antiguo 23/03/2008, 12:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Sin HTML en nombres

No me funciona me devuelve igual, si pongo una etiqueta no permitida me no me desaperece

Aca tengo la funcion
Cita:
function quitar($user)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$user = str_replace($nopermitidos, "", $mensaje);
return $user;
}


Y cuando la uso no mas hago

Cita:
quitar($user);
Por que no funciona????'''''
  #4 (permalink)  
Antiguo 23/03/2008, 12:44
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Sin HTML en nombres

ponlo asi:

Cita:
$user="los//>> quito bien";
function quitar($user)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$user = str_replace($nopermitidos, "", $user);
return $user;
}
echo $user;
  #5 (permalink)  
Antiguo 23/03/2008, 14:23
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
De acuerdo Re: Sin HTML en nombres

supongamos que traes el nombre del usuario por metodo post, desde un formulario donde el usuario ingresa su nombre o nik
quitamos las cosas que no queremos
yo recomiendo solamente destruir los caracteres "<" y ">" ya con eso provenimos cualquier codigo! y para mas seguridad las ";"
Código PHP:
$user $_POST[usuario];

$no_acepto = array("<"">"";");

foreach(
$no_acepto as $caract)
{
     
$user str_replace($caract""$user);
}

echo 
$user
listo problema solucionado!
  #6 (permalink)  
Antiguo 23/03/2008, 17:00
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Sin HTML en nombres

Me sigue sin funcionar les dejo mi codigo para registrar aver si ustedes pueden decir donde lo pongo


Código PHP:
<html>
</html>

<?php
include_once("incluir.php");
include_once(
"incluir.php");
fondo();
titulo();

$user=$HTTP_POST_VARS[user];
$pass=$HTTP_POST_VARS[pass] ;
$pass2=$HTTP_POST_VARS[pass2];
$email=$HTTP_POST_VARS[email] ;
$pais=$HTTP_POST_VARS[pais] ;

if(
$user=="" || $pass=="" || $pass2=="" || $email=="")
{


login();
$a="<font color=yellow>Completa todos los campos</font>";
registrar($a);
exit;}
else

{




if (!
valid_email($email))
{



login();
$a="<font color=yellow>El mail ingresado es incorrecto</font>";
registrar($a);


exit;}


       if (
strlen($email)>50)
       {
      
login();
      
$a"<font color=yellow>El mail no puede tener mas de 50 caracteres</font>";
      
registrar($a);
       exit;
        }

               if (
strlen($user)<||strlen($user)>24)
       {
             
login();
      
$a="<font color=yellow>El user no puede tener mas de 24 caracteres ni menos de 3.</font>";
      
registrar($a);
       exit;

        }



      if (
strlen($pass)<|| strlen($pass) >12)
   {


      
login();
      
$a="<font color=yellow>Tu contraseña debe tener entre 6 y 12 caracteres</font>";
      
registrar($a) ;


      exit;
   }


   if (
$pass != $pass2)
   {


      
login();
      
$a"<font color=yellow>La contraseña que has entrado no concuerda - por favor vuelve<br>
         e inténtalo de nuevo.</font>"
;
      
registrar($a)  ;

      exit;
              }


  
$db=db_connect();
  
$query "select * from user "
           
."where user='$user' "
           
;
  
$result mysql_query($query$db);
  if (!
$result)  {
     
login();
     
$a="No se pudo ejecutar la petición
     <br><br><a href=registrar.php>Volver a registrar</a>"
;
     
registrar($a);
     exit;                      }
 if (
mysql_num_rows($result)>0)    {
     
login();
     
$a="Ese nombre de usuario ya está ocuapdo - vuelve y elige otro.
     <br><br><a href=registrar.php>Volver a registrar</a>"
;
     
registrar($a);
     exit;                }

 
$query"insert into user(id,user,pass,email,pais) values ('".NULL."','".$user."','".$pass."','".$email."','".$pais."')";
 
$resultmysql_query($query,$db) or die (mysql_error());
 if(!
$result)
 {
 echo 
"Problemas al conectarse con el servidor intentelo mas tarde<br><br><a href=registrar.php>Volver a registrar</a>";
exit;
  }
else
{
dentro_login();
login();
echo 
"Ya puedes hacer LOG IN conel nombre de $user";
pie()     ;
?>

</body>

</html>
}
  #7 (permalink)  
Antiguo 23/03/2008, 17:00
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Sin HTML en nombres

eliminen este mesaje envie dos veces el mismo post
  #8 (permalink)  
Antiguo 23/03/2008, 18:32
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: Sin HTML en nombres

intentalo asi, a ver que pasa:

Código PHP:


<?php 


include_once("incluir.php"); 
include_once(
"incluir.php"); 
fondo(); 
titulo(); 

function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}


$user =(quitar($HTTP_POST_VARS['usuario']);

$pass=$HTTP_POST_VARS['pass'] ; 
$pass2=$HTTP_POST_VARS['pass2']; 
$email=$HTTP_POST_VARS['email'] ; 
$pais=$HTTP_POST_VARS['pais'] ; 

if(
$user=="" || $pass=="" || $pass2=="" || $email==""



login(); 
$a="<font color=yellow>Completa todos los campos</font>"
registrar($a); 
exit;} 

//el resto del codigo

?>
  #9 (permalink)  
Antiguo 23/03/2008, 18:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 274
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Sin HTML en nombres

Gracia el code me funciona de 10
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:50.