Делаю оплату, есть 2 формы. Одна ведет запись в базу данных(в этом же файле создал сессию, в которой храню переменные total и ordid). При нажатии на кнопку на первой форме после добавления в базу происходит перенаправление на форму оплаты, там я вызываю сессию, в которой хранил 2 переменных. Переменная total вызвалась, а ordid нет. Ошибка Trying to get property 'ordid' of non-object.
<?php
$sql="SELECT MAX(id) + 1 AS ordid FROM orders;";
$query = $db->prepare($sql);
$query->execute();
$ordid=$query->fetch(PDO::FETCH_OBJ);
?>
<form method="post">
<h2>Оформление Заказа</h2>
<div class="adr">
<input name="address" type="text" class="form-control mb-4" placeholder="Введите свой адрес" required>
</div>
<div class="ord-detail">
<h3 class="py-4 float-right">Total :₽ <?php echo $total->total; ?></h3>
<h3 class="py-4 float-right">Номер Заказа: <?php echo $ordid -> ordid;?></h3>
</div>
<input type="hidden" name="total" value="<?php echo $total->total; ?>">
<input type="hidden" name="ordid" value="<?php echo $ordid->ordid; ?>">
<input class="btn btn-primary" type="submit" value="Оплата" name="orderplace">
</form>
</section>
<?php
function setPaymentData($ordid,$total){
$_SESSION['payment']['ordid']=$_POST['ordid'];
$_SESSION['payment']['price']=$_POST['total'];
}
?>
session_start();
include("config.php");
if(!empty($_SESSION['payment'])){
$total= $_SESSION['payment']['price'];
$ordid = $_SESSION['payment']['ordid'];
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ПYШКА</title>
</head>
<body>
<?php if(!empty($_SESSION['payment'])): ?>
<form method="POST" action="https://yoomoney.ru/quickpay/confirm">
<input type="hidden" name="receiver" value="4100118422196682"/>
<input type="hidden" name="quickpay-form" value="button"/>
<input type="text" name="sum" value="<?php echo $total->total; ?>" data-type="number"/>
<input type="text" name="ordid" value="<?php echo $ordid->ordid; ?>" data-type="number"/>
<input class="btn btn-primary" type="submit" value="Оплата" name="orderplace">
</form>
<?php endif;?>
</body>
</html>
$_SESSION['payment']. – Simon Nov 25 '23 at 17:16var_dump()илиprint_r(), ошибкаTrying to get property 'ordid' of non-objectобычно возникает не просто так. – Simon Nov 25 '23 at 17:43