Править: Ответ найден! Большое спасибо люди, много ответов работало, я выбрал скрытый полевой ответ, поскольку это было самым легким :D
Я создаю сценарий комментария, и я столкнулся с проблемой. Я должен использовать $ _POST и $ _GET на той же странице, которая я не думаю, имеет смысл.
Я очень плохо знаком с php и являюсь обучением сам.
У меня есть страница, названная viewVerses.php - это имеет списки стихов. Когда кто-то переходит по ссылке ответа,
echo '<br /><a href="reply.php?verseid='.$verseid.'">Reply</a>';
Я передаю verseid (комментирующий стихи библии) в reply.php, так, чтобы запрос мог быть сделан с этим verseid. (Это - то, так, чтобы пользователь мог все еще видеть стих, который он комментирует).
Теперь reply.php имеет форму в нем для регистрации ответа. Форма переходит к postReply.php
Это находится в postReply.php
$title = $_POST['title'];
$body = $_POST['body'];
$verseid = $_GET[verseid];
Я могу получить verseid от URL и POST значения от формы на той же странице?
В противном случае существует ли способ, которым я могу сделать это лучше? Помните, я являюсь новым в php и вероятно не реализую решение, которое супер трудно. Я должен заставить его для моего помещать его в мой сайт.
Я надеюсь, что это ясно
Я бы добавил скрытый ввод в форму комментария:
<input type="hidden" name="verseid" value="
<?php echo $_GET['verseid']; ?>
" />
Таким образом, в postReply.php вы можете получить к нему доступ, используя $ _ POST ['verseid']
.
Конечно можно, просто установите действие формы в postReply.php?verseid=id_of_the_verse, таким образом, когда пользователь отправит ответ, в массиве POST будут данные, связанные с ответом, а в GET - id стиха.
Да, вы можете. Метод формы (в html-странице) может быть POST, а URL действия может содержать аргументы "GET", например, process.php?vid=1001
. Таким образом, в process.php
у вас будет vid
как $_GET и остальные данные из формы как $_POST.
Использование формы со скрытым вводом (
), вероятно, самый чистый способ сделать что-то.
PHP также определяет глобальный массив $ _ REQUEST
в дополнение к $ _ GET
и $ _ POST
. Как правило, вы должны использовать либо $ _ GET
, либо $ _ POST
, но в этом случае, когда verseid
передается для обоих методов, это может быть более удобным использовать $ _ REQUEST ['verseid']
. Таким образом, вам не нужно заботиться о методе HTTP, используемом в вашем скрипте.
Да, в одном запросе можно смешивать значения GET и POST. Проблема, вероятно, заключается в том, что вы передаете значение GET в reply.php
, который затем передает значения POST в postReply.php
. Поэтому, если вы не укажете reply.php
, что нужно также отправить это значение GET, оно будет потеряно.
Вы можете сделать это, указав значение GET в параметре action
тега form
, либо даже переключившись на значение POST, добавив
в форму.
Хотя это может показаться нелогичным, HTTP-запрос может входить как с данными Form
, так и с данными QueryString
. Как говорит robertbasic, вы можете получить доступ к ним обоим через соответствующие массивы.