He leido y probado casi todo lo referente que he encontrado en el foro (al menos lo que entendia un poco la idea), pero no logro que reconozca la ñ ni los acentos.
mi código es:
primera opción del foro:
Código PHP:
require ('conexionInc.php');
header('Content-Type:text/html; charset=UTF-8');
$nombre=$_POST["nombre"];
$usuario=$_POST["nom"];
$password=$_POST["pass"];
//conecto con la BD
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
////////////////////////////////////////////////////////
//valido si los datos del nuevo usuario son correctos
//miro si tiene el tamaño adecuado y se ha introducido datos
if ( (strlen($usuario)===0) || (strlen($usuario)>20) ){
header("Location:P_altaUser.php?error=0&nombre=$nombre");
exit();
}
//miro si todos sus caracteres del login son los permitidos
$permitidos ="a-zA-Z0-9._ÁÉÍÓÚáéíóú";
if (!ereg("^[$permitidos]{1,20}$",$usuario)){
header("Location:P_altaUser.php?error=1&nombre=$nombre");
exit();
}
.....
.........
En la segunda opción desisto de los acentos pero por lo menos que reconozca la letra ñ:
opción2:
Código PHP:
....
.........
//miro si tiene el tamaño adecuado y se ha introducido datos
if ( (strlen($usuario)===0) || (strlen($usuario)>20) ){
header("Location:P_altaUser.php?error=0&nombre=$nombre");
exit();
}
//miro si todos sus caracteres del login son los permitidos
$permitidos =htmlentities("abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789._");
for ($i=0; $i<strlen($usuario); $i++){
$car=substr(htmlentities($usuario),$i,1);
if (strpos($permitidos,$car)===false){
//no puede ser == pq sino car "a" devuelve 0 q es =false y con === tb debe coincidir el tipo
header("Location:P_altaUser.php?error=1&nombre=$nombre");
exit();
}
}
.........
............
No sé que pasa¡¡¡¡ y tampoco vale ya que distorsiona el tamaño y no reconoce acentos.
Lo que realmente me gustaría es que funcionara la opción 1 (reconozca la ñ y acentos) pero me conformo con que reconozca la ñ.
¿Alguien puede ayudarme? ya no sé ni que hacer.

Muchas gracias