私は数日間このことについて私の頭を掻いてきました。皆さんが助けてくれることを願っています。リサイズ時に画面解像度を見つける
ページが読み込まれるときにブラウザのサイズを調べる必要があります。
私はPHPとjavascriptを使用してPHPページを作成しています。ページには、このコードで始まる:
if (empty($_GET['w'])) {
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type="text/javascript">
var winW = 630, winH = 460;
if (document.body && document.body.offsetWidth) {
winW = document.body.offsetWidth;
winH = document.body.offsetHeight;
}
if (document.compatMode=="CSS1Compat" &&
document.documentElement &&
document.documentElement.offsetWidth) {
winW = document.documentElement.offsetWidth;
winH = document.documentElement.offsetHeight;
}
if (window.innerWidth && window.innerHeight) {
winW = window.innerWidth;
winH = window.innerHeight;
}
location.replace("'.$_SERVER['PHP_SELF'].'?w=" + winW + "&h=" + winH);
</script>
</body>
</html>';
} else {
$w = $_GET['w'];
$h = $_GET['h'];
// my main page goes here
}
このコードは、基本的に解像度を取得し、PHPはそれらの値を使用できるように、URLのクエリに送られ、幅と高さでページをリロードします。
問題は、ユーザーが自分のウィンドウのサイズを変更してからページを再読み込みすると、送信された値が(URLクエリに残っているため)古い値になります。
ページを読み込んだり再読み込みするたびに新しい幅と高さの値を見つけるにはどうすればよいですか?
おかげ
あなたは、そのようなJavaScriptコードにPHP_SELFを組み込むことで、XSSに脆弱です。 –