0

私はPHPの初心者なので、助けが必要です。page=startとpage=loginがあります。page = loginには、page=registerに移動するリンクがあります。しかし、それは何もしません。

page = start

$page = 'home';
if (isset($_GET['page']) && file_exists('pages/'.$_GET['page'].'.php')) {
    $page = $_GET['page'];
}

if (empty($_SESSION['Auth']) && $page != 'login') {
    header('location:index.php?page=login');

} elseif (!empty($_SESSION['Auth']) && $page == 'login') {
    header('location:index.php?page=home');
}
if (file_exists('actions/'.$page.'.php')) {
    include('actions/'.$page.'.php');
}

page = login

<form name="login" action="index.php?page=login&action=login" method="post">
        <p class="log">Hey! Log In</p>
        <input type="text" name="username" id="username"/><br/><br/>
        <input type="text" name="password" id="password"/><br/><br/>
        <input type="submit" name="submit" value="submit"/>
    </form>
    <a href='index.php?page=register'>Register</a>
4

1 に答える 1

0

これ以上コードが表示されないので$_SESSION['Auth']、登録ページにアクセスしようとしているときに、コードがない場合のリダイレクトは発生していないと思います。誰でもアクセスできるように、例外を追加することをお勧めします。

例えば

$whiteListedPages = array('login', 'register');
if (empty($_SESSION['Auth']) && !in_array($page, $whitelistedPages)) {
    header('location:index.php?page=login');

}
于 2013-03-08T11:35:01.577 に答える