PHP переменная в функции заголовка - PullRequest
5 голосов
/ 26 апреля 2011

Я пытаюсь передать переменные через URL, используя функцию заголовка как способ перенаправления страницы. Но когда страница перенаправляется, она передает фактические имена переменных, а не значения, связанные с переменными. Я новичок в PHP и не до конца понимаю синтаксис, поэтому любые дальнейшие объяснения относительно правильного способа сделать это будут высоко оценены.

header('location: index.php?id=".$_POST[ac_id]."&err=".$login."');

Ответы [ 6 ]

18 голосов
/ 26 апреля 2011

Вы хотите:

header("Location: index.php?id=".$_POST['ac_id']."&err=".$login);

Вы комбинировали ' и " в этой строке, поэтому она не могла правильно интерполировать переменные. В моем примере выше вы строго открываете строку с помощью " и объединяете переменные со строкой.

2 голосов
/ 26 апреля 2011

У вас есть кавычки в кавычках.Попробуйте вместо этого:

header('location: index.php?id=' . urlencode($_POST['ac_id']) . '&err=' . urlencode($login));

Функция urlencode () заботится о любых зарезервированных символах в URL.

Вместо этого я использовал бы http_build_query(), если вы думаете, что в URL будет более одной или двух переменных.

header('Location: index.php?' . http_build_query(array(
    'id' => $_POST['ac_id'],
    'err' => $login
)));

Кроме того, технически вы не можете использовать относительные пути в заголовке местоположения.Хотя он работает с большинством браузеров, он недействителен в соответствии с RFC.Вы должны включить полный URL.

1 голос
/ 06 февраля 2014

Попробуйте SESSION для хранения. заголовок используется для перенаправления страницы. и если вы действительно хотите передать значения только через заголовок у вас есть genrate url. заголовок ( "место: destination.php? значение1 = 1 & значение2 = 3' ); но это не хорошая практика для Vars. просто сохраняйте значения в глобальной сессии. B4 заголовок () вызов перенаправления. @ Получите страницу, которую вы должны проверить, если сессия val isset () n! empty () тогда ... или еще ...

Надеюсь, это поможет.

0 голосов
/ 17 апреля 2013

Вы можете попробовать это

header("Location:abc.html?id=".$_POST['id']."id_2=".$var['id_2']);

Если это сработает, дайте мне знать. Это всего лишь пример.

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

Попробуйте:

header("location: index.php?id=$_POST[ac_id]&err=$login");

Переменные PHP раскрываются внутри строк в двойных кавычках.

0 голосов
/ 26 апреля 2011
header('location: index.php?id='.$_POST['ac_id'].'&err='.$login);
...