1

さて、post.php ページができました。ログインしていない場合は、login.php にリダイレクトされるので、ここに私のコードを示します。

if($login == 0) {
    $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    header("Location: login.php?r=".$url);
}

login.php ページ (ユーザー名とパスワードが正しければ、ショートカットを作成します)

if($accountmatch == 1) {
    // make sessions
    if(isset($_GET['r'])) {
        $r = $_GET['r'];
        header("Location: ".$r);
    } else {
        header("Location: index.php);
    }
}

だから私の問題はこれです.ログインすると、ページは私が望むページに私を誘導しますが、GET値は不完全です.

たとえば、$r の値は

localhost/mywebsite/post.php?mode=addtopic&f=1

したがって、login.php ページにアクセスしたときの URL は次のとおりです。

localhost/mywebsite/login.php?r=http://localhost/mywebsite/post.php?mode=addtopic&f=1

ログインすると、このページにリダイレクトされます。

localhost/mywebsite/post.php?mode=addtopic

したがって、明らかに「&」記号で URL が終了し、元の URL で f が分離されます。

どうすればそれらを取り付けることができますか? 前もって感謝します!

編集

私はこれを使用できることを知っています

$f = $_GET['f'];

header("Location: ".$r."&f=".$f);

しかし、他の方法はありますか?ありがとう!

4

2 に答える 2

6

urlencode()関数を見てみましょう。

また、XSRF に注意してください。ユーザーを送信するとhttp://yoursite/login.php?r=http://mysitethattotallylookslikeyours/pleaseLoginAgainAnErrorHasOccurred.php、資格情報が放棄される可能性があります。

これを行うには、パスとクエリ文字列を の値として使用しr、 にリダイレクトし"http://yoursite/" . $rます。

于 2012-06-14T12:48:06.247 に答える
0

フォームが post を使用してデータを送信している場合は、URL が正しくなるように GET データを渡す方法を考える必要があります。

于 2012-06-14T12:50:16.727 に答える