Я не могу использовать GET и POST одновременно в PHP - PullRequest
2 голосов
/ 31 октября 2011

В верхней части моей страницы, у меня есть это:

<?php $id = $_GET['id']; ?>

Тогда у меня есть некоторые условия проверки формы, которые читаются из POST:

if (isset($_POST['completeSubmit'])) {
        //code
}

И, наконец, у меня есть HTML-форма, которая выглядит следующим образом:

<form action="<?php echo $_SERVER['PHP_SELF']."?id=$id"; ?>" name="complete" method="post">
<input type="submit" id="textButton" name="completeSubmit" value="[mark as complete]">
</form> 

Страница первоначально доступна с помощью GET с переменной id, подобной этой:

http://website.com/page.php?id=1

Все последующие представления формы (которые перенаправляются на одну и ту же страницу) не выполняются. Я знаю, что вы не можете отправить и GET, и POST в одном запросе, но, если моя форма отправляется в $_SERVER['PHP_SELF']."?id=$id" с использованием POST, разве это не сработает? Я впервые пытаюсь это сделать, поэтому вполне возможно, что я упустил что-то тривиальное.

Ответы [ 2 ]

6 голосов
/ 31 октября 2011

Вы можете использовать get и post одновременно, но не должны. Если вы хотите продолжить отправку идентификатора, это просто:

<form ...
   <input type="submit" ...
   <input type="hidden" name="id"
      value="<?php echo htmlspecialchars($_GET['id'], ENT_QUOTES); ?>" />
</form>
0 голосов
/ 31 октября 2011

Конечно, вы не можете одновременно использовать методы GET и POST .

Однако вы можете использовать строку запроса при отправке формы методом POST, который используется для заполнения массива $ _GET.

Чтобы найти определенную ошибку, вы должны предоставить дополнительную информацию. Как минимум 2 вещи:

  • как выглядит форма HTML
  • что вы видите в строке запроса после отправки формы.

и ошибаться ...

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