Redirect by POST method

Sau khi register, ta muốn user được redirect lại trang trước đó, thay vì dùng history, ta có thể dùng cách này để quản lý chính xác mà trang ta muốn redirect về.

Bước 1: redirect bằng post:
Thay vì viết :

<script type="text/javascript">
    alert('Please login');
    window.document.href = "/register.php";
</script>

Ta có thể viết bằng:

<form name='fLogin' action="/register.php" method="post">
    <input type="hidden" name="url" value="/news.php" />
</form>
<script type="text/javascript">
    alert('Please login');
    window.document.fLogin.submit();
</script>

Bước 2: ở form login nhận được, ta kiểm tra xem có biến POST gửi qua không, nếu có thì tạo hidden field:

if ($_POST['url']) {
    ?><input type="hidden" name="url" value="<?php echo $_POST['url'] ?>" /><?php
}

Bước 3: Sau khi login thành công, kiểm tra xem có url redirect tồn tại không, nếu có thì redirect về:

if ($_POST['url']) {
    redirect($_POST['url']);
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s