/ / URI de enrutamiento que contiene correo electrónico en codeigniter - codeigniter, rutas, uri

URI de enrutamiento que contiene el correo electrónico en codeigniter: codeigniter, rutas, uri

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 № 1

debiera 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";