1

私は単純なWebアプリを構築しています。ログイン後、ユーザーは編集可能な特定のマップ ページにリダイレクトされます。各マップのアドレスは、ユーザー名とパスワードとともに単純なデータベースに保存されます。

以下は、ログイン用のコードです(ログインフォームはindex.phpページにあります)

「サイト」はアドレスが保存されている行名であり、リダイレクトを機能させるのに問題があります。

include 'db_connect.php';
    include 'functions.php';
    sec_session_start(); // Our custom secure way of starting a php session. 

    if(isset($_POST['email'], $_POST['p'])) { 
       $email = $_POST['email'];
       $password = $_POST['p']; // The hashed password.
       if(login($email, $password, $mysqli) == true) {
          // Login success and shoud redirect to 'site'
        header("Location: '$site");
        } else {
      // Login failed
     header("Location: '..\..\..\?error=1");

   }
} else { 
   // The correct POST variables were not sent to this page.
   echo 'Invalid Request';
}
4

2 に答える 2

2

ログイン成功で:

header("Location: '$site");
------------------^

その一重引用符?それを除く。

ログインに失敗しました:

 header("Location: '..\..\..\?error=1");
 ------------------^

その一重引用符も削除し(Thx @Petr R.)、代わりに絶対パスを使用してください。パスが間違っている可能性があります。のようなものを使用しますhttp://mysite.com/index.php?error=1


また、エラーをより具体的にしてください。リダイレクトが一般化されすぎていることに問題があります。空白のページが表示されますか? 読み込まない?エラーが表示されますか?

使用する:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

実稼働環境にいる場合は、エラーを表示します。

于 2013-06-13T14:02:04.340 に答える
0

$site宣言されていないため、値がありません。

したがって$site、値を指定すると機能します。

于 2013-06-13T13:59:39.453 に答える