elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problema con la ñ
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con la ñ  (Leído 1,927 veces)
tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
problema con la ñ
« en: 21 Febrero 2013, 21:52 pm »

como puedo hacer funcionar la maldita ñ, he leido multitud de manuales y no me va, tampoco en el hosting que tengo asi que es problema de algo pero nose, me salen interrogantes y sino otros simbolos desconocidos nunca las ñ. alguna solucion coherente¿¿? muchas gracias de antemano

Código:
<?php

$str = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz1234567890";

$cad = "";
for($i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}

print $cad;
?>


En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: problema con la ñ
« Respuesta #1 en: 21 Febrero 2013, 22:13 pm »

Siempre que uses funciones que manejan caracteres "extraños", intenta utilizar un encoding UTF-8.

Código
  1. $str = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz1234567890";
  2.  
  3. $cad = "";
  4. for($i=0;$i<12;$i++) {
  5. $cad .= mb_substr($str,rand(0,62),1,'UTF-8');
  6. }
  7.  
  8. echo $cad;
  9. ?>

PD: Si solo vas a mostrar un texto, utiliza ECHO en vez de PRINT. PRINT es algo mas lento que ECHO porque admite funciones y otros parámetros. No merece la pena utilizarlo si solo vas a mostrar texto.

Saludos


En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: problema con la ñ
« Respuesta #2 en: 21 Febrero 2013, 22:39 pm »

ok gracias brother y para otros casos que harias? no seria mejor setlocale(LC_ALL, "es_ES.utf8");? aunque no me funciona lo digo para codear una web entera y no tenga que ir mirando funcion x funcion y cambiando lo del utf-8 en cada paso¿?
En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: problema con la ñ
« Respuesta #3 en: 21 Febrero 2013, 22:57 pm »

Según se, caracteres como la Ñ o Ç son multibytes. Por defecto, funciones como substr no manejan caracteres multibyte y por eso falla. Por tanto, según se, la única solución es añadir mb_ delante para que puedan manejar dichos caracteres.

Puedes facilitarte la tarea declarando al principio del php
Código
  1. mb_substr($str,rand(0,62),1);

Pero tendras que cambiar todas las funciones que manejan string a mb_.
http://www.php.net/manual/en/ref.mbstring.php

Saludos
En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: problema con la ñ
« Respuesta #4 en: 21 Febrero 2013, 23:12 pm »

aqui no me funciona el mb_'etc' deberia saltar el "echo" pero me salta "Contiene caracteres no permitidos" e estado googleando y encontrado poca informacion al respecto, podria ser del php.ini en concreto en "mbstring"¿?:

Código:
<?php
mb_internal_encoding("UTF-8");
session_start();

if(!isset($_SESSION['usuario1']))
{

$usuario=$_POST['usuario'];
$pass=$_POST['contrasena'];


if (strlen($usuario)<8 || strlen($usuario)>15)
{
      echo  "El usuario esta entre 8 y 15 caracteres<br>";      
      return false;
   }

if (strlen($pass)<8 || strlen($pass)>15)
{
      echo  "La contraseña esta entre 8 y 15 caracteres<br>";      
      return false;
   }

//es mejor hacer una lista blanca con caracteres permitidos que una negra, lo que no este aquí simplemente se ignora
   $validos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_@#";
   for ($i=0; $i< mb_strlen($usuario,'UTF-8'); $i++){
      if (mb_strpos($validos, mb_substr($usuario,$i,1,'UTF-8'),'','UTF-8')===false){
         echo  " Contiene caracteres no permitidos<br>";
                                    return false;  
      }
   }
echo $usuario;

?>
« Última modificación: 24 Febrero 2013, 01:20 am por tecasoft » En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema BlueZScanner y problema de conexión
Hacking Mobile
Kasswed 3 6,312 Último mensaje 6 Mayo 2006, 22:04 pm
por Gospel
Problema Css o problema con el sidebar
Desarrollo Web
gaboomsk8 6 3,569 Último mensaje 27 Diciembre 2011, 21:56 pm
por gaboomsk8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines