2016-06-15 3 views
0

У меня есть следующий скрытый вход в виде:Чтение скрытого поля ввода из формы другого PHP сайта

<input type="hidden" name="token" value="<?php echo $token; ?>"> 

Я отправляю это входное значение другой PHP страницы для обработки с помощью формы, однако, когда я пытаюсь прочитать значение поля ввода с помощью $_POST["token"], я нахожу его пустым. Я посмотрел по всему Интернету на решение, но единственное, что я нашел, - это разместить все на одной странице (форма вместе с кодом обработки); но я хочу, чтобы код обработки находился на отдельной странице.

Это разметка:

<form id="registerform" name="registerform" method="post"> 
    First name:<br> 
    <input type="text" name="firstname"><br> 
    Last name:<br> 
    <input type="text" name="lastname"> 
    <input type="hidden" name="token" value="<?php echo $token; ?>"> 
</form> 

Проблема здесь состоит в том, что я могу читать значения имени и фамилии. но значение скрытого ввода недоступно.

+1

У вас есть поле '' в форме или вы отправляете его с помощью XHR/Ajax? Не могли бы вы поделиться этой разметкой/кодом? Вы проверили сетевую консоль в DevTools? Там вы можете видеть, правильно ли было введено значение токена. –

+0

нет Я не проверял сетевую консоль в DevTools, я пропустил этот бит. но я сделаю прямо сейчас –

+0

Да, я вижу его там, но я до сих пор не могу его прочитать –

ответ

3

Ваш подход правильный. Если это не будет работать так, вы, вероятно, сделали опечатку или ошибку и должны отладить ваш код. Вот один из способов сделать это.

  1. Проверьте значение $token отображается правильно в <input>. Имеет ли значение значение в скрипте PHP или уже пуста? Если он не пуст в скрипте PHP (вы можете echo его, чтобы увидеть его значение), вам нужно проверить отображаемый HTML. Есть ли ошибки? Лучше всего открыть вкладку view-source, чтобы увидеть, что на самом деле создает PHP. Где-то в обработанном HTML должно быть скрытое поле ввода со значением, установленным таким же, как в PHP-скрипте. Проверьте также синтаксис.
  2. Если у вас возникли проблемы с сетью 1, вы можете попробовать отправить форму и выполнить поиск в DevTools своего браузера (для этого вам, вероятно, лучше всего использовать Firefox или Chrome). Чтобы увидеть запрос, вы должны открыть DevTools (нажмите F12) и перейдите на вкладку «Сеть». Убедитесь, что вы нажали Preserve log, чтобы сохранить журналы на переключателе страницы. Нажмите на строку страницы, на которую должны были быть отправлены ваши данные. Вы можете увидеть параметры в нижней части деталей. Ваш скрытый параметр должен быть там, если нет, вы неправильно отправляете его в скрипт PHP. → Вернитесь к шагу 1.
  3. Если ошибка по-прежнему не соответствует действительности, введите следующую строку в верхней части страницы PHP, на которую отправляется ваша форма (страница, указанная в атрибуте): <?php print_r($_POST); ?>. Это распечатает все данные, полученные скриптом PHP через POST (измените его на $_GET, если вы ожидаете данные GET). Отправьте свою форму. Если на следующей странице присутствует клавиша token (например, [token] => "123" является частью вывода), вы можете определенно получить к ней доступ через $_POST['token'].
+0

Большое спасибо за помощь –

Смежные вопросы