Я новичок в этом, я создаю сайт с корзиной покупок. У меня есть главная страница входа, которая уже перенаправляет пользователей на домашнюю страницу, если они пытаются войти с этой страницы, никаких проблем с этим. Однако у меня есть другая страница (страница проверки), которая направляет пользователей на страницу входа в систему, если они выбрали элемент для покупки, но еще не вошли в систему, после входа с этой страницы он генетически перенаправляется на главную страницу. Как это сделать, чтобы вернуться на страницу проверки, если пользователи входят в систему здесь?
if (count($_SESSION['prodquan']) != 0)
{
print "<table border='1' align='center' width='50%'>";
print "<tr><td colspan='5' style='color:red'>";
if (isset($_SESSION['username'])) print 'Hello ' . $_SESSION['username'];
print "</td></tr>";
print "<caption style='font-size:20;color:red'>Shopping Cart</caption>";
print "<tr>";
print "<td>Product Id</td><td>Product Description</td><td>Quantity</td><td>Price</td><td>Cost</td></tr>";
foreach ($_SESSION['prodquan'] as $prod=>$quan)
{
$query = "select productdescription, price from product where productid = $prod";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_array($result);
$cost = $row[1]*$quan;
print "<tr><td>$prod</td><td>$row[0]</td><td>$quan</td><td>$row[1]</td><td>$cost</td></tr>";
$_SESSION['totalcost'] += $cost;
mysqli_free_result($result);
}
print "<tr align='right'><td colspan='4'>Total Cost:</td><td>" . $_SESSION['totalcost'] . "</td></tr>";
print "</table>";
print "<table border='0' width='50%' align='center'>";
print "<tr rowspan='2'>";
print "<td align='center'><a href='checkout.php?payment=yes'>Payment</a>  <a href='validpage.php'>Products</a>  <a href='logout.php'>logout</a></td>";
print "</tr>";
print "</table>";
}
else
{
$errormessage = " The shopping cart is empty";
header("location:validpage.php?errormsg=$errormessage");
exit();
}
if (@$_GET['payment'] == "yes")
{
if (!isset($_SESSION['username']))
{
$errormessage = "Please login";
header("location:http://localhost/shoppingcart/?page_id=5?errormsg=$errormessage");
exit();
}
//$_SESSION['payment'] = "yes";
print "<td align='center'><a href='checkout.php?credit=yes'>Credit Card</a>  <a href='checkout.php?cheque=yes'>Cheque</a>  <a href='checkout.php?american=yes'>American Express</a></td>";
//unset($_GET['payment']);
}
Большое спасибо
Вы можете использовать $_SERVER['HTTP_REFERER']
, чтобы проверить, выходит ли пользователь на странице CHECKOUT
IN LOGIN PAGE,
if(!empty($_SERVER['HTTP_REFERER'])){
if($_SERVER['HTTP_REFERER']) == 'YOUR CHECKOUT URL')
//REDIRECT to CHECKOUT ie $_SERVER['HTTP_REFERER']
else
//NORMAL HOME PAGE REDIRECT
}
Вы, ребята, чемпионы! :-) Я пошел с CodingAnt, потому что коды выглядят проще, так как я только начинаю, но спасибо за ваш вклад Джонатан. ура
Просто передайте переменную вместе с вашим первоначальным перенаправлением на страницу входа, например:
header('Location : /login?intent=/checkout/');
то на странице входа вы можете либо сохранить $ _GET ['intent'] в сеансе, либо сохранить его как скрытое поле в своей форме:
<form method="POST" action="/login">
<input type="hidden" name="intent" value="<?php echo !empty($_GET['intent']) ? htmlentities($_GET['intent']) : '/'; ?>" />
<input type="text" name="email" />
<input type="password" name="password" />
<input type="submit" value="Login" />
</form>
Затем в вашем коде обработки формы:
if (!empty($_GET['intent']) {
header('Location: ' . $_GET['intent']);
}