PHP - Bloquear Acentos

   
Vista:
Imágen de perfil de Tomás

Bloquear Acentos

Publicado por Tomás (81 intervenciones) el 24/10/2013 22:42:20
Hola, muy buenas.

Tengo el siguiente problema...
Cómo puedo hacer que la variable: $usuario haga referencia a la función para detectar y bloquear acentos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
$fecha = date("Y-m-d H:i:s");
        $usuario = utf8_decode(mysqli_real_escape_string($conexion, $_POST['usuario']));
        $password = utf8_decode(mysqli_real_escape_string($conexion, $_POST['password']));
        $repassword = utf8_decode(mysqli_real_escape_string($conexion, $_POST['repassword']));
        $nombre = utf8_decode(mysqli_real_escape_string($conexion, $_POST['nombre']));
        $apellidos = utf8_decode(mysqli_real_escape_string($conexion, $_POST['apellidos']));
        $email = utf8_decode(mysqli_real_escape_string($conexion, $_POST['email']));
        $localidad = utf8_decode(mysqli_real_escape_string($conexion, $_POST['localidad']));
        $pass = hash('md5', $password);
        $seguridad = "ETomas";
 
        function quitarAcentos($text)
        {
                $text = htmlentities($text, ENT_QUOTES, 'UTF-8');
                $text = strtolower($text);
                $patron = array (
                        // Espacios, puntos y comas por guion
                        '/[\., ]+/' => '-',
 
                        // Vocales
                        '/à/' => 'a',
                        '/è/' => 'e',
                        '/ì/' => 'i',
                        '/ò/' => 'o',
                        '/ù/' => 'u',
 
                        '/á/' => 'a',
                        '/é/' => 'e',
                        '/í/' => 'i',
                        '/ó/' => 'o',
                        '/ú/' => 'u',
 
                        '/â/' => 'a',
                        '/ê/' => 'e',
                        '/î/' => 'i',
                        '/ô/' => 'o',
                        '/û/' => 'u',
 
                        '/ã/' => 'a',
                        '/&etilde;/' => 'e',
                        '/ĩ/' => 'i',
                        '/õ/' => 'o',
                        '/ũ/' => 'u',
 
                        '/ä/' => 'a',
                        '/ë/' => 'e',
                        '/ï/' => 'i',
                        '/ö/' => 'o',
                        '/ü/' => 'u',
 
                        '/ä/' => 'a',
                        '/ë/' => 'e',
                        '/ï/' => 'i',
                        '/ö/' => 'o',
                        '/ü/' => 'u',
 
                        // Otras letras y caracteres especiales
                        '/å/' => 'a',
                        '/ñ/' => 'n',
 
                        // Agregar aqui mas caracteres si es necesario
 
                );
 
                $text = preg_replace(array_keys($patron),array_values($patron),$text);
                return $text;}
 
 
 
        $e = mysqli_query($conexion, "SELECT * FROM mytomas WHERE usuario = '".$usuario."'")or die("error en la comprobacion del registro");
        $ee = mysqli_query($conexion, "SELECT * FROM mytomas WHERE email = '".$email."'")or die("error en la comprobacion del registro");
 
        if($_POST['usuario'] == '' or $_POST['password'] == '' or $_POST['repassword'] == '' or $_POST['nombre'] == '' or $_POST['apellidos'] == '' or $_POST['email'] == '' or $_POST['localidad'] == ''){
            echo "Lo sentimos, pero no puede dejar ningún campo en blanco.";
        }
        else if(stripAccents($usuario)){
            echo "Lo sentimos no se acentan carácteres, cómo acentos, etc..";
        }
        else if($_POST['password'] != $_POST['repassword']){
        echo "Las contraseñas no coinciden.";
        }
        else if(quitarAcentos($text)){
            echo "Lo sentimos no se acentan carácteres, cómo acentos, etc..";
        }
        else if(mysqli_num_rows($e) > 0){
            echo "El usuario ya existes. Por favor escoja otro.";
        }
        else if(mysqli_num_rows($ee) > 0){
            echo "El email ya existe. Por favor escoja otro.";
        }
        else if($_POST['seguridad'] != $seguridad){
            echo "La pregunta de seguridad es errónea. Intentelo de nuevo. (ETomas)";
        }
        else{
            $entrooo = mysqli_query($conexion, "INSERT INTO mytomas(usuario,password,nombre,location,fecha,apellidos,email) VALUES ('".stripAccents($usuario)."','$pass','$nombre','$localidad','$fecha','$apellidos','$email')")or die("error en la introduccion");
            echo "Usted se ha registrado satisfactoriamente. Gracias.";
        }


Hay el code.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Bloquear Acentos

Publicado por xve (5525 intervenciones) el 25/10/2013 07:34:09
Hola Tomás, no se si te he entendido bien, pero podría ser así?
1
$usuario = utf8_decode(mysqli_real_escape_string($conexion, quitarAcentos($_POST['usuario'])));

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar