Este es un enlace de activación por correo electrónico escrito en el controlador de usuario
http://www.some.com/user/activate_user/user@gmail.com/90101001010
Quiero escribir rutas para esto.
Probé el de abajo pero es
// USER POST
$route["user"] = "user";
$route["user/activate_user/:any/:num"] = "user/activate_user/$1/$2";
Error
An Error Was Encountered
The URI you submitted has disallowed characters.
si ejecuto uri así, está bien
http://www.some.com/user/activate_user/activate_user/1111/90101001010
¿Por qué no acepta la identificación de correo electrónico?
Respuestas
2 para la respuesta № 1debiera ser:
$route["user/([w+-]+)(.[w+-]+)*@([a-zA-Zd-]+.)+[a-zA-Z]{2,6}/(:any)"]
Toda la cadena es una expresión regular sin delimitadores ni modificadores. Estabas poniendo delimitadores, modificadores y también estabas usando ^
y $
.
1 para la respuesta № 2
Verifique su archivo de configuración, qué caracteres uri están permitidos en la URL. por defecto se parece a:
$config["permitted_uri_chars"] = "a-z 0-9~%.:_-";
si desea más necesidad, visite el enlace Directriz de URL de ellislab
1 para la respuesta № 3
Esto funciono
$config["permitted_uri_chars"] = "a-z 0-9~%.:_@-";
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2"; –
0 para la respuesta № 4
Vaya a config.php
Encontrar $config["permitted_uri_chars"] = "a-z 0-9~%.:_-";
Y añadir $config["permitted_uri_chars"] = "a-z 0-9~%.:_()@&-!";
Y el servidor de parada o actualización
Reemplazar esto
$route["user"] = "user";
$route["user/activate_user/:any/:num"] = "user/activate_user/$1/$2";
Con este
$route["user"] = "user";
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2";
Adicional
Activación por correo electrónico del tutorial
0 para la respuesta № 5
Esto funcionó para mí
config.php
$config["permitted_uri_chars"] = "a-z 0-9~%.:_@-";
router.php
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2";