if(!$_POST['username'] || !$_POST['password'])
$err[] = 'All the fields must be filled in!';
if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];
// Escaping all input data
$row = mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
if($row['usr'])
{
// If everything is OK login
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$id = $row['id'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
// Store some data in the session
setcookie('tzRemember',$_POST['rememberMe']);
}
else $err[]='Wrong username and/or password!';
}
if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
// Save the error messages in the session
$goHere = 'Location: /index2.php?id=' . $id;
header($goHere);
exit;
}
ログイン成功時にURLで指定したIDを保持し、それがindex2.php?id=5
のようなURLにidとプリペンドを$_GET
。どんなリンクをクリックしても、これをURLに保持するにはどうすればいいですか?私は一度ログインし、次のコードを持っている
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$id = $row['id'];
は、私は私はそれを設定している まあ仕方をしたい、あなたはそれがその後、index2.phpなどのホームページにあなたを送信し、ログイン:
このidは、このから取得されましたか? id = [someint]、別のリンク 'prof.php'をクリックすると、id=[someint]
部分が削除されます。ユーザーがLOGGEDされている限り、上記のコードを使用してURLに保持しますurl:index.php?id = 5、次に別のページに移動すると、prof.php?id = 5などが読み取られる可能性があります。整数ログインしたWHOに応じて明らかに動的になります
あなたがしようとしているのは、クエリ文字列ではなく、SESSION変数を使用することです。 –
URLをハックしてid = 4に設定するとどうなりますか?これは管理者アカウントになりますか?このようなURLで認証データを決して渡すべきではありません。 –