Проблема в ключе активации, используя php - PullRequest
1 голос
/ 24 апреля 2011

Я использую собственный сценарий входа в систему для моей установки WordPress. Все работает отлично, за исключением того, что когда ключ активации отправляется зарегистрированным пользователям в следующем формате:

http://mydomain.com/?page_id=1278&mail=user@email.com&activate_key=7edbad

Однако когда пользователь нажимает на вышеуказанную ссылку, символ @ в письме исчезает и, следовательно, выдает ошибку о том, что ключ активации недействителен.

Может ли кто-нибудь наставить меня в этом?

Это фрагмент кода, который соединяет ссылку активации:

$link=get_option('home').'/?page_id='.$pageid.'&mail='.$user_email.'&activate_key='.$key;

Ответы [ 3 ]

1 голос
/ 24 апреля 2011

Возможно, вам нужно закодировать параметры в этом URL, используя функцию urlencode() для каждого значения параметра:

$link=get_option('home')
            .'/?page_id='.urlencode($pageid)
            .'&mail='.urlencode($user_email)
            .'&activate_key='.urlencode($key);


В качестве альтернативы вы могли бы также использовать http_build_query() один раз, чтобы создать всю строку запроса:

$params = array(
    'page_id' => $pageid, 
    'mail' => $user_email, 
    'activate_key' => $key, 
);
$query_string = http_build_query($params);

$link=get_option('home') . '/?' . $query_string;
0 голосов
/ 24 апреля 2011

Попробуйте urlencode() вокруг $user_email, чтобы преобразовать его в удобное для URL значение.

0 голосов
/ 24 апреля 2011

Попробуйте urlencode() в параметрах GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...