0

任意のページを表示しているユーザーが、表示しているページにログインでき、そのページにとどまるようにする方法に問題があります。これはどのように達成されますか?

以下は私が現在使用している 1 行ですが、いずれかのページでユーザーがログインすると、ユーザーは自分のプロファイルにリダイレクトされます。ユーザーがログインする場所にこの行を設定し、ユーザーが表示している同じページに留まるにはどうすればよいですか? つまり、プロファイルにリダイレクトされません...

PHP:

header("Location: members.php?id=" . $_SESSION['username']);

さらに情報が必要な場合は、お知らせください。編集できます ;)

4

3 に答える 3

2

ログインフォームに現在のページのアドレスを送信させます。次に、ログインが成功したときに、そのアドレスにリダイレクトするだけです。

<form>
   <input type="hidden" name="curpage" value="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" />
   <input type="text" name="username" />
   <input type="password" name="password" />
   <input type="submit" />
</form>

if ($login_is_successful) {
   header("Location: {$_POST['curpage']}");
}

リファラーを使ってみることもできますが、それはすべてのブラウザーによって送信されるわけではなく、常に正確であるとは限らないため、上記の非表示のフォーム フィールドなど、代替の「現在位置」追跡手段を使用することをお勧めします。

于 2013-09-20T16:05:07.310 に答える
1

ユーザーがログイン ボタンをクリックすると、URL を読み取って変数に保存し、この URL にリダイレクトできます。

だから代わりに

header("Location: members.php?id=" . $_SESSION['username']);

あなたはsthを使うことができます。お気に入り:

 header("Location: $last_page);
于 2013-09-20T16:05:46.140 に答える
0

これを試して、このコードでphpファイルを作成し、このsession.phpのようにコードに含めることができます

<?php
session_start();
error_reporting(0);
if(isset($_SESSION["usuario"]))
{
$usuario = $_SESSION["usuario"];
else{
header('Location: members.php?id=" . $_SESSION['username']');
}
?>

index.php

<?php
include ('session.php'); 
?>

すべてのページで同じコードを使用しないようにする

于 2013-09-20T16:05:52.803 に答える