Ayrıca, url yeniden yazma sonra çalışması gerekir.
Bu mümkün mü? Aksi takdirde sadece herşeyi hardcode.
Eğer yönlendirme ile bir giriş sistemi oluşturmak için çalışıyoruz Eğer kullanıcı geri onu oraya göndermek böylece nereden geldiğini bulmak için HTTP_REFERER başlığı kullanmanız gerekir. Bunu yapmanın en iyi yolu, bu gibi giriş formu kullanılması şey olduğunu:
//- Login.php
<?php
if ($_POST['username'] && $_POST['password'])
{
//- Run username vepassword verifying script
header("Location: ".$_POST['returnurl']);
}
$RedirectURL = $_SERVER['HTTP_REFERER'];
?>
<form action="/login.php" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="hidden" name="returnurl" value="<?php echo $RedirectURL; ?>" />
</form>
Bazı ISS'ler, tarayıcılar veya vekiller referer başlığını dışarı şerit unutmayın, bu yüzden her kullanıcı için mükemmel çalışmak size güvenemez lütfen. Deyimi başlık olup olmadığını kontrol veya olmasın eğer bir kullanırsanız, ana ya da her türlü geri bu kullanıcıların gönderebilirsiniz.
EDIT
$ _SERVER ['REQUEST_URI'] kullanmak arıyorsanız eğer Apache çalışan eğer bir yeniden yazma işleminden sonra oldukça URL ayarlanmalıdır. Eğer $ _SERVER ['X_HTTP_ORIGINAL_URL'] için kontrol etmeniz gerekir bu durumda IIS, çalıştırıyorsanız. Böyle bir şey:
<?php
if (!isset($_SERVER['X_HTTP_ORIGINAL_URL']))
$ReturnURL = $_SERVER['X_HTTP_ORIGINAL_URL'];
else
$ReturnURL = $_SERVER['REQUEST_URI'];
header("Location: /login.php?returnurl=".$ReturnURL);
?>
ve
//- Login.php
<?php
if ($_POST['username'] && $_POST['password'])
{
//- Run username vepassword verifying script
header("Location: ".$_POST['returnurl']);
}
$RedirectURL = isset($_GET['returnurl'] ? $_GET['returnurl'] : "/index.php";
?>
<form action="/login.php" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="hidden" name="returnurl" value="<?php echo $RedirectURL; ?>" />
</form>