$ID= $_GET['id'];

<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">

Я использую PHP, и я могу передать идентификатор из index.php на эту страницу (открытые заказы). Я хотел бы перейти с этой (openorders.php) на другую страницу, чтобы обновить мои заказы - updateorder.php. Я нашел, как пройти через это один раз, но ни разу после этого. Как бы вы это сделали? Спасибо.

0
DDJ 6 Янв 2016 в 04:50

2 ответа

Лучший ответ

Как сказано, используйте сеансы и в качестве примера.

Примечание. Обратитесь к моему "Редактировать" ниже по поводу ?id=?" в вашей форме.

  • Назначьте массив сеанса массиву GET, затем используйте тот же массив сеанса для последующих страниц.

Имена переменных на самом деле не имеют значения, здесь важен массив сеансов.

Сначала начните со страницы, где вы получите массив GET:

session_start();

if(!empty($_GET['id'])){
   $ID = $_GET['id'];
}

$_SESSION['id'] = $_GET['id'];

$var_page1 = $_SESSION['id'];
   echo "ID #: " . $var_page1;

Затем на следующей странице:

session_start();

if(isset($_SESSION['id'])){

   $var_page2 = $_SESSION['id'];
   echo "ID #: " . $var_page2;

}

И следующую страницу после этого:

session_start();

if(isset($_SESSION['id'])){

   $var_page3 = $_SESSION['id'];
   echo "ID #: " . $var_page3;

}

Ссылки:


Примечание: если ваш массив GET всегда будет целым числом, вы можете передать ему (int) для большей защиты.

$ID = (int)$_GET['id'];

Справка:


Изменить: (что-то, что я заметил во время тестирования) - я использовал в качестве примера 123, который:

$_GET['id'] = 123;
$ID = (int)$_GET['id'];

Ваша форма должна быть изменена из-за ?id=?". (лишнее ? и цитата).

<form method="post" action="updateorder.php?id=?"<?php echo htmlspecialchars($ID);?>">
                                               ^^ extra question mark and quote - delete it

Потому что это приведет к следующему (и в исходном HTML), который представляет собой ? и добавит дополнительную цитату, что вам не нужно, и это вас подведет.

<form method="post" action="updateorder.php?id=?"123">

Его нужно будет изменить на следующее:

<form method="post" action="updateorder.php?id=<?php echo htmlspecialchars($ID);?>">

Что приведет к следующему в исходном HTML:

<form method="post" action="updateorder.php?id=123">
2
Funk Forty Niner 6 Янв 2016 в 13:43

Вы можете получить значение идентификатора внутри updateorder.php с помощью этого кода. это просто потому, что вы отправляете данные с постом в openorders.php. вот почему вы не можете получить данные с помощью $ _GET global

if(!empty($_POST['id'])){
$id = $_POST['id'];
}else{
$id=0;
}
1
synan54 6 Янв 2016 в 03:09