Как перенаправить на другую страницу после входа в систему

0

Я новичок в этом, я создаю сайт с корзиной покупок. У меня есть главная страница входа, которая уже перенаправляет пользователей на домашнюю страницу, если они пытаются войти с этой страницы, никаких проблем с этим. Однако у меня есть другая страница (страница проверки), которая направляет пользователей на страницу входа в систему, если они выбрали элемент для покупки, но еще не вошли в систему, после входа с этой страницы он генетически перенаправляется на главную страницу. Как это сделать, чтобы вернуться на страницу проверки, если пользователи входят в систему здесь?

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>&nbsp&nbsp<a href='validpage.php'>Products</a>&nbsp&nbsp<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>&nbsp&nbsp<a href='checkout.php?cheque=yes'>Cheque</a>&nbsp&nbsp<a href='checkout.php?american=yes'>American Express</a></td>";
    //unset($_GET['payment']);
}

Большое спасибо

Теги:
session
redirect

3 ответа

1
Лучший ответ

Вы можете использовать $_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
}
0

Вы, ребята, чемпионы! :-) Я пошел с CodingAnt, потому что коды выглядят проще, так как я только начинаю, но спасибо за ваш вклад Джонатан. ура

0

Просто передайте переменную вместе с вашим первоначальным перенаправлением на страницу входа, например:

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']);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню