Jest to link aktywacyjny e-mail napisany w kontrolerze użytkownika
http://www.some.com/user/activate_user/user@gmail.com/90101001010
Chcę do tego napisać trasy.
Spróbowałem tego poniżej, ale jego
// USER POST
$route["user"] = "user";
$route["user/activate_user/:any/:num"] = "user/activate_user/$1/$2";
Błąd
An Error Was Encountered
The URI you submitted has disallowed characters.
jeśli uruchomię uri w ten sposób, to jest w porządku
http://www.some.com/user/activate_user/activate_user/1111/90101001010
dlaczego nie akceptuje identyfikatora e-mail?
Odpowiedzi:
2 dla odpowiedzi № 1powinno być:
$route["user/([w+-]+)(.[w+-]+)*@([a-zA-Zd-]+.)+[a-zA-Z]{2,6}/(:any)"]
Cały łańcuch jest wyrażeniem regularnym bez ograniczników lub modyfikatorów. Umieszczałeś ograniczniki, modyfikatory i również używałeś ^
i $
.
1 dla odpowiedzi nr 2
Sprawdź swój plik konfiguracyjny, którego znaki uri są dozwolone w adresie URL. domyślnie wygląda to tak:
$config["permitted_uri_chars"] = "a-z 0-9~%.:_-";
jeśli chcesz dalej, odwiedź link Wytyczne Url autorstwa ellislab
1 dla odpowiedzi nr 3
To zadziałało
$config["permitted_uri_chars"] = "a-z 0-9~%.:_@-";
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2"; –
0 dla odpowiedzi nr 4
Przejdź do config.php
Odnaleźć $config["permitted_uri_chars"] = "a-z 0-9~%.:_-";
I dodaj $config["permitted_uri_chars"] = "a-z 0-9~%.:_()@&-!";
I serwer zatrzymania lub odświeżania
Wymień to
$route["user"] = "user";
$route["user/activate_user/:any/:num"] = "user/activate_user/$1/$2";
Z tym
$route["user"] = "user";
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2";
Dodany
Samouczek Aktywacja wiadomości e-mail
0 dla odpowiedzi № 5
To działało dla mnie
config.php
$config["permitted_uri_chars"] = "a-z 0-9~%.:_@-";
router.php
$route["user/activate_user/(:any)/(:any)"] = "user/activate_user/$1/$2";