Передача нескольких переменных GET с параметром «next» в URL - PullRequest
0 голосов
/ 27 августа 2010

У меня проблемы с передачей нескольких $_GET переменных с помощью команды "next".

Я перенаправляю пользователей на страницу входа в систему:

login?next=initial_page?email=john_doe@gmail.com&activate_key=1421sdxzcxz213xz

Проблема в том, чтоключ активации обрабатывается как второй $_GET параметр на странице входа в систему (вместе со словом «next»), а не является частью перенаправленного $ _GET.

Решением было бы использование файлов cookie, есть ликак я все еще могу сделать эту работу с $_GET хотя?

Спасибо!

Ответы [ 4 ]

8 голосов
/ 27 августа 2010

Вам необходимо использовать urlencode для кодирования данных параметров - что-то вроде этого:

echo '<a href="login?next=' . urlencode('initial_page?email=john_doe@gmail.com&activate_key=1421sdxzcxz213xz') . '">link</a>';

Это создаст такую ​​ссылку:

<a href="login?next=initial_page%3Femail%3Djohn_doe%40gmail.com%26activate_key%3D1421sdxzcxz213xz">link</a>

... что будет правильно интерпретировано.

2 голосов
/ 27 августа 2010

Вы можете кодировать URL & как %26.

0 голосов
/ 27 августа 2010

Попробуйте это:

header('Location: login?next='.rawurlencode('initial_page?email=john_doe@gmail.com&activate_key=1421sdxzcxz213xz'));

, который автоматически генерирует ответ 302.

Тестовый код:

<?php
if (isset($_GET['next']))
    print $_GET['next'];
else
    header('Location: '.$_SERVER['REQUEST_URI'].'?next='.rawurlencode('initial_page?email=john_doe@gmail.com&activate_key=1421sdxzcxz213xz'));
?>
0 голосов
/ 27 августа 2010
login?next=initial_page?email=john_doe@gmail.com&amp;activate_key&amp;1421sdxzcxz213xz
...